Uploaded image for project: 'Red Hat Fuse'
  1. Red Hat Fuse
  2. ENTESB-5259

.SoapFault: MustUnderstand headers: [{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}Security] are not understood with WS SEcurity Policy

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Won't Do
    • Icon: Major Major
    • jboss-fuse-6.3
    • jboss-fuse-6.2.1
    • CXF
    • None
    • % %

      The following Test Class (WSSecurityPolicyTest) when the unit test method (public void testUsernameToken() throws Exception {) is called generates this error

      org.apache.cxf.binding.soap.SoapFault: MustUnderstand headers: [{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}Security] are not understood.
      	at org.apache.cxf.binding.soap.interceptor.MustUnderstandInterceptor$MustUnderstandEndingInterceptor.handleMessage(MustUnderstandInterceptor.java:281)
      	at org.apache.cxf.binding.soap.interceptor.MustUnderstandInterceptor$MustUnderstandEndingInterceptor.handleMessage(MustUnderstandInterceptor.java:259)
      	at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307)
      	at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
      	at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:251)
      	at org.apache.cxf.transport.http_jetty.JettyHTTPDestination.doService(JettyHTTPDestination.java:261)
      	at org.apache.cxf.transport.http_jetty.JettyHTTPHandler.handle(JettyHTTPHandler.java:70)
      	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1088)
      	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1024)
      	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:370)
      	at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:494)
      	at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:982)
      	at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1043)
      	at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:865)
      	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:696)
      	at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:53)
      	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(Thread.java:745)
      

      Both Client/Server are configured with the ws-security property --> <entry key="ws-security.must-understand" value="false"/>

      Server

      <?xml version="1.0" encoding="UTF-8"?>
      <beans xmlns="http://www.springframework.org/schema/beans" xmlns:cxf="http://cxf.apache.org/core"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xmlns:http="http://cxf.apache.org/transports/http/configuration"
             xmlns:httpj="http://cxf.apache.org/transports/http-jetty/configuration"
             xmlns:sec="http://cxf.apache.org/configuration/security"
             xmlns:jaxws="http://cxf.apache.org/jaxws"
             xsi:schemaLocation="
               http://cxf.apache.org/core  http://cxf.apache.org/schemas/core.xsd
               http://cxf.apache.org/configuration/security http://cxf.apache.org/schemas/configuration/security.xsd
               http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd
               http://cxf.apache.org/transports/http/configuration http://cxf.apache.org/schemas/configuration/http-conf.xsd
               http://cxf.apache.org/transports/http-jetty/configuration             http://cxf.apache.org/schemas/configuration/http-jetty.xsd
               http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
          <cxf:bus>
              <cxf:features>
                  <cxf:logging/>
              </cxf:features>
          </cxf:bus>
          <jaxws:endpoint xmlns:s="http://jboss.org/HelloWorld" id="server"
                          endpointName="s:GreeterPort"
                          serviceName="s:HelloService" implementor="org.jboss.fuse.security.service.GreeterImpl"
                          address="http://localhost:9001/ws/Hello">
              <jaxws:properties>
                  <entry key="ws-security.signature.properties" value="outsecurity.properties"/>
                  <entry key="ws-security.callback-handler" value="org.jboss.fuse.security.PwdCallBack"/>
                  <entry key="ws-security.must-understand" value="false"/>
              </jaxws:properties>
          </jaxws:endpoint>
      </beans>
      

      Client

      <?xml version="1.0" encoding="UTF-8"?>
      <beans xmlns="http://www.springframework.org/schema/beans" xmlns:cxf="http://cxf.apache.org/core"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://cxf.apache.org/policy"
             xmlns:sec="http://cxf.apache.org/configuration/security"
             xmlns:http="http://cxf.apache.org/transports/http/configuration"
             xmlns:jaxws="http://cxf.apache.org/jaxws"
             xsi:schemaLocation="            http://cxf.apache.org/core            http://cxf.apache.org/schemas/core.xsd            http://cxf.apache.org/configuration/security            http://cxf.apache.org/schemas/configuration/security.xsd            http://cxf.apache.org/jaxws            http://cxf.apache.org/schemas/jaxws.xsd            http://cxf.apache.org/transports/http/configuration            http://cxf.apache.org/schemas/configuration/http-conf.xsd            http://www.springframework.org/schema/beans            http://www.springframework.org/schema/beans/spring-beans.xsd">
          <cxf:bus>
              <cxf:features>
                  <cxf:logging/>
              </cxf:features>
          </cxf:bus>
          <jaxws:client name="{http://jboss.org/HelloWorld}GreeterPort" createdFromAPI="true">
              <jaxws:properties>
                  <entry key="ws-security.username" value="cmoulliard"/>
                  <entry key="ws-security.callback-handler" value="org.jboss.fuse.security.service.PwdCallback"/>
                  <entry key="ws-security.must-understand" value="false"/>
              </jaxws:properties>
          </jaxws:client>
          <http:conduit name="{http://jboss.org/HelloWorld}GreeterPort.http-conduit">
              <http:tlsClientParameters>
                  <sec:keyManagers keyPassword="secUr1t8">
                      <sec:keyStore file="src/test/resources/integrationstore.jks" password="secUr1t8" type="JKS"/>
                  </sec:keyManagers>
                  <sec:trustManagers>
                      <sec:keyStore file="src/test/resources/integrationstore.jks" password="secUr1t8" type="JKS"/>
                  </sec:trustManagers>
              </http:tlsClientParameters>
          </http:conduit>
      </beans>
      
      

            Unassigned Unassigned
            cmoullia Charles Moulliard
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: