I would recommend trying with a more recent version of CXF to see if the
problem has been fixed.

Colm.

On Wed, Jul 1, 2015 at 11:26 AM, pmarkus <[email protected]> wrote:

> I created a webservice on JBoss AS 7.1.1 (which uses CXF 2.6.8) as a
> Stateless Session Bean using code first approach.
>
> @Stateless
> @WebService(targetNamespace = "http://mycompany/mynamespace";, serviceName
> =
> "myService", name = "myService", portName = "myServicePort")
> @EndpointProperties
>         ({
>                  @EndpointProperty(key = "endpoint-processes-headers",
> value
> =
> "{
> http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}Security
> "),
>                  @EndpointProperty(key =
> "ws-security.signature.properties",
> value = "signature.properties"),
>                  @EndpointProperty(key =
> "ws-security.encryption.properties", value = "encryption.properties"),
>                  @EndpointProperty(key = "ws-security.signature.username",
> value = "sig-user"),
>                  @EndpointProperty(key = "ws-security.encryption.username",
> value = "enc-user"),
>                  @EndpointProperty(key = "ws-security.callback-handler",
> value = "my.company.ClientCallback")
>          })
> @Features(features = "org.apache.cxf.ws.policy.WSPolicyFeature")
> @Policy(placement = Policy.Placement.BINDING, uri =
> "/META-INF/pw-reset-policy.xml")
> @InInterceptors(interceptors = {
> "org.apache.cxf.ws.policy.PolicyOutInterceptor" } )
> @OutInterceptors(interceptors =
> {"org.apache.cxf.ws.policy.PolicyOutInterceptor"})
> public class MyServiceBean implements MyService
> {...}
>
> The policy I attach looks like this:
> <wsp:Policy xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy
> "
>             xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy";
>
> xmlns:wsu="
> http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd
> "
>             wsu:Id="SecurityServiceSignThenEncryptPolicy">
>     <wsp:ExactlyOne>
>         <wsp:All>
>             <sp:AsymmetricBinding >
>                 <wsp:Policy>
>                     <sp:InitiatorToken>
>                         <wsp:Policy>
>                             <sp:X509Token
> sp:IncludeToken="
> http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysToRecipient
> ">
>                                 <wsp:Policy>
>                                     <sp:WssX509V1Token11/>
>                                 </wsp:Policy>
>                             </sp:X509Token>
>                         </wsp:Policy>
>                     </sp:InitiatorToken>
>                     <sp:RecipientToken>
>                         <wsp:Policy>
>                             <sp:X509Token
> sp:IncludeToken="
> http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/Never";>
>                                 <wsp:Policy>
>                                     <sp:WssX509V1Token11/>
>                                 </wsp:Policy>
>                             </sp:X509Token>
>                         </wsp:Policy>
>                     </sp:RecipientToken>
>                     <sp:AlgorithmSuite>
>                         <wsp:Policy>
>                             <sp:TripleDesRsa15/>
>                         </wsp:Policy>
>                     </sp:AlgorithmSuite>
>                     <sp:Layout>
>                         <wsp:Policy>
>                             <sp:Lax/>
>                         </wsp:Policy>
>                     </sp:Layout>
>                     <sp:IncludeTimestamp/>
>                     <sp:EncryptSignature/>
>                     <sp:OnlySignEntireHeadersAndBody/>
>                     <sp:SignBeforeEncrypting/>
>                 </wsp:Policy>
>             </sp:AsymmetricBinding>
>             <sp:SignedParts >
>                 <sp:Body/>
>             </sp:SignedParts>
>             <sp:EncryptedParts >
>                 <sp:Body/>
>             </sp:EncryptedParts>
>             <sp:Wss10>
>                 <wsp:Policy>
>                     <sp:MustSupportRefIssuerSerial/>
>                 </wsp:Policy>
>             </sp:Wss10>
>         </wsp:All>
>     </wsp:ExactlyOne>
> </wsp:Policy>
>
> I use the interface MyService (and all the other data classes) on the
> client
> as well to generate a service Stub on the fly using jax-ws Service.create
> pointing to the WSDL this service creates.
>
> The client (provided with all the keystores and properties) does correctly
> encrypt the the message, or at least I assume it does because the server
> always produces an exception:
>
> Interceptor for {http://www.tenfold-security.com/password}passwordReset
> has
> thrown exception, unwinding now: org.apache.cxf.interceptor.Fault: Message
> part {http://www.w3.org/2001/04/xmlenc#}EncryptedData was not recognized.
> (Does it exist in service WSDL?)
>         at
>
> org.apache.cxf.interceptor.DocLiteralInInterceptor.validatePart(DocLiteralInInterceptor.java:237)
> [cxf-api.jar:2.6.8]
>         at
>
> org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:191)
> [cxf-api.jar:2.6.8]
>         at
>
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:262)
> [cxf-api.jar:2.6.8]
>         at
>
> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
> [cxf-api.jar:2.6.8]
>         at
>
> org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:237)
> [cxf-rt-transports-http.jar:2.6.8]
>         at
>
> org.jboss.wsf.stack.cxf.RequestHandlerImpl.handleHttpRequest(RequestHandlerImpl.java:95)
>         at
>
> org.jboss.wsf.stack.cxf.transport.ServletHelper.callRequestHandler(ServletHelper.java:156)
>         at
> org.jboss.wsf.stack.cxf.CXFServletExt.invoke(CXFServletExt.java:87)
>         at
>
> org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:225)
> [cxf-rt-transports-http.jar:2.6.8]
>         at
>
> org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:145)
> [cxf-rt-transports-http.jar:2.6.8]
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
> [jboss-servlet-api_3.0_spec-1.0.0.Final.jar:1.0.0.Final]
>         at
> org.jboss.wsf.stack.cxf.CXFServletExt.service(CXFServletExt.java:135)
>         at
> org.jboss.wsf.spi.deployment.WSFServlet.service(WSFServlet.java:140)
> [jbossws-spi.jar:2.1.1.Final]
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
> [jboss-servlet-api_3.0_spec-1.0.0.Final.jar:1.0.0.Final]
>         at
>
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329)
>         at
>
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)
>         at
>
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275)
>         at
>
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161)
>         at
>
> org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:153)
>         at
>
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155)
>         at
>
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>         at
>
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>         at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368)
>         at
>
> org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:897)
>         at
>
> org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:626)
>         at
> org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:2039)
>         at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_45]
>
>
> I tried a lot of things to make this work, but nothing did so far.
> I added @Features(features = "org.apache.cxf.ws.policy.WSPolicyFeature")
> which apparently did nothing.
>
> I tried to use the WSS4JInInterceptor and WSS4JOutInterceptor which only
> complained that there is no Security action defined.
>
> I also tried to configure the interceptors via cxf.xml but then it
> complained about not being able to read the file because it could not find
> some schemas (http://cxf.apache.org/configuration/parameterized-types
> which
> was referenced in http://cxf.apache.org/core).
>
> I also didn't find any way to configure the WSS4J interceptors via
> annotations.
>
> I tried to use JBoss-WS's @EndpointConfig annotation providing the
> configuration via a endpoint-config.xml file. Same result.
>
> I did subclass WSS4JInInterceptor and set the action property in the
> constructor. But then it complained about not finding the signature
> properties file.
>
> So in the end nothing worked. Did I miss something? Am I doing something
> wrong?
>
> So far the client (also using CXF 2.6.8 on another JBoss server) seems to
> correctly read the policy from the WSDL with no other configuration than
> keystores, etc required. I didn't need to specify anything in particular
> for
> policy handling. Yet the server just cannot handle it.
>
> Kind Regards,
> Philip.
>
>
>
> --
> View this message in context:
> http://cxf.547215.n5.nabble.com/EJB-Webservice-does-not-handle-policy-tp5758729.html
> Sent from the cxf-user mailing list archive at Nabble.com.
>



-- 
Colm O hEigeartaigh

Talend Community Coder
http://coders.talend.com

Reply via email to