Yes, you're right, the Renew operation was not configured. I did that and now the token seems to get renewed. Unfortunately I get another exception now, and I don't know if that is related to the previous problem.
I configured the token lifetime to 20 seconds.
After 5 minutes I get the following exception in the client. There is no exception in the sts log: Jan 28, 2015 8:51:06 AM org.apache.cxf.ws.addressing.soap.MAPCodec restoreExchange Warnung: Response message does not contain WS-Addressing properties. Not correlating response. Jan 28, 2015 8:51:06 AM org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor handleMessage
Warnung: Request does not contain Security header, but it's a fault.
Jan 28, 2015 8:51:06 AM org.apache.cxf.ws.addressing.ContextUtils retrieveMAPs Warnung: WS-Addressing - failed to retrieve Message Addressing Properties from context javax.xml.ws.soap.SOAPFaultException: General security error (SAML token security failure) at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:158)
    at com.sun.proxy.$Proxy42.submitInvoice(Unknown Source)
at ch.curabill.msp.service.invoicedelivery.client.InvoiceDeliveryClient.submitDocument(InvoiceDeliveryClient.java:216) at ch.curabill.msp.service.invoicedelivery.client.InvoiceDeliveryClient.main(InvoiceDeliveryClient.java:138) Caused by: org.apache.cxf.binding.soap.SoapFault: General security error (SAML token security failure) at org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.unmarshalFault(Soap11FaultInInterceptor.java:84) at org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.handleMessage(Soap11FaultInInterceptor.java:51) at org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.handleMessage(Soap11FaultInInterceptor.java:40) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:272) at org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:113) at org.apache.cxf.binding.soap.interceptor.CheckFaultInterceptor.handleMessage(CheckFaultInterceptor.java:69) at org.apache.cxf.binding.soap.interceptor.CheckFaultInterceptor.handleMessage(CheckFaultInterceptor.java:34) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:272)
    at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:849)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1626) at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1515) at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1318) at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56) at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:632) at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:272)
    at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:572)
    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:481)
    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:382)
    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:335)
    at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96)
at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:136)
    ... 3 more


thanks,
Laci

On 27.01.2015 17:30, Colm O hEigeartaigh wrote:
Ok well the error here is that the STS you are using does not support
Renew, or it is not configured. The CXF client will then fall back to
getting a new token via "issue".

Colm.

On Tue, Jan 27, 2015 at 4:09 PM, Laci Gaspar <[email protected]> wrote:

I rebuilt the sts with cxf 2.7.14 and I get this: (I am sending a
directory full of files to a server)

Every time the token expires there is an Error in the log, but no
exception is thrown:
Jan 27, 2015 5:03:23 PM org.apache.cxf.ws.security.policy.interceptors.
IssuedTokenInterceptorProvider$IssuedTokenOutInterceptor renewToken
Warnung: Error renewing a token
org.apache.cxf.binding.soap.SoapFault: Implementation for this operation
not found.
     at org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.
unmarshalFault(Soap11FaultInInterceptor.java:84)
     at org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.
handleMessage(Soap11FaultInInterceptor.java:51)
     at org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.
handleMessage(Soap11FaultInInterceptor.java:40)
     at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(
PhaseInterceptorChain.java:272)
     at org.apache.cxf.interceptor.AbstractFaultChainInitiatorObs
erver.onMessage(AbstractFaultChainInitiatorObserver.java:113)
     at org.apache.cxf.binding.soap.interceptor.CheckFaultInterceptor.
handleMessage(CheckFaultInterceptor.java:69)
     at org.apache.cxf.binding.soap.interceptor.CheckFaultInterceptor.
handleMessage(CheckFaultInterceptor.java:34)
     at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(
PhaseInterceptorChain.java:272)
     at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:849)
     at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.
handleResponseInternal(HTTPConduit.java:1626)
     at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.
handleResponse(HTTPConduit.java:1515)
     at org.apache.cxf.transport.http.HTTPConduit$
WrappedOutputStream.close(HTTPConduit.java:1318)
     at org.apache.cxf.transport.AbstractConduit.close(
AbstractConduit.java:56)
     at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.
java:632)
     at org.apache.cxf.interceptor.MessageSenderInterceptor$
MessageSenderEndingInterceptor.handleMessage(
MessageSenderInterceptor.java:62)
     at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(
PhaseInterceptorChain.java:272)
     at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:572)
     at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:481)
     at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:382)
     at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:335)
     at org.apache.cxf.ws.security.trust.AbstractSTSClient.renew(
AbstractSTSClient.java:1066)
     at org.apache.cxf.ws.security.trust.STSClient.
renewSecurityToken(STSClient.java:82)
     at org.apache.cxf.ws.security.policy.interceptors.
IssuedTokenInterceptorProvider$IssuedTokenOutInterceptor.renewToken(
IssuedTokenInterceptorProvider.java:439)
     at org.apache.cxf.ws.security.policy.interceptors.
IssuedTokenInterceptorProvider$IssuedTokenOutInterceptor.handleMessage(
IssuedTokenInterceptorProvider.java:156)
     at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(
PhaseInterceptorChain.java:272)
     at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:572)
     at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:481)
     at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:382)
     at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:335)
     at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96)
     at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(
JaxWsClientProxy.java:136)
     at com.sun.proxy.$Proxy42.submitInvoice(Unknown Source)
     at ch.curabill.msp.service.invoicedelivery.client.
InvoiceDeliveryClient.submitDocument(InvoiceDeliveryClient.java:216)
     at ch.curabill.msp.service.invoicedelivery.client.
InvoiceDeliveryClient.main(InvoiceDeliveryClient.java:138)



but then before all files are sent I get an exception:
Jan 27, 2015 5:04:23 PM org.apache.cxf.ws.addressing.soap.MAPCodec
restoreExchange
Warnung: Response message does not contain WS-Addressing properties.  Not
correlating response.
Jan 27, 2015 5:04:23 PM org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor
handleMessage
Warnung: Request does not contain Security header, but it's a fault.
Jan 27, 2015 5:04:23 PM org.apache.cxf.ws.addressing.ContextUtils
retrieveMAPs
Warnung: WS-Addressing - failed to retrieve Message Addressing Properties
from context
javax.xml.ws.soap.SOAPFaultException: General security error (SAML token
security failure)
     at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(
JaxWsClientProxy.java:158)
     at com.sun.proxy.$Proxy42.submitInvoice(Unknown Source)
     at ch.curabill.msp.service.invoicedelivery.client.
InvoiceDeliveryClient.submitDocument(InvoiceDeliveryClient.java:216)
     at ch.curabill.msp.service.invoicedelivery.client.
InvoiceDeliveryClient.main(InvoiceDeliveryClient.java:138)
Caused by: org.apache.cxf.binding.soap.SoapFault: General security error
(SAML token security failure)
     at org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.
unmarshalFault(Soap11FaultInInterceptor.java:84)
     at org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.
handleMessage(Soap11FaultInInterceptor.java:51)
     at org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.
handleMessage(Soap11FaultInInterceptor.java:40)
     at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(
PhaseInterceptorChain.java:272)
     at org.apache.cxf.interceptor.AbstractFaultChainInitiatorObs
erver.onMessage(AbstractFaultChainInitiatorObserver.java:113)
     at org.apache.cxf.binding.soap.interceptor.CheckFaultInterceptor.
handleMessage(CheckFaultInterceptor.java:69)
     at org.apache.cxf.binding.soap.interceptor.CheckFaultInterceptor.
handleMessage(CheckFaultInterceptor.java:34)
     at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(
PhaseInterceptorChain.java:272)
     at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:849)
     at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.
handleResponseInternal(HTTPConduit.java:1626)
     at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.
handleResponse(HTTPConduit.java:1515)
     at org.apache.cxf.transport.http.HTTPConduit$
WrappedOutputStream.close(HTTPConduit.java:1318)
     at org.apache.cxf.transport.AbstractConduit.close(
AbstractConduit.java:56)
     at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.
java:632)
     at org.apache.cxf.interceptor.MessageSenderInterceptor$
MessageSenderEndingInterceptor.handleMessage(
MessageSenderInterceptor.java:62)
     at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(
PhaseInterceptorChain.java:272)
     at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:572)
     at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:481)
     at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:382)
     at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:335)
     at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96)
     at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(
JaxWsClientProxy.java:136)
     ... 3 more


Any idea?

Thanks
Laci

On 27.01.2015 16:45, Colm O hEigeartaigh wrote:

Token renewing is, or should be, supported. However, maybe there is some
other issue that is causing the problem.

Colm.

On Tue, Jan 27, 2015 at 3:37 PM, Laci Gaspar <[email protected]> wrote:

  Thanks for your quick answer, Colm.
Are you saying, that with a more recent version of CXF the token should
be
renewed automatically?

Thanks,
Laci

On 27.01.2015 16:34, Colm O hEigeartaigh wrote:

  Could you try with a more recent version of CXF? There have been a bunch
of
issues fixed in relation to renewing tokens since the 2.7.7 release.

Colm.

On Tue, Jan 27, 2015 at 3:26 PM, Laci Gaspar <[email protected]> wrote:

   Hi

We are using an sts (cxf 2.7.7) to issue saml 2 tokens for our
webservices.

Our WS Clients are instantiated by spring. Something like this:

           SpringBusFactory bf = new SpringBusFactory();
           URL busFile = new ClassPathResource("wssec-
client.xml").getURL();

           Bus bus = bf.createBus(busFile.toString());
           SpringBusFactory.setDefaultBus(bus);
           SpringBusFactory.setThreadDefaultBus(bus);

           Service service = Service.create(wsdlURL, SERVICE_NAME);
           while (true) {
               Greeter port = service.getPort(PORT_NAME, Greeter.class);
           }


After the token expires I receive an exception calling the WS. Can
anybody
please help me with how I renew the token after it expires?

Any help is most appreciated.

Thanks,
Laci






Reply via email to