|
@@ -1,27 +1,18 @@
|
|
package net.p0f.k8s.demo.apiclient;
|
|
package net.p0f.k8s.demo.apiclient;
|
|
|
|
|
|
-import java.io.BufferedReader;
|
|
|
|
import java.io.IOException;
|
|
import java.io.IOException;
|
|
-import java.io.InputStreamReader;
|
|
|
|
|
|
|
|
import org.jboss.logging.Logger;
|
|
import org.jboss.logging.Logger;
|
|
|
|
|
|
import jakarta.ws.rs.client.ClientRequestContext;
|
|
import jakarta.ws.rs.client.ClientRequestContext;
|
|
import jakarta.ws.rs.client.ClientResponseContext;
|
|
import jakarta.ws.rs.client.ClientResponseContext;
|
|
import jakarta.ws.rs.client.ClientResponseFilter;
|
|
import jakarta.ws.rs.client.ClientResponseFilter;
|
|
-import jakarta.ws.rs.core.MultivaluedMap;
|
|
|
|
|
|
|
|
public class ResponseFilter implements ClientResponseFilter {
|
|
public class ResponseFilter implements ClientResponseFilter {
|
|
final Logger LOG = Logger.getLogger(ResponseFilter.class.getName());
|
|
final Logger LOG = Logger.getLogger(ResponseFilter.class.getName());
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public void filter(ClientRequestContext requestContext, ClientResponseContext responseContext) throws IOException {
|
|
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 request info first.
|
|
LOG.info("Original request: " + requestContext.getMethod() + " " + requestContext.getUri());
|
|
LOG.info("Original request: " + requestContext.getMethod() + " " + requestContext.getUri());
|
|
LOG.info("Request Headers:");
|
|
LOG.info("Request Headers:");
|
|
@@ -35,16 +26,8 @@ public class ResponseFilter implements ClientResponseFilter {
|
|
LOG.info("Request payload empty.");
|
|
LOG.info("Request payload empty.");
|
|
}
|
|
}
|
|
|
|
|
|
- // Log response next.
|
|
|
|
- LOG.info("Got response: HTTP/" + status);
|
|
|
|
- LOG.info("Response Headers:");
|
|
|
|
- headers.forEach((k, v) -> {
|
|
|
|
- LOG.info(k + ": " + v);
|
|
|
|
- });
|
|
|
|
- LOG.info("Response Body:");
|
|
|
|
- LOG.info(body);
|
|
|
|
-
|
|
|
|
// If status wasn't a happy one, reset it and add a header with the original.
|
|
// If status wasn't a happy one, reset it and add a header with the original.
|
|
|
|
+ // The Activator will do the rest of response processing.
|
|
if (responseContext.getStatus() > 299) {
|
|
if (responseContext.getStatus() > 299) {
|
|
responseContext.getHeaders().add("X-Original-Status", String.valueOf(responseContext.getStatus()));
|
|
responseContext.getHeaders().add("X-Original-Status", String.valueOf(responseContext.getStatus()));
|
|
responseContext.setStatus(200);
|
|
responseContext.setStatus(200);
|