Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

<groupId>com.uid2</groupId>
<artifactId>uid2-operator</artifactId>
<version>5.56.48</version>
<version>5.56.49-alpha-203-SNAPSHOT</version>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
Expand Down
8 changes: 6 additions & 2 deletions src/main/java/com/uid2/operator/service/ResponseUtil.java
Original file line number Diff line number Diff line change
Expand Up @@ -123,15 +123,19 @@ public static void LogErrorAndSendResponse(String errorStatus, int statusCode, R

public static void LogInfoAndSendResponse(String status, int statusCode, RoutingContext rc, String message) {
String msg = ComposeMessage(status, statusCode, message, new RoutingContextReader(rc), rc.request().remoteAddress().hostAddress());
LOGGER.info(msg);
String contentType = rc.request().getHeader(HttpHeaders.CONTENT_TYPE);
String contentTypeStr = " Content-Type: " + (contentType != null ? contentType : "null");
LOGGER.warn(msg + contentTypeStr);
final JsonObject json = Response(status, message);
rc.response().setStatusCode(statusCode).putHeader(HttpHeaders.CONTENT_TYPE, "application/json")
.end(json.encode());
}

public static void LogWarningAndSendResponse(String status, int statusCode, RoutingContext rc, String message) {
String msg = ComposeMessage(status, statusCode, message, new RoutingContextReader(rc), rc.request().remoteAddress().hostAddress());
LOGGER.warn(msg);
String contentType = rc.request().getHeader(HttpHeaders.CONTENT_TYPE);
String contentTypeStr = " Content-Type: " + (contentType != null ? contentType : "null");
LOGGER.warn(msg + contentTypeStr);
final JsonObject json = Response(status, message);
rc.response().setStatusCode(statusCode).putHeader(HttpHeaders.CONTENT_TYPE, "application/json")
.end(json.encode());
Expand Down
81 changes: 77 additions & 4 deletions src/test/java/com/uid2/operator/service/ResponseUtilTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@ void logsWarningWithOrigin() {
"\"clientAddress\":null," +
"\"message\":\"Some error message\"," +
"\"origin\":\"testOriginHeader\"" +
"}";
"} Content-Type: null";
ILoggingEvent loggingEvent = testAppender.list.get(0);
assertThat(loggingEvent.getMessage()).isEqualTo(expected);
}
Expand All @@ -180,7 +180,7 @@ void logsWarningWithOriginNull() {
"\"statusCode\":400," +
"\"clientAddress\":null," +
"\"message\":\"Some error message\"" +
"}";
"} Content-Type: null";
ILoggingEvent loggingEvent = testAppender.list.get(0);
assertThat(loggingEvent.getMessage()).isEqualTo(expected);
}
Expand All @@ -201,7 +201,7 @@ void logsWarningWithReferer() {
"\"clientAddress\":null," +
"\"message\":\"Some error message\"," +
"\"referer\":\"testRefererHeader\"" +
"}";
"} Content-Type: null";
ILoggingEvent loggingEvent = testAppender.list.get(0);
assertThat(loggingEvent.getMessage()).isEqualTo(expected);
}
Expand All @@ -221,8 +221,81 @@ void logsWarningWithRefererNull() {
"\"statusCode\":400," +
"\"clientAddress\":null," +
"\"message\":\"Some error message\"" +
"}";
"} Content-Type: null";
ILoggingEvent loggingEvent = testAppender.list.get(0);
assertThat(loggingEvent.getMessage()).isEqualTo(expected);
}

@Test
void logsWarningWithContentType() {
when(request.getHeader(io.vertx.core.http.HttpHeaders.CONTENT_TYPE)).thenReturn("application/json");
when(rc.request()).thenReturn(request);

ResponseUtil.LogWarningAndSendResponse("Some error status", 400, rc, "Some error message");

String expectedBase = "Response to http request. {" +
"\"errorStatus\":\"Some error status\"," +
"\"contact\":null," +
"\"siteId\":null," +
"\"path\":null," +
"\"statusCode\":400," +
"\"clientAddress\":null," +
"\"message\":\"Some error message\"" +
"}";
String expectedWithContentType = expectedBase + " Content-Type: application/json";

assertThat(testAppender.list).hasSize(1);
ILoggingEvent loggingEvent = testAppender.list.get(0);
assertThat(loggingEvent.getMessage()).isEqualTo(expectedWithContentType);
assertThat(loggingEvent.getLevel()).isEqualTo(Level.WARN);
}

@Test
void logsWarningWithNullContentType() {
when(request.getHeader(io.vertx.core.http.HttpHeaders.CONTENT_TYPE)).thenReturn(null);
when(rc.request()).thenReturn(request);

ResponseUtil.LogWarningAndSendResponse("Some error status", 400, rc, "Some error message");

String expectedBase = "Response to http request. {" +
"\"errorStatus\":\"Some error status\"," +
"\"contact\":null," +
"\"siteId\":null," +
"\"path\":null," +
"\"statusCode\":400," +
"\"clientAddress\":null," +
"\"message\":\"Some error message\"" +
"}";
String expectedWithContentType = expectedBase + " Content-Type: null";

assertThat(testAppender.list).hasSize(1);
ILoggingEvent loggingEvent = testAppender.list.get(0);
assertThat(loggingEvent.getMessage()).isEqualTo(expectedWithContentType);
assertThat(loggingEvent.getLevel()).isEqualTo(Level.WARN);
}

@Test
void logsErrorDoesNotIncludeContentType() {
when(request.getHeader(io.vertx.core.http.HttpHeaders.CONTENT_TYPE)).thenReturn("application/json");
when(rc.request()).thenReturn(request);

ResponseUtil.LogErrorAndSendResponse("Some error status", 500, rc, "Some error message");

String expectedMessage = "Response to http request. {" +
"\"errorStatus\":\"Some error status\"," +
"\"contact\":null," +
"\"siteId\":null," +
"\"path\":null," +
"\"statusCode\":500," +
"\"clientAddress\":null," +
"\"message\":\"Some error message\"" +
"}";

assertThat(testAppender.list).hasSize(1);
ILoggingEvent loggingEvent = testAppender.list.get(0);
assertThat(loggingEvent.getMessage()).isEqualTo(expectedMessage);
assertThat(loggingEvent.getLevel()).isEqualTo(Level.ERROR);
// Verify content type is NOT included
assertThat(loggingEvent.getMessage()).doesNotContain("Content-Type:");
}
}