Loading src/main/java/com/inteligr8/rs/ClientCxfImpl.java +3 −0 Original line number Diff line number Diff line Loading @@ -9,6 +9,7 @@ import org.apache.cxf.BusFactory; import org.apache.cxf.jaxrs.client.JAXRSClientFactory; import org.apache.cxf.jaxrs.client.WebClient; import org.apache.cxf.jaxrs.impl.RuntimeDelegateImpl; import org.apache.cxf.jaxrs.provider.MultipartProvider; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.InitializingBean; Loading Loading @@ -66,6 +67,8 @@ public abstract class ClientCxfImpl extends Client implements InitializingBean { public WebClient getCxfClient(AuthorizationFilter authFilter) { List<Object> providersAndFilters = new LinkedList<Object>(); providersAndFilters.add(new JacksonJaxbJsonProvider()); providersAndFilters.add(new CxfLoggingFilter()); providersAndFilters.add(new MultipartProvider()); if (authFilter == null) authFilter = this.getConfig().createAuthorizationFilter(); Loading src/main/java/com/inteligr8/rs/CxfLoggingFilter.java 0 → 100644 +30 −0 Original line number Diff line number Diff line package com.inteligr8.rs; import java.io.IOException; import java.util.LinkedList; import java.util.List; import javax.ws.rs.client.ClientRequestContext; import javax.ws.rs.core.MediaType; import org.apache.cxf.jaxrs.ext.multipart.Attachment; import org.apache.cxf.jaxrs.ext.multipart.MultipartBody; import org.slf4j.Logger; public class CxfLoggingFilter extends LoggingFilter { @Override protected void logUnhandledRequest(ClientRequestContext requestContext, Logger logger) throws IOException { if (MediaType.MULTIPART_FORM_DATA_TYPE.equals(requestContext.getMediaType())) { if (requestContext.getEntity() instanceof MultipartBody) { List<String> attIds = new LinkedList<>(); for (Attachment att : ((MultipartBody)requestContext.getEntity()).getAllAttachments()) attIds.add(att.getContentId()); logger.trace("request: {} {}: {}", requestContext.getMethod(), requestContext.getUri(), attIds); } else { logger.trace("request: {} {}: failed to output form", requestContext.getMethod(), requestContext.getUri()); } } } } src/main/java/com/inteligr8/rs/LoggingFilter.java +26 −15 Original line number Diff line number Diff line Loading @@ -12,6 +12,7 @@ import javax.ws.rs.core.MediaType; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.databind.ObjectMapper; public class LoggingFilter implements ClientRequestFilter, ClientResponseFilter { Loading @@ -19,27 +20,37 @@ public class LoggingFilter implements ClientRequestFilter, ClientResponseFilter private final Logger loggerRequest = LoggerFactory.getLogger("jaxrs.request"); private final Logger loggerResponse = LoggerFactory.getLogger("jaxrs.response"); private final ObjectMapper om = new ObjectMapper(); protected final ObjectMapper om = new ObjectMapper().setSerializationInclusion(Include.NON_NULL); @Override public void filter(ClientRequestContext requestContext) throws IOException { if (this.loggerRequest.isTraceEnabled()) { if (this.loggerRequest.isTraceEnabled()) this.logAnyRequest(requestContext, this.loggerRequest); } protected void logAnyRequest(ClientRequestContext requestContext, Logger logger) throws IOException { if (MediaType.APPLICATION_JSON_TYPE.equals(requestContext.getMediaType())) { this.loggerRequest.trace("request: {} {}: {}", requestContext.getMethod(), requestContext.getUri(), logger.trace("request: {} {}: {}", requestContext.getMethod(), requestContext.getUri(), this.om.writeValueAsString(requestContext.getEntity())); } else if (MediaType.APPLICATION_FORM_URLENCODED_TYPE.equals(requestContext.getMediaType())) { if (requestContext.getEntity() instanceof Form) { this.loggerRequest.trace("request: {} {}: {}", requestContext.getMethod(), requestContext.getUri(), logger.trace("request: {} {}: {}", requestContext.getMethod(), requestContext.getUri(), ((Form)requestContext.getEntity()).asMap()); } else { this.loggerRequest.trace("request: {} {}: failed to output form", requestContext.getMethod(), requestContext.getUri()); } } else if (requestContext.getMediaType() != null) { this.loggerRequest.trace("request '{}': {} {}", requestContext.getMediaType(), requestContext.getMethod(), requestContext.getUri()); } else { this.loggerRequest.trace("request: {} {}", requestContext.getMethod(), requestContext.getUri()); this.logUnhandledRequest(requestContext, logger); } } protected void logUnhandledRequest(ClientRequestContext requestContext, Logger logger) throws IOException { if (requestContext.getMediaType() != null) { logger.trace("request '{}': {} {}", requestContext.getMediaType(), requestContext.getMethod(), requestContext.getUri()); } else { logger.trace("request: {} {}", requestContext.getMethod(), requestContext.getUri()); } } @Override Loading src/main/java/com/inteligr8/rs/OAuthAuthorizationFilter.java +8 −0 Original line number Diff line number Diff line Loading @@ -101,6 +101,7 @@ public abstract class OAuthAuthorizationFilter implements AuthorizationFilter { form.param("client_secret", this.clientSecret); if (this.scope != null) form.param("scope", this.scope); this.extendRefreshTokenForm(form); Entity<Form> entity = Entity.form(form); Loading @@ -118,6 +119,7 @@ public abstract class OAuthAuthorizationFilter implements AuthorizationFilter { this.accessToken = (String)response.get("access_token"); this.expiration = System.currentTimeMillis() + ((Number)response.get("expires_in")).longValue() * 1000L; this.refreshToken = (String)response.get("refresh_token"); this.extendRefreshTokenResponse(response); } protected Form createRefreshForm() { Loading @@ -127,4 +129,10 @@ public abstract class OAuthAuthorizationFilter implements AuthorizationFilter { protected abstract Form createForm(); protected void extendRefreshTokenForm(Form form) { } protected void extendRefreshTokenResponse(Map<String, Object> response) { } } Loading
src/main/java/com/inteligr8/rs/ClientCxfImpl.java +3 −0 Original line number Diff line number Diff line Loading @@ -9,6 +9,7 @@ import org.apache.cxf.BusFactory; import org.apache.cxf.jaxrs.client.JAXRSClientFactory; import org.apache.cxf.jaxrs.client.WebClient; import org.apache.cxf.jaxrs.impl.RuntimeDelegateImpl; import org.apache.cxf.jaxrs.provider.MultipartProvider; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.InitializingBean; Loading Loading @@ -66,6 +67,8 @@ public abstract class ClientCxfImpl extends Client implements InitializingBean { public WebClient getCxfClient(AuthorizationFilter authFilter) { List<Object> providersAndFilters = new LinkedList<Object>(); providersAndFilters.add(new JacksonJaxbJsonProvider()); providersAndFilters.add(new CxfLoggingFilter()); providersAndFilters.add(new MultipartProvider()); if (authFilter == null) authFilter = this.getConfig().createAuthorizationFilter(); Loading
src/main/java/com/inteligr8/rs/CxfLoggingFilter.java 0 → 100644 +30 −0 Original line number Diff line number Diff line package com.inteligr8.rs; import java.io.IOException; import java.util.LinkedList; import java.util.List; import javax.ws.rs.client.ClientRequestContext; import javax.ws.rs.core.MediaType; import org.apache.cxf.jaxrs.ext.multipart.Attachment; import org.apache.cxf.jaxrs.ext.multipart.MultipartBody; import org.slf4j.Logger; public class CxfLoggingFilter extends LoggingFilter { @Override protected void logUnhandledRequest(ClientRequestContext requestContext, Logger logger) throws IOException { if (MediaType.MULTIPART_FORM_DATA_TYPE.equals(requestContext.getMediaType())) { if (requestContext.getEntity() instanceof MultipartBody) { List<String> attIds = new LinkedList<>(); for (Attachment att : ((MultipartBody)requestContext.getEntity()).getAllAttachments()) attIds.add(att.getContentId()); logger.trace("request: {} {}: {}", requestContext.getMethod(), requestContext.getUri(), attIds); } else { logger.trace("request: {} {}: failed to output form", requestContext.getMethod(), requestContext.getUri()); } } } }
src/main/java/com/inteligr8/rs/LoggingFilter.java +26 −15 Original line number Diff line number Diff line Loading @@ -12,6 +12,7 @@ import javax.ws.rs.core.MediaType; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.databind.ObjectMapper; public class LoggingFilter implements ClientRequestFilter, ClientResponseFilter { Loading @@ -19,27 +20,37 @@ public class LoggingFilter implements ClientRequestFilter, ClientResponseFilter private final Logger loggerRequest = LoggerFactory.getLogger("jaxrs.request"); private final Logger loggerResponse = LoggerFactory.getLogger("jaxrs.response"); private final ObjectMapper om = new ObjectMapper(); protected final ObjectMapper om = new ObjectMapper().setSerializationInclusion(Include.NON_NULL); @Override public void filter(ClientRequestContext requestContext) throws IOException { if (this.loggerRequest.isTraceEnabled()) { if (this.loggerRequest.isTraceEnabled()) this.logAnyRequest(requestContext, this.loggerRequest); } protected void logAnyRequest(ClientRequestContext requestContext, Logger logger) throws IOException { if (MediaType.APPLICATION_JSON_TYPE.equals(requestContext.getMediaType())) { this.loggerRequest.trace("request: {} {}: {}", requestContext.getMethod(), requestContext.getUri(), logger.trace("request: {} {}: {}", requestContext.getMethod(), requestContext.getUri(), this.om.writeValueAsString(requestContext.getEntity())); } else if (MediaType.APPLICATION_FORM_URLENCODED_TYPE.equals(requestContext.getMediaType())) { if (requestContext.getEntity() instanceof Form) { this.loggerRequest.trace("request: {} {}: {}", requestContext.getMethod(), requestContext.getUri(), logger.trace("request: {} {}: {}", requestContext.getMethod(), requestContext.getUri(), ((Form)requestContext.getEntity()).asMap()); } else { this.loggerRequest.trace("request: {} {}: failed to output form", requestContext.getMethod(), requestContext.getUri()); } } else if (requestContext.getMediaType() != null) { this.loggerRequest.trace("request '{}': {} {}", requestContext.getMediaType(), requestContext.getMethod(), requestContext.getUri()); } else { this.loggerRequest.trace("request: {} {}", requestContext.getMethod(), requestContext.getUri()); this.logUnhandledRequest(requestContext, logger); } } protected void logUnhandledRequest(ClientRequestContext requestContext, Logger logger) throws IOException { if (requestContext.getMediaType() != null) { logger.trace("request '{}': {} {}", requestContext.getMediaType(), requestContext.getMethod(), requestContext.getUri()); } else { logger.trace("request: {} {}", requestContext.getMethod(), requestContext.getUri()); } } @Override Loading
src/main/java/com/inteligr8/rs/OAuthAuthorizationFilter.java +8 −0 Original line number Diff line number Diff line Loading @@ -101,6 +101,7 @@ public abstract class OAuthAuthorizationFilter implements AuthorizationFilter { form.param("client_secret", this.clientSecret); if (this.scope != null) form.param("scope", this.scope); this.extendRefreshTokenForm(form); Entity<Form> entity = Entity.form(form); Loading @@ -118,6 +119,7 @@ public abstract class OAuthAuthorizationFilter implements AuthorizationFilter { this.accessToken = (String)response.get("access_token"); this.expiration = System.currentTimeMillis() + ((Number)response.get("expires_in")).longValue() * 1000L; this.refreshToken = (String)response.get("refresh_token"); this.extendRefreshTokenResponse(response); } protected Form createRefreshForm() { Loading @@ -127,4 +129,10 @@ public abstract class OAuthAuthorizationFilter implements AuthorizationFilter { protected abstract Form createForm(); protected void extendRefreshTokenForm(Form form) { } protected void extendRefreshTokenResponse(Map<String, Object> response) { } }