Finally, i used that solution. Thanks.
public class MyLoggingOutInterceptor extends LoggingOutInterceptor
{
@Override
protected String transform(String originalLogString) {
if (originalLogString.contains("authentication")) {
return originalLogString.replaceAll("<password>.*</password>",
"<password>*****</password>");
}
return originalLogString;
}
}
2012/10/25 Jason Pell <[email protected]>
> I don't think its as easy for that one. However what you can do is
> just remove the LoggingOutInterceptor from the current interceptor
> chain. We have a method to do that in our code that you can use:
>
> public static void removeInterceptor(Class<? extends Interceptor<?>>
> interceptorType, Message message) {
> Iterator<Interceptor<? extends Message>> iterator =
> message.getInterceptorChain().iterator();
>
> Interceptor<?> removeInterceptor = null;
> for (; iterator.hasNext();) {
> Interceptor<?> interceptor = iterator.next();
> if (interceptorType.isInstance(interceptor)) {
> removeInterceptor = interceptor;
> break;
> }
> }
>
> if (removeInterceptor != null) {
> LOGGER.debug("Removing interceptor {}",
> removeInterceptor.getClass().getName());
>
> message.getInterceptorChain().remove(removeInterceptor);
> }
> }
>
> There might be a code in CXF but I have not found it.
>
> So basically what you could do is this:
>
> removeInterceptor(LoggingOutInterceptor.class, message);
>
> On Thu, Oct 25, 2012 at 8:50 PM, Bruno Cappoen <[email protected]>
> wrote:
> > Hi, thanks. The endpoint of this service is not in my application. I
> made a
> > mistake, it's LoggingOutInterceptor. We use a remote service and we can't
> > modify this service, so we can't add a key.
> >
> > <jaxws:client id="helloClient"
> > serviceClass="demo.spring.HelloWorld"
> > address="http://localhost:9002/HelloWorld">
> > <jaxws:inInterceptors>
> > <ref bean="removeLoggingInInterceptorInterceptor"/>
> > </jaxws:inInterceptor>
> >
> > *
> > *
> >
> > I don't see what i must put in the
> > RemoveLoggingInInterceptorInterceptor to override logginOutInterceptor
> > in the cxf bus.
> >
> > *
> > *
> >
> > THanks
> >
> >
> > 2012/10/25 Jason Pell <[email protected]>
> >
> >> In fact what you could do is have this
> >> RemoveLoggingInInterceptorInterceptor you write defined in
> >> the specific Security Web Service jaxws:endpoint, so it does not even
> >> have to check the current
> >> endpoint info. If its defined for an endpoint it automatically
> >> removes the interceptor.
> >>
> >> An alternative to removing the interceptor would be to trick the
> >> interceptor into not
> >> executing any logging. If you check the start of the interceptor it
> >> has the code:
> >>
> >> if (message.containsKey(LoggingMessage.ID_KEY)) {
> >> return;
> >> }
> >>
> >> You could in your custom interceptor add this key to the message so
> >> that the above
> >> if evaluates to true. Just make sure the interceptor is registered to
> >> runBefore LoggingInInterceptor
> >>
> >>
> >> On Thu, Oct 25, 2012 at 10:47 AM, Jason Pell <[email protected]>
> wrote:
> >> > I am sure there is a better way - but what you could do is add an
> >> > additional interceptor that executes as part of the SETUP phase. This
> >> > would check what endpoint it is on and optionally remove the
> >> > LoggingInInterceptor from the current execution chain.
> >> >
> >> > I am sure others will have better solutions
> >> >
> >> > On Thu, Oct 25, 2012 at 8:35 AM, Bruno Cappoen <[email protected]>
> >> wrote:
> >> >> Hi everybody, i'm using a LoggingInInterceptor on the cxf bus to log
> >> >> all the requests of my webservices.
> >> >> It works perfectly.
> >> >> In my webservices, i have a secure webservice for authentication. The
> >> >> password is in the request (payload) and it is displayed
> >> >> in the log.
> >> >>
> >> >> Is it possible to disable the LoggingInInterceptor for a specific
> >> >> webservice ? Have you got a solution ?
> >> >>
> >> >> I don't want to specify for each webservice the interceptor because i
> >> >> have many webservices and here, it's a specific need.
> >> >>
> >> >>
> >> >> Thank you for your help.
> >> >>
> >> >>
> >> >>
> >> >> <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.xsdhttp://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"/>
> >> >>
> >> >>
> >> >> <cxf:bus>
> >> >> <cxf:outInterceptors>
> >> >> <ref bean="logInbound"/>
> >> >> </cxf:outInterceptors>
> >> >> </cxf:bus> </beans>
> >>
>