|
@@ -9,12 +9,20 @@ import org.jboss.logging.Logger;
|
|
|
import jakarta.ws.rs.client.ClientRequestContext;
|
|
|
import jakarta.ws.rs.client.ClientResponseContext;
|
|
|
import jakarta.ws.rs.client.ClientResponseFilter;
|
|
|
+import jakarta.ws.rs.core.MultivaluedMap;
|
|
|
|
|
|
public class ResponseFilter implements ClientResponseFilter {
|
|
|
final Logger LOG = Logger.getLogger(ResponseFilter.class.getName());
|
|
|
|
|
|
@Override
|
|
|
public void filter(ClientRequestContext requestContext, ClientResponseContext responseContext) throws IOException {
|
|
|
+ int status = responseContext.getStatus();
|
|
|
+ MultivaluedMap<String, String> headers = responseContext.getHeaders();
|
|
|
+ StringBuffer body = new StringBuffer();
|
|
|
+ BufferedReader br = new BufferedReader(new InputStreamReader(responseContext.getEntityStream()));
|
|
|
+ br.lines().forEach((l) -> { body.append(l); });
|
|
|
+
|
|
|
+ // Log request info first.
|
|
|
LOG.info("Original request: " + requestContext.getMethod() + " " + requestContext.getUri());
|
|
|
LOG.info("Request Headers:");
|
|
|
requestContext.getHeaders().forEach((k, v) -> {
|
|
@@ -26,15 +34,15 @@ public class ResponseFilter implements ClientResponseFilter {
|
|
|
} else {
|
|
|
LOG.info("Request payload empty.");
|
|
|
}
|
|
|
- LOG.info("Got response: HTTP/" + responseContext.getStatus());
|
|
|
+
|
|
|
+ // Log response next.
|
|
|
+ LOG.info("Got response: HTTP/" + status);
|
|
|
LOG.info("Response Headers:");
|
|
|
- responseContext.getHeaders().forEach((k, v) -> {
|
|
|
+ headers.forEach((k, v) -> {
|
|
|
LOG.info(k + ": " + v);
|
|
|
});
|
|
|
LOG.info("Response Body:");
|
|
|
- BufferedReader br = new BufferedReader(new InputStreamReader(responseContext.getEntityStream()));
|
|
|
- br.lines().forEach((l) -> {
|
|
|
- LOG.info(l);
|
|
|
- });
|
|
|
+ LOG.info(body);
|
|
|
+ responseContext.setStatus(200);
|
|
|
}
|
|
|
}
|