From b612d671bdf74f112fc02bd9f39fb0e4b1aec501 Mon Sep 17 00:00:00 2001 From: Christof Rabensteiner Date: Mon, 26 Aug 2019 15:33:04 +0200 Subject: Log Incoming And Outgoing Messages with CXF Logging Interceptors - Add loggin dependency. - Enable Message Logging for Services and Clients. - Add message logging config + examples to application.yaml --- src/main/java/at/gv/egiz/moazs/client/ClientFactory.java | 15 +++++++++++++++ src/main/java/at/gv/egiz/moazs/service/MsgService.java | 1 + src/main/java/at/gv/egiz/moazs/service/MzsService.java | 1 + 3 files changed, 17 insertions(+) (limited to 'src/main/java') diff --git a/src/main/java/at/gv/egiz/moazs/client/ClientFactory.java b/src/main/java/at/gv/egiz/moazs/client/ClientFactory.java index 818c4c9..f173467 100644 --- a/src/main/java/at/gv/egiz/moazs/client/ClientFactory.java +++ b/src/main/java/at/gv/egiz/moazs/client/ClientFactory.java @@ -9,7 +9,10 @@ import at.gv.zustellung.app2mzs.xsd.KeyStoreType; import at.gv.zustellung.app2mzs.xsd.SSLType; import org.apache.cxf.configuration.jsse.TLSClientParameters; import org.apache.cxf.endpoint.Client; +import org.apache.cxf.ext.logging.LoggingInInterceptor; +import org.apache.cxf.ext.logging.LoggingOutInterceptor; import org.apache.cxf.frontend.ClientProxy; +import org.apache.cxf.interceptor.Interceptor; import org.apache.cxf.jaxws.JaxWsClientFactoryBean; import org.apache.cxf.jaxws.JaxWsProxyFactoryBean; import org.apache.cxf.message.Message; @@ -37,6 +40,10 @@ public class ClientFactory { private final FileUtils fileUtils; private final ConfigUtil configUtil; + private static final Interceptor LOGGING_IN_INTERCEPTOR = new LoggingInInterceptor(); + private static final Interceptor LOGGING_OUT_INTERCEPTOR = new LoggingOutInterceptor(); + + @Autowired public ClientFactory(StoreSOAPBodyBinaryInRepositoryInterceptor storeResponseInterceptor, SSLContextCreator creator, @@ -62,6 +69,7 @@ public class ClientFactory { factory.setServiceClass(clazz); factory.setAddress(params.getURL()); factory.getInInterceptors().add(storeResponseInterceptor); + setupLoggingInterceptors(factory); var proxy = new JaxWsProxyFactoryBean(factory).create(); Client client = ClientProxy.getClient(proxy); @@ -88,6 +96,13 @@ public class ClientFactory { return ((T)proxy); } + private void setupLoggingInterceptors(JaxWsClientFactoryBean factory) { + factory.getInInterceptors().add(LOGGING_IN_INTERCEPTOR); + factory.getInFaultInterceptors().add(LOGGING_IN_INTERCEPTOR); + factory.getOutInterceptors().add(LOGGING_OUT_INTERCEPTOR); + factory.getOutFaultInterceptors().add(LOGGING_OUT_INTERCEPTOR); + } + private TLSClientParameters setupTLSParams(SSLType ssl) { var tlsParams = new TLSClientParameters(); diff --git a/src/main/java/at/gv/egiz/moazs/service/MsgService.java b/src/main/java/at/gv/egiz/moazs/service/MsgService.java index 9f94cb3..1144d17 100644 --- a/src/main/java/at/gv/egiz/moazs/service/MsgService.java +++ b/src/main/java/at/gv/egiz/moazs/service/MsgService.java @@ -18,6 +18,7 @@ import static java.util.concurrent.CompletableFuture.runAsync; @Service @SchemaValidation(type = SchemaValidation.SchemaValidationType.BOTH) +@org.apache.cxf.feature.Features (features = "org.apache.cxf.ext.logging.LoggingFeature") public class MsgService implements Zuse2AppPort { private final DeliveryRepository repository; diff --git a/src/main/java/at/gv/egiz/moazs/service/MzsService.java b/src/main/java/at/gv/egiz/moazs/service/MzsService.java index 8b5d697..a0e6248 100644 --- a/src/main/java/at/gv/egiz/moazs/service/MzsService.java +++ b/src/main/java/at/gv/egiz/moazs/service/MzsService.java @@ -27,6 +27,7 @@ import static java.util.concurrent.CompletableFuture.supplyAsync; @Service @SchemaValidation(type = SchemaValidation.SchemaValidationType.BOTH) +@org.apache.cxf.feature.Features (features = "org.apache.cxf.ext.logging.LoggingFeature") public class MzsService implements App2MzsPortType { private static final Logger log = LoggerFactory.getLogger(MzsService.class); -- cgit v1.2.3