Hi there, I’m trying to add logging to my Apache CXF 3.4.3 client. I would like to enable pretty printing and mask sensitive information like the user name and the password.
This is what Apache CXF recommends for enabling logging: <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:cxf="http://cxf.apache.org/core" xsi:schemaLocation=" http://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> <cxf:bus> <cxf:features> <cxf:logging/> </cxf:features> </cxf:bus> </beans> However, I don’t know how to enable pretty printing there. Therefore I came up with this solution: <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:cxf="http://cxf.apache.org/core" xsi:schemaLocation=" http://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> <bean id="logInbound" class="org.apache.cxf.interceptor.LoggingInInterceptor"> <property name="prettyLogging" value="true"/> </bean> <bean id="logOutbound" class="org.apache.cxf.interceptor.LoggingOutInterceptor"> <property name="prettyLogging" value="true"/> </bean> <cxf:bus> <cxf:inInterceptors> <ref bean="logInbound"/> </cxf:inInterceptors> <cxf:outInterceptors> <ref bean="logOutbound"/> </cxf:outInterceptors> <cxf:outFaultInterceptors> <ref bean="logOutbound"/> </cxf:outFaultInterceptors> <cxf:inFaultInterceptors> <ref bean="logInbound"/> </cxf:inFaultInterceptors> </cxf:bus> </beans> However, the LoggingInInterceptor and its counterpart are marked as deprecated. Is there are a better way to do this? I would like to mask sensitive information in the logging statements as well. This site here (https://cxf.apache.org/docs/message-logging.html) says that LoggingFeature has two new methods as of version 3.4.0: addSensitiveElementNames(final Set<String> sensitiveElements); Configures names of sensitive XML and JSON elements, values to be masked. addSensitiveProtocolHeaderNames(final Set<String> sensitiveProtocolHeaders); Configures names of sensitive protocol headers, values to be masked. I took a look at org.apache.cxf.feature.LoggingFeature in 3.4.3 but could not find any of these methods. Am I doing something wrong or haven’t the methods been added yet? Thanks! Kind regards Matthias _________________________________________________________________________ [cid:[email protected]] Matthias Tonhäuser | Softwareentwickler Fon 0251 9159-501 GuideCom AG | Hafenweg 14 | 48155 Münster | www.guidecom.de<http://www.guidecom.de/> | Amtsgericht Münster HRB 18577 Vorstand: Robin Wunsch (Sprecher), Mathias Bokelmann, Günter Meyer, Dr. Michael Thygs Aufsichtsrat: Robert Baresel (Vorsitzender), Prof. Dr. Margret Borchert, Prof. Dr. Jan Recker _________________________________________________________________________ How tomorrow works.
