You should enable debug logging to get the root cause of the failure.

Colm.

On Tue, Nov 3, 2020 at 9:47 AM Miha Zoubek <[email protected]> wrote:

> Hello
>
> no, i have found what was the cause. It was the wrong path to jks file.
> But now I am having different problem. Callback is now called but I get
> error:
>
> <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope";>
>    <soap:Body>
>       <soap:Fault>
>          <soap:Code>
>             <soap:Value>soap:Sender</soap:Value>
>          </soap:Code>
>          <soap:Reason>
>             <soap:Text xml:lang="en">Error reading XMLStreamReader:
> org.apache.wss4j.common.ext.WSSecurityException: A security error was
> encountered when verifying the message</soap:Text>
>          </soap:Reason>
>          <soap:Detail>
>             <stackTrace xmlns="http://cxf.apache.org/fault";>Caused by:
> javax.xml.stream.XMLStreamException:
> org.apache.wss4j.common.ext.WSSecurityException: A security error was
> encountered when verifying the message
>
> #*#org.apache.wss4j.stax.impl.WSSecurityStreamReader!next!WSSecurityStreamReader.java!56#*#org.apache.cxf.binding.soap.interceptor.StartBodyInterceptor!handleMessage!StartBodyInterceptor.java!60#*#org.apache.cxf.binding.soap.interceptor.StartBodyInterceptor!handleMessage!StartBodyInterceptor.java!38#*#org.apache.cxf.phase.PhaseInterceptorChain!doIntercept!PhaseInterceptorChain.java!308#*#org.apache.cxf.transport.ChainInitiationObserver!onMessage!ChainInitiationObserver.java!121#*#org.apache.cxf.transport.http.AbstractHTTPDestination!invoke!AbstractHTTPDestination.java!267#*#org.apache.cxf.transport.servlet.ServletController!invokeDestination!ServletController.java!234#*#org.apache.cxf.transport.servlet.ServletController!invoke!ServletController.java!208#*#org.apache.cxf.transport.servlet.ServletController!invoke!ServletController.java!160#*#org.apache.cxf.transport.servlet.CXFNonSpringServlet!invoke!CXFNonSpringServlet.java!225#*#org.apache.cxf.transport.servlet.AbstractHTTPServlet!h
>
>  
> andleRequest!AbstractHTTPServlet.java!296#*#org.apache.cxf.transport.servlet.AbstractHTTPServlet!doPost!AbstractHTTPServlet.java!215#*#javax.servlet.http.HttpServlet!service!HttpServlet.java!652#*#org.apache.cxf.transport.servlet.AbstractHTTPServlet!service!AbstractHTTPServlet.java!271#*#org.apache.catalina.core.ApplicationFilterChain!internalDoFilter!ApplicationFilterChain.java!231#*#org.apache.catalina.core.ApplicationFilterChain!doFilter!ApplicationFilterChain.java!166#*#org.apache.tomcat.websocket.server.WsFilter!doFilter!WsFilter.java!53#*#org.apache.catalina.core.ApplicationFilterChain!internalDoFilter!ApplicationFilterChain.java!193#*#org.apache.catalina.core.ApplicationFilterChain!doFilter!ApplicationFilterChain.java!166#*#org.springframework.web.filter.RequestContextFilter!doFilterInternal!RequestContextFilter.java!100#*#org.springframework.web.filter.OncePerRequestFilter!doFilter!OncePerRequestFilter.java!119#*#org.apache.catalina.core.ApplicationFilterChain!internalDoFilt
>
>  
> er!ApplicationFilterChain.java!193#*#org.apache.catalina.core.ApplicationFilterChain!doFilter!ApplicationFilterChain.java!166#*#org.springframework.web.filter.FormContentFilter!doFilterInternal!FormContentFilter.java!93#*#org.springframework.web.filter.OncePerRequestFilter!doFilter!OncePerRequestFilter.java!119#*#org.apache.catalina.core.ApplicationFilterChain!internalDoFilter!ApplicationFilterChain.java!193#*#org.apache.catalina.core.ApplicationFilterChain!doFilter!ApplicationFilterChain.java!166#*#org.springframework.web.filter.CharacterEncodingFilter!doFilterInternal!CharacterEncodingFilter.java!201#*#org.springframework.web.filter.OncePerRequestFilter!doFilter!OncePerRequestFilter.java!119#*#org.apache.catalina.core.ApplicationFilterChain!internalDoFilter!ApplicationFilterChain.java!193#*#org.apache.catalina.core.ApplicationFilterChain!doFilter!ApplicationFilterChain.java!166#*#org.apache.catalina.core.StandardWrapperValve!invoke!StandardWrapperValve.java!202#*#org.apache.catali
>
>  
> na.core.StandardContextValve!invoke!StandardContextValve.java!97#*#org.apache.catalina.authenticator.AuthenticatorBase!invoke!AuthenticatorBase.java!541#*#org.apache.catalina.core.StandardHostValve!invoke!StandardHostValve.java!143#*#org.apache.catalina.valves.ErrorReportValve!invoke!ErrorReportValve.java!92#*#org.apache.catalina.core.StandardEngineValve!invoke!StandardEngineValve.java!78#*#org.apache.catalina.connector.CoyoteAdapter!service!CoyoteAdapter.java!343#*#org.apache.coyote.http11.Http11Processor!service!Http11Processor.java!374#*#org.apache.coyote.AbstractProcessorLight!process!AbstractProcessorLight.java!65#*#org.apache.coyote.AbstractProtocol$ConnectionHandler!process!AbstractProtocol.java!868#*#
> org.apache.tomcat.util.net
> .NioEndpoint$SocketProcessor!doRun!NioEndpoint.java!1590#*#
> org.apache.tomcat.util.net
> .SocketProcessorBase!run!SocketProcessorBase.java!49#*#java.util.concurrent.ThreadPoolExecutor!runWorker!ThreadPoolExecutor.java!1128#*#java.util.concurrent.ThreadPoolE
>  
> xecutor$Worker!run!ThreadPoolExecutor.java!628#*#org.apache.tomcat.util.threads.TaskThread$WrappingRunnable!run!TaskThread.java!61#*#java.lang.Thread!run!Thread.java!834#*#Caused
> by: org.apache.wss4j.common.ext.WSSecurityException : A security error was
> encountered when verifying the
> message#*#org.apache.wss4j.stax.impl.WSSecurityStreamReader!next!WSSecurityStreamReader.java!56#*#org.apache.cxf.binding.soap.interceptor.StartBodyInterceptor!handleMessage!StartBodyInterceptor.java!60#*#org.apache.cxf.binding.soap.interceptor.StartBodyInterceptor!handleMessage!StartBodyInterceptor.java!38#*#org.apache.cxf.phase.PhaseInterceptorChain!doIntercept!PhaseInterceptorChain.java!308#*#org.apache.cxf.transport.ChainInitiationObserver!onMessage!ChainInitiationObserver.java!121#*#org.apache.cxf.transport.http.AbstractHTTPDestination!invoke!AbstractHTTPDestination.java!267#*#org.apache.cxf.transport.servlet.ServletController!invokeDestination!ServletController.java!234#*#org.apache.cxf.transport.s
>
>  
> ervlet.ServletController!invoke!ServletController.java!208#*#org.apache.cxf.transport.servlet.ServletController!invoke!ServletController.java!160#*#org.apache.cxf.transport.servlet.CXFNonSpringServlet!invoke!CXFNonSpringServlet.java!225#*#org.apache.cxf.transport.servlet.AbstractHTTPServlet!handleRequest!AbstractHTTPServlet.java!296#*#org.apache.cxf.transport.servlet.AbstractHTTPServlet!doPost!AbstractHTTPServlet.java!215#*#javax.servlet.http.HttpServlet!service!HttpServlet.java!652#*#org.apache.cxf.transport.servlet.AbstractHTTPServlet!service!AbstractHTTPServlet.java!271#*#org.apache.catalina.core.ApplicationFilterChain!internalDoFilter!ApplicationFilterChain.java!231#*#org.apache.catalina.core.ApplicationFilterChain!doFilter!ApplicationFilterChain.java!166#*#org.apache.tomcat.websocket.server.WsFilter!doFilter!WsFilter.java!53#*#org.apache.catalina.core.ApplicationFilterChain!internalDoFilter!ApplicationFilterChain.java!193#*#org.apache.catalina.core.ApplicationFilterChain!doFilt
>
>  
> er!ApplicationFilterChain.java!166#*#org.springframework.web.filter.RequestContextFilter!doFilterInternal!RequestContextFilter.java!100#*#org.springframework.web.filter.OncePerRequestFilter!doFilter!OncePerRequestFilter.java!119#*#org.apache.catalina.core.ApplicationFilterChain!internalDoFilter!ApplicationFilterChain.java!193#*#org.apache.catalina.core.ApplicationFilterChain!doFilter!ApplicationFilterChain.java!166#*#org.springframework.web.filter.FormContentFilter!doFilterInternal!FormContentFilter.java!93#*#org.springframework.web.filter.OncePerRequestFilter!doFilter!OncePerRequestFilter.java!119#*#org.apache.catalina.core.ApplicationFilterChain!internalDoFilter!ApplicationFilterChain.java!193#*#org.apache.catalina.core.ApplicationFilterChain!doFilter!ApplicationFilterChain.java!166#*#org.springframework.web.filter.CharacterEncodingFilter!doFilterInternal!CharacterEncodingFilter.java!201#*#org.springframework.web.filter.OncePerRequestFilter!doFilter!OncePerRequestFilter.java!119#*
>
>  
> #org.apache.catalina.core.ApplicationFilterChain!internalDoFilter!ApplicationFilterChain.java!193#*#org.apache.catalina.core.ApplicationFilterChain!doFilter!ApplicationFilterChain.java!166#*#org.apache.catalina.core.StandardWrapperValve!invoke!StandardWrapperValve.java!202#*#org.apache.catalina.core.StandardContextValve!invoke!StandardContextValve.java!97#*#org.apache.catalina.authenticator.AuthenticatorBase!invoke!AuthenticatorBase.java!541#*#org.apache.catalina.core.StandardHostValve!invoke!StandardHostValve.java!143#*#org.apache.catalina.valves.ErrorReportValve!invoke!ErrorReportValve.java!92#*#org.apache.catalina.core.StandardEngineValve!invoke!StandardEngineValve.java!78#*#org.apache.catalina.connector.CoyoteAdapter!service!CoyoteAdapter.java!343#*#org.apache.coyote.http11.Http11Processor!service!Http11Processor.java!374#*#org.apache.coyote.AbstractProcessorLight!process!AbstractProcessorLight.java!65#*#org.apache.coyote.AbstractProtocol$ConnectionHandler!process!AbstractProtoc
>
>  
> ol.java!868#*#org.apache.tomcat.util.net.NioEndpoint$SocketProcessor!doRun!NioEndpoint.java!1590#*#org.
> apache.tomcat.util.net
> .SocketProcessorBase!run!SocketProcessorBase.java!49#*#java.util.concurrent.ThreadPoolExecutor!runWorker!ThreadPoolExecutor.java!1128#*#java.util.concurrent.ThreadPoolExecutor$Worker!run!ThreadPoolExecutor.java!628#*#org.apache.tomcat.util.threads.TaskThread$WrappingRunnable!run!TaskThread.java!61#*#java.lang.Thread!run!Thread.java!834#*#</stackTrace>
>          </soap:Detail>
>       </soap:Fault>
>    </soap:Body>
> </soap:Envelope>
>
>
> From what i can see it is this part of code:
>
> public void handleMessage(SoapMessage message) throws Fault {
>         if (this.isGET(message)) {
>             LOG.fine("StartBodyInterceptor skipped in HTTP GET method");
>         } else {
>             XMLStreamReader xmlReader =
> (XMLStreamReader)message.getContent(XMLStreamReader.class);
>
>             try {
>                 for(int i = xmlReader.next(); i == 13 || i == 10; i =
> xmlReader.next()) {
>                 }
>
>             } catch (XMLStreamException var4) {
>                 throw new SoapFault(new Message("XML_STREAM_EXC", LOG, new
> Object[]{var4.getMessage()}), var4, message.getVersion().getSender());
>             }
>         }
>     }
>
>
>   @Bean
>    public WSS4JStaxInInterceptor wss4JStaxInInterceptor() throws Exception
> {
>        Properties properties;
>        Crypto crypto = CryptoFactory.getInstance(wss4jInProperties());
>
>        WSSSecurityProperties inProperties = new WSSSecurityProperties();
>        inProperties.addAction(WSSConstants.TIMESTAMP);
>        inProperties.addAction(WSSConstants.SIGNATURE);
>        inProperties.setSoap12(true);
>        inProperties.addAction(WSSConstants.ENCRYPTION);
>
>        inProperties.setEncryptionUser("xxx");
>
>  
> inProperties.loadSignatureVerificationKeystore(this.getClass().getClassLoader().getResource("xxx_keystore.jks"),"xxx_keystore_passwordo".toCharArray());
>        inProperties.setSignatureUser("softnet");
>
>  
> inProperties.loadDecryptionKeystore(this.getClass().getClassLoader().getResource("xxx_keystore.jks"),"xxxx".toCharArray());
>
>        inProperties.setCallbackHandler(new
> ClientKeystorePasswordENCallback());
>
>        WSS4JStaxInInterceptor wss4JStaxInInterceptor = new
> WSS4JStaxInInterceptor(inProperties);
>
>        return  wss4JStaxInInterceptor;
>
>    }
>
>
>
> On 2020/11/02 07:28:43, Colm O hEigeartaigh <[email protected]> wrote:
> > If it's still a problem please consider creating a test-case that we can
> > use to reproduce the issue.
> >
> > Colm.
> >
> > On Wed, Oct 28, 2020 at 2:21 PM Miha Zoubek <[email protected]> wrote:
> >
> > > Hello
> > >
> > > so my error is this:
> > >
> > > HelloImplService 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?)
> > >
> > > Which is I guess due to my configuration of cfx part for deceyption.
> > > Signature, Timestamp are working perfectly.
> > >
> > >  public WSS4JStaxInInterceptor wss4JStaxInInterceptor() throws
> Exception {
> > >
> > >        WSSSecurityProperties inProperties = new
> WSSSecurityProperties();
> > >        //inProperties.addAction(WSSConstants.USERNAMETOKEN);
> > >        inProperties.addAction(WSSConstants.TIMESTAMP);
> > >        inProperties.addAction(WSSConstants.SIGNATURE);
> > >        inProperties.addAction(WSSConstants.ENCRYPTION);
> > >        inProperties.setEncryptionUser("xxx");
> > >
> > >
> inProperties.loadDecryptionKeystore(this.getClass().getClassLoader().getResource("\"C:\\\\Users\\\\miha_\\\\OneDrive\\\\Dokumenti\\\\Job\\\\Lj\\\\Spring\\\\demo\\\\src\\\\main\\\\resources\\\\xxxx.jks"),"softnet_keystore_passwordo".toCharArray());;
> > >        inProperties.setMustUnderstand(false);
> > >
> > >
> inProperties.loadSignatureKeyStore(this.getClass().getClassLoader().getResource("\"C:\\\\Users\\\\miha_\\\\OneDrive\\\\Dokumenti\\\\Job\\\\Lj\\\\Spring\\\\demo\\\\src\\\\main\\\\resources\\\\xxxx.jks"),"softnet_keystore_passwordo".toCharArray());
> > >        inProperties.setSignatureUser("cbd");
> > >
> > >
> //inProperties.setSignatureVerificationCryptoProperties(wss4jInProperties());
> > >
> > >
> > >
> //inProperties.setUsernameTokenPasswordType(WSSConstants.UsernameTokenPasswordType.PASSWORD_DIGEST);
> > >        inProperties.setCallbackHandler(new
> > > ClientKeystorePasswordCallback());
> > >
> > >        WSS4JStaxInInterceptor wss4JStaxInInterceptor = new
> > > WSS4JStaxInInterceptor(inProperties);
> > >
> > >        return  wss4JStaxInInterceptor;
> > >
> > >    }
> > >
> > > I guess i will need also to provide secret for private key which is in
> jks
> > > (i have now only provided password to access jks store).
> > >
> > > thank you
> > > miha
> > >
> >
>

Reply via email to