diff --git a/pom.xml b/pom.xml
index 38fc6e8af..83f7c4646 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
com.uid2
uid2-operator
- 5.56.48
+ 5.56.49-alpha-203-SNAPSHOT
UTF-8
diff --git a/src/main/java/com/uid2/operator/service/ResponseUtil.java b/src/main/java/com/uid2/operator/service/ResponseUtil.java
index a1842c275..d79d9514a 100644
--- a/src/main/java/com/uid2/operator/service/ResponseUtil.java
+++ b/src/main/java/com/uid2/operator/service/ResponseUtil.java
@@ -123,7 +123,9 @@ 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());
@@ -131,7 +133,9 @@ public static void LogInfoAndSendResponse(String status, int statusCode, Routing
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());
diff --git a/src/test/java/com/uid2/operator/service/ResponseUtilTest.java b/src/test/java/com/uid2/operator/service/ResponseUtilTest.java
index 77f848cc3..930b9c81f 100644
--- a/src/test/java/com/uid2/operator/service/ResponseUtilTest.java
+++ b/src/test/java/com/uid2/operator/service/ResponseUtilTest.java
@@ -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);
}
@@ -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);
}
@@ -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);
}
@@ -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:");
+ }
}