Yes, I believe it's related to some security tightening up done recently:
http://cxf.547215.n5.nabble.com/CXF-2-6-2-SOAPAction-Validation-Behavior-td5713789.html#a5713800

Glen

On 10/29/2012 04:01 PM, Gary Gregory wrote:
Hi All:

I am updating our app server to 2.7.0 from 2.6.0 and our WSS tests are
failing. All the other tests are OK. I'm not sure if this is something
we've gotten away with in the past with our pile of custom interceptors or
if this is an incompatibility. It would be very difficult for me to extract
a standalone test based on our code so I am taking a short cut to see if
this will ring an obvious bell with someone.

The test looks like this:

     @Test
     public void testWssNamePwd() throws Exception {
         final URL wsdl =
ClassLoader.getSystemResource(this.getConfigResource() +
"/functions/TestBackEndWss.wsdl");
         final Client client =
JaxWsDynamicClientFactory.newInstance().createClient(wsdl.toExternalForm());
         final Map<String, Object> outProps = new HashMap<String, Object>();
         outProps.put(WSHandlerConstants.ACTION,
WSHandlerConstants.USERNAME_TOKEN);
         outProps.put(WSHandlerConstants.PASSWORD_TYPE, WSConstants.PW_TEXT);
         outProps.put(WSHandlerConstants.USER, AisTestBackEnd.USER_NAME);
         outProps.put(WSHandlerConstants.PW_CALLBACK_REF, new
CallbackHandler() {
             @Override
             public void handle(final Callback[] callbacks) {
                 final WSPasswordCallback callback = (WSPasswordCallback)
callbacks[0];
                 callback.setPassword(AisTestBackEnd.PASSWORD);
             }
         });
         client.getOutInterceptors().add(new WSS4JOutInterceptor(outProps));
         final String ARG_VALUE = "string arg value";
         Object[] results =
client.invoke(AisTestBackEnd.ONESTRINGARGWSS_USERNAMETOKEN_FUNCTION_NAME,
new Object[] { ARG_VALUE });
         Assert.assertNotNull(results);
         Assert.assertNotNull(results[0]);
         Assert.assertTrue(((String) results[0]).indexOf(ARG_VALUE) > 0);
         //more asserts...

This is the exception I see:

2012-10-29 15:04:40,656 [qtp563831333-20 - /lde/] WARN : Interceptor for {
http://soap.comm.server.appinterface.seagullsw.com/}LdeWebServiceProviderService#{http://soap.comm.server.appinterface.seagullsw.com/}invokehas
thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: The given SOAPAction
test.oneStringArgWssUsernameToken does not match an operation.
     at
org.apache.cxf.binding.soap.interceptor.SoapActionInInterceptor$SoapActionInAttemptTwoInterceptor.handleMessage(SoapActionInInterceptor.java:188)
     at
org.apache.cxf.binding.soap.interceptor.SoapActionInInterceptor$SoapActionInAttemptTwoInterceptor.handleMessage(SoapActionInInterceptor.java:162)
     at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:271)
     at
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
     at
org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:238)
     at
org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:222)
     at
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:202)
     at
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:137)
     at
org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:158)
     at
org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:239)
     at
org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:159)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
     at
org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:215)
     at
org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:648)
     at
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:455)
     at
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1072)
     at
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:382)
     at
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1006)
     at
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
     at
org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)
     at
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
     at org.eclipse.jetty.server.Server.handle(Server.java:361)
     at
org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:485)
     at
org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:937)
     at
org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:998)
     at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:856)
     at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240)
     at
org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
     at
org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:627)
     at
org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:51)
     at
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
     at
org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
     at java.lang.Thread.run(Unknown Source)

The debug log which includes CXF, Jetty and our own logging is here:
http://pastebin.com/LXb9vjQD

The WSDL is here: http://pastebin.com/y12erjaw

Thank you in advance for any guidance you can give me in figuring this out.

Gary



--
Glen Mazza
Talend Community Coders - coders.talend.com
blog: www.jroller.com/gmazza

Reply via email to