private String getBodyAsMessage(ClientResponseContext responseContext) throws IOException { if (responseContext.hasEntity()) { try (InputStream entityStream = responseContext.getEntityStream()) { Charset charset = null; MediaType mediaType = responseContext.getMediaType(); if (mediaType != null) { String charsetName = mediaType.getParameters().get("charset"); if (charsetName != null) { try { charset = Charset.forName(charsetName); } catch (Exception ignored) { } } } if (charset == null) { charset = Charset.defaultCharset(); } return IOUtils.toString(entityStream, charset); } catch (Exception ignored) { } } return null; } }
@Override public void filter(final ClientRequestContext requestContext, final ClientResponseContext responseContext) throws IOException { final long id = aid.incrementAndGet(); final StringBuilder b = new StringBuilder(); printResponseLine(b, "Client response received", id, responseContext.getStatus()); printPrefixedHeaders(b, id, RESPONSE_PREFIX, responseContext.getHeaders()); if (printEntity && responseContext.hasEntity()) { responseContext.setEntityStream(logInboundEntity(b, responseContext.getEntityStream())); } log(b); }
@Override public void filter(final ClientRequestContext requestContext, final ClientResponseContext responseContext) throws IOException { if (!logger.isLoggable(level)) { return; } final Object requestId = requestContext.getProperty(LOGGING_ID_PROPERTY); final long id = requestId != null ? (Long) requestId : _id.incrementAndGet(); final StringBuilder b = new StringBuilder(); printResponseLine(b, "Client response received", id, responseContext.getStatus()); printPrefixedHeaders(b, id, RESPONSE_PREFIX, responseContext.getHeaders()); if (responseContext.hasEntity() && printEntity(verbosity, responseContext.getMediaType())) { responseContext.setEntityStream(logInboundEntity(b, responseContext.getEntityStream(), MessageUtils.getCharset(responseContext.getMediaType()))); } log(b); } }
@Override public void filter(final ClientRequestContext requestContext, final ClientResponseContext responseContext) throws IOException { if (!logger.isLoggable(level)) { return; } final Object requestId = requestContext.getProperty(LOGGING_ID_PROPERTY); final long id = requestId != null ? (Long) requestId : _id.incrementAndGet(); final StringBuilder b = new StringBuilder(); printResponseLine(b, "Client response received", id, responseContext.getStatus()); printPrefixedHeaders(b, id, RESPONSE_PREFIX, responseContext.getHeaders()); if (responseContext.hasEntity() && printEntity(verbosity, responseContext.getMediaType())) { responseContext.setEntityStream(logInboundEntity(b, responseContext.getEntityStream(), MessageUtils.getCharset(responseContext.getMediaType()))); } log(b); } }
@Override public boolean hasEntity() { return responseContext.hasEntity(); }
@Override public void filter(ClientRequestContext requestContext, ClientResponseContext responseContext) throws IOException { final Object spanProperty = requestContext.getProperty(OpenTracingFeature.SPAN_CONTEXT_PROPERTY); if (spanProperty != null && spanProperty instanceof Span) { ((Span) spanProperty) .setTag(Tags.HTTP_STATUS.getKey(), responseContext.getStatus()) .setTag(LocalizationMessages.OPENTRACING_TAG_HAS_RESPONSE_ENTITY(), responseContext.hasEntity()) .setTag(LocalizationMessages.OPENTRACING_TAG_RESPONSE_LENGTH(), responseContext.getLength()) .setTag(LocalizationMessages.OPENTRACING_TAG_RESPONSE_HEADERS(), OpenTracingUtils.headersAsString(responseContext.getHeaders())) .finish(); } } }
@Override public boolean hasEntity() { return responseContext.hasEntity(); }
@Override public boolean hasEntity() { return responseContext.hasEntity(); }
@Override public boolean hasEntity() { return responseContext.hasEntity(); }
@Override public void filter(ClientRequestContext requestContext, ClientResponseContext responseContext) throws IOException { logger.log(Level.INFO, "Response status: " + responseContext.getStatus()); if (!responseContext.hasEntity()) { logger.log(Level.INFO, "empty responseContext"); } }
@Override public void filter(ClientRequestContext requestContext, ClientResponseContext responseContext) throws IOException { if (responseContext.getStatus() == 500 && responseContext.hasEntity()) { Map error = new ObjectMapper().readValue(responseContext.getEntityStream(), Map.class); LOG.error("Status: {}, Exception: {}, Message: {}", responseContext.getStatus(), error.get("exception"), error.get("message")); } }
private static boolean shouldLogEntity(final ClientResponseContext responseCtx) { if (!responseCtx.hasEntity()) { return false; } else if (responseCtx.getStatus() < 400) { return Settings.INSTANCE.isDebugHttpResponseLoggingEnabled(); } else { return true; } }
private static boolean shouldLogEntity(final ClientResponseContext responseCtx) { if (!responseCtx.hasEntity()) { return false; } else if (responseCtx.getStatus() < 400) { return Settings.INSTANCE.isDebugHttpResponseLoggingEnabled(); } else { return true; } }
@Override public void filter(final ClientRequestContext requestContext, final ClientResponseContext responseContext) throws IOException { final long id = aid.incrementAndGet(); final StringBuilder b = new StringBuilder(); printResponseLine(b, "Client response received", id, responseContext.getStatus()); printPrefixedHeaders(b, id, RESPONSE_PREFIX, responseContext.getHeaders()); if (printEntity && responseContext.hasEntity()) { responseContext.setEntityStream(logInboundEntity(b, responseContext.getEntityStream())); } log(b); }
@Override public void filter(final ClientRequestContext requestContext, final ClientResponseContext responseContext) throws IOException { final Object requestId = requestContext.getProperty(LOGGING_ID_PROPERTY); final long id = requestId != null ? (Long) requestId : _id.incrementAndGet(); final StringBuilder b = new StringBuilder(); printResponseLine(b, "Client response received", id, responseContext.getStatus()); printPrefixedHeaders(b, id, RESPONSE_PREFIX, responseContext.getHeaders()); if (printEntity && responseContext.hasEntity()) { responseContext.setEntityStream(logInboundEntity(b, responseContext.getEntityStream(), MessageUtils.getCharset(responseContext.getMediaType()))); } log(b); }
@Override public void filter(final ClientRequestContext requestContext, final ClientResponseContext responseContext) throws IOException { final Object requestId = requestContext.getProperty(LOGGING_ID_PROPERTY); final long id = requestId != null ? (Long) requestId : _id.incrementAndGet(); final StringBuilder b = new StringBuilder(); printResponseLine(b, "Client response received", id, responseContext.getStatus()); printPrefixedHeaders(b, id, RESPONSE_PREFIX, responseContext.getHeaders()); if (printEntity && responseContext.hasEntity()) { responseContext.setEntityStream(logInboundEntity(b, responseContext.getEntityStream(), MessageUtils.getCharset(responseContext.getMediaType()))); } log(b); }
@Override public void filter(final ClientRequestContext requestContext, final ClientResponseContext responseContext) throws IOException { final Object requestId = requestContext.getProperty(LOGGING_ID_PROPERTY); final long id = requestId != null ? (Long) requestId : _id.incrementAndGet(); final StringBuilder b = new StringBuilder(); printResponseLine(b, "Client response received", id, responseContext.getStatus()); printPrefixedHeaders(b, id, RESPONSE_PREFIX, responseContext.getHeaders()); if (printEntity && responseContext.hasEntity()) { responseContext.setEntityStream(logInboundEntity(b, responseContext.getEntityStream(), MessageUtils.getCharset(responseContext.getMediaType()))); } log(b); }
@Override public void filter(ClientRequestContext req, ClientResponseContext res) throws IOException { if (isMethodWithNoContent(req.getMethod()) || isCheckEmptyStream() && !res.hasEntity()) { return; } JwsSignatureVerifier theSigVerifier = getInitializedSigVerifier(); JwsJsonConsumer c = new JwsJsonConsumer(IOUtils.readStringFromStream(res.getEntityStream())); validate(c, theSigVerifier); byte[] bytes = c.getDecodedJwsPayloadBytes(); res.setEntityStream(new ByteArrayInputStream(bytes)); res.getHeaders().putSingle("Content-Length", Integer.toString(bytes.length)); // the list is guaranteed to be non-empty JwsJsonSignatureEntry sigEntry = c.getSignatureEntries().get(0); String ct = JoseUtils.checkContentType(sigEntry.getUnionHeader().getContentType(), getDefaultMediaType()); if (ct != null) { res.getHeaders().putSingle("Content-Type", ct); } }
@Override public void filter(final ClientRequestContext requestContext, final ClientResponseContext responseContext) throws IOException { if (!logger.isLoggable(level)) { return; } final Object requestId = requestContext.getProperty(LOGGING_ID_PROPERTY); final long id = requestId != null ? (Long) requestId : _id.incrementAndGet(); final StringBuilder b = new StringBuilder(); printResponseLine(b, "Client response received", id, responseContext.getStatus()); printPrefixedHeaders(b, id, RESPONSE_PREFIX, responseContext.getHeaders()); if (responseContext.hasEntity() && printEntity(verbosity, responseContext.getMediaType())) { responseContext.setEntityStream(logInboundEntity(b, responseContext.getEntityStream(), MessageUtils.getCharset(responseContext.getMediaType()))); } log(b); } }
@Override public void filter(ClientRequestContext req, ClientResponseContext res) throws IOException { if (isMethodWithNoContent(req.getMethod()) || isCheckEmptyStream() && !res.hasEntity()) { return; } JweDecryptionOutput out = decrypt(res.getEntityStream()); byte[] bytes = out.getContent(); res.setEntityStream(new ByteArrayInputStream(bytes)); res.getHeaders().putSingle("Content-Length", Integer.toString(bytes.length)); String ct = JoseUtils.checkContentType(out.getHeaders().getContentType(), getDefaultMediaType()); if (ct != null) { res.getHeaders().putSingle("Content-Type", ct); } if (super.isValidateHttpHeaders()) { super.validateHttpHeadersIfNeeded(res.getHeaders(), out.getHeaders()); } }