|
@@ -1,26 +1,23 @@
|
|
|
package net.p0f.k8s.demo.apiclient;
|
|
|
|
|
|
-import java.io.BufferedReader;
|
|
|
import java.io.IOException;
|
|
|
-import java.io.InputStreamReader;
|
|
|
|
|
|
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); });
|
|
|
+ // 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());
|
|
@@ -35,14 +32,19 @@ public class ResponseFilter implements ClientResponseFilter {
|
|
|
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);
|
|
|
- responseContext.setStatus(200);
|
|
|
+ // // 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 (responseContext.getStatus() > 399) {
|
|
|
+ responseContext.getHeaders().add("X-Original-Status", String.valueOf(responseContext.getStatus()));
|
|
|
+ responseContext.setStatus(304);
|
|
|
+ }
|
|
|
}
|
|
|
}
|