Get same issue even If I use camel with cxf 2.7.1 and wss4j 1.6.9. Surprisingly the example that we have in camel project (that I created a few years ago) including a unit test succeeds --> https://github.com/apache/camel/blob/trunk/examples/camel-example-reportincident-wssecurity/src/test/java/org/apache/camel/example/reportincident/ReportIncidentRoutesTest.java
On Wed, Jan 9, 2013 at 8:02 PM, Charles Moulliard <ch0...@gmail.com> wrote: > Will test with 1.6.9. > > Until now in debug mode, I see that in the class WSS4JInInterceptor, when > we handle the message (handleMessage(SoapMessage msg) throws Fault), the > element is empty ( Element elem = > WSSecurityUtil.getSecurityHeader(doc.getSOAPPart(), actor); ) even if a > SOAPHeader with usernameToken + timeStamp has been provided in the > SOAPEnveloppe > > > On Wed, Jan 9, 2013 at 6:53 PM, Christian Müller < > christian.muel...@gmail.com> wrote: > >> Can you upgrade to wss4j 1.6.9? I had a similar issue... >> Am 09.01.2013 17:31 schrieb "Charles Moulliard" <ch0...@gmail.com>: >> >> > Hi, >> > >> > When I try to authenticate an HTTP request using WS-Security with >> camel-cxf >> > & wss4j interceptor, I get the following error : >> > >> > org.apache.camel.spring.Main.main() INFO >> > [org.apache.camel.spring.SpringCamelContext] - Total 1 routes, of which >> 1 >> > is started. >> > org.apache.camel.spring.Main.main() INFO >> > [org.apache.camel.spring.SpringCamelContext] - Apache Camel 2.10.0 >> > (CamelContext: camel-1) started in 0.993 seconds >> > qtp370155726-26 INFO >> > >> > >> [org.apache.cxf.services.CustomerServiceService.CustomerServicePort.CustomerService] >> > - Inbound Message >> > ---------------------------- >> > ID: 1 >> > Address: http://127.0.0.1:9090/training/WebService >> > Encoding: UTF-8 >> > Http-Method: POST >> > Content-Type: text/xml;charset=UTF-8 >> > Headers: {accept-encoding=[gzip,deflate], connection=[keep-alive], >> > Content-Length=[1590], content-type=[text/xml;charset=UTF-8], Host=[ >> > 127.0.0.1:9090], SOAPAction=[" >> http://training.fusesource.com/saveCustomer >> > "], >> > User-Agent=[Apache-HttpClient/4.1.1 (java 1.5)]} >> > Payload: <soapenv:Envelope xmlns:soapenv=" >> > http://schemas.xmlsoap.org/soap/envelope/" xmlns:tra=" >> > http://training.fusesource.com/"> >> > <soapenv:Header> >> > <wsse:Security xmlns:wsse=" >> > >> > >> http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd >> > " >> > soap:mustUnderstand="1"> >> > <wsse:UsernameToken xmlns:wsse=" >> > >> > >> http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd >> > " >> > xmlns:wsu=" >> > >> > >> http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd >> > " >> > wsu:Id="UsernameToken-1"> >> > <wsse:Username>charles</wsse:Username> >> > <wsse:Password Type=" >> > >> > >> http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest >> > ">TVzWGxNvhlixNVWol8poD9DHxl8=</wsse:Password> >> > <wsse:Nonce EncodingType=" >> > >> > >> http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary >> > ">WsMNSm/C4dzdPS3OhUi94Q==</wsse:Nonce> >> > <wsu:Created>2013-01-09T15:46:14.908Z</wsu:Created> >> > </wsse:UsernameToken> >> > </wsse:Security> >> > </soapenv:Header> >> > <soapenv:Body> >> > <tra:saveCustomer> >> > <customer> >> > <!--Optional:--> >> > <name>?</name> >> > <!--Zero or more repetitions:--> >> > <address>?</address> >> > <numOrders>?</numOrders> >> > <revenue>?</revenue> >> > <!--Optional:--> >> > <test>?</test> >> > <!--Optional:--> >> > <birthDate>?</birthDate> >> > <!--Optional:--> >> > <type>?</type> >> > </customer> >> > </tra:saveCustomer> >> > </soapenv:Body> >> > </soapenv:Envelope> >> > -------------------------------------- >> > qtp370155726-26 DEBUG >> [org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor] >> > - WSS4JInInterceptor: enter handleMessage() >> > qtp370155726-26 WARN >> [org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor] >> > - Security processing failed (actions mismatch) >> > qtp370155726-26 WARN >> [org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor] >> > - >> > org.apache.ws.security.WSSecurityException: An error was discovered >> > processing the <wsse:Security> header >> > at >> > >> > >> org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.checkActions(WSS4JInInterceptor.java:383) >> > at >> > >> > >> org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.handleMessage(WSS4JInInterceptor.java:333) >> > at >> > >> > >> org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.handleMessage(WSS4JInInterceptor.java:97) >> > at >> > >> > >> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:262) >> > at >> > >> > >> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121) >> > at >> > >> > >> org.apache.cxf.transport.http_jetty.JettyHTTPDestination.serviceRequest(JettyHTTPDestination.java:348) >> > at >> > >> > >> org.apache.cxf.transport.http_jetty.JettyHTTPDestination.doService(JettyHTTPDestination.java:312) >> > at >> > >> > >> org.apache.cxf.transport.http_jetty.JettyHTTPHandler.handle(JettyHTTPHandler.java:72) >> > at >> > >> > >> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:943) >> > at >> > >> > >> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:879) >> > at >> > >> > >> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117) >> > at >> > >> > >> org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:250) >> > at >> > >> > >> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:110) >> > at org.eclipse.jetty.server.Server.handle(Server.java:349) >> > at >> > >> > >> org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:441) >> > at >> > >> > >> org.eclipse.jetty.server.HttpConnection$RequestHandler.content(HttpConnection.java:936) >> > at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:801) >> > at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:224) >> > at >> > >> > >> org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:51) >> > at >> > >> > >> org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:586) >> > at >> > >> > >> org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:44) >> > at >> > >> > >> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:598) >> > at >> > >> > >> org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:533) >> > at java.lang.Thread.run(Thread.java:722) >> > qtp370155726-26 WARN [org.apache.cxf.phase.PhaseInterceptorChain] - >> > Interceptor for { >> http://training.fusesource.com/}CustomerServiceServicehas >> > thrown exception, unwinding now >> > org.apache.cxf.binding.soap.SoapFault: An error was discovered >> processing >> > the <wsse:Security> header >> > at >> > >> > >> org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.createSoapFault(WSS4JInInterceptor.java:804) >> > at >> > >> > >> org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.handleMessage(WSS4JInInterceptor.java:357) >> > at >> > >> > >> org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.handleMessage(WSS4JInInterceptor.java:97) >> > at >> > >> > >> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:262) >> > at >> > >> > >> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121) >> > at >> > >> > >> org.apache.cxf.transport.http_jetty.JettyHTTPDestination.serviceRequest(JettyHTTPDestination.java:348) >> > at >> > >> > >> org.apache.cxf.transport.http_jetty.JettyHTTPDestination.doService(JettyHTTPDestination.java:312) >> > at >> > >> > >> org.apache.cxf.transport.http_jetty.JettyHTTPHandler.handle(JettyHTTPHandler.java:72) >> > at >> > >> > >> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:943) >> > at >> > >> > >> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:879) >> > at >> > >> > >> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117) >> > at >> > >> > >> org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:250) >> > at >> > >> > >> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:110) >> > at org.eclipse.jetty.server.Server.handle(Server.java:349) >> > at >> > >> > >> org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:441) >> > at >> > >> > >> org.eclipse.jetty.server.HttpConnection$RequestHandler.content(HttpConnection.java:936) >> > at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:801) >> > at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:224) >> > at >> > >> > >> org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:51) >> > at >> > >> > >> org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:586) >> > at >> > >> > >> org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:44) >> > at >> > >> > >> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:598) >> > at >> > >> > >> org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:533) >> > at java.lang.Thread.run(Thread.java:722) >> > Caused by: org.apache.ws.security.WSSecurityException: An error was >> > discovered processing the <wsse:Security> header >> > at >> > >> > >> org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.checkActions(WSS4JInInterceptor.java:383) >> > at >> > >> > >> org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.handleMessage(WSS4JInInterceptor.java:333) >> > ... 22 more >> > >> > <cxf:cxfEndpoint id="WS" >> > address="http://localhost:9090/training/WebService >> " >> > >> > serviceClass="com.fusesource.training.CustomerService"> >> > <cxf:outInterceptors> >> > <ref bean="loggingOutInterceptor"/> >> > </cxf:outInterceptors> >> > <cxf:inInterceptors> >> > <ref bean="loggingInInterceptor"/> >> > <ref bean="wss4jInInterceptor"/> >> > </cxf:inInterceptors> >> > </cxf:cxfEndpoint> >> > >> > <bean id="loggingOutInterceptor" >> > class="org.apache.cxf.interceptor.LoggingOutInterceptor"/> >> > <bean id="loggingInInterceptor" >> > class="org.apache.cxf.interceptor.LoggingInInterceptor"/> >> > >> > <bean id="wss4jInInterceptor" >> > class="org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor"> >> > <constructor-arg> >> > <map> >> > <entry key="action" value="UsernameToken"/> >> > <entry key="passwordType" value="PasswordDigest"/> >> > <entry key="passwordCallbackClass" >> > value="com.fusesource.training.camel.UTPasswordCallback"/> >> > </map> >> > </constructor-arg> >> > </bean> >> > >> > It seems that there is an action mismatch during processing of WSS4J. >> > Does anybody knows how to solve this issue which is perhaps a CXF or >> > WSS4J question? >> > >> > Regards, >> > >> > -- >> > Charles Moulliard >> > Apache Committer / Sr. Enterprise Architect (RedHat) >> > Twitter : @cmoulliard | Blog : http://cmoulliard.blogspot.com >> > >> > > > > -- > Charles Moulliard > Apache Committer / Sr. Enterprise Architect (RedHat) > Twitter : @cmoulliard | Blog : http://cmoulliard.blogspot.com > > -- Charles Moulliard Apache Committer / Sr. Enterprise Architect (RedHat) Twitter : @cmoulliard | Blog : http://cmoulliard.blogspot.com