You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by Freeman Fang <fr...@gmail.com> on 2008/09/05 10:50:25 UTC
Re: WS-Client throws Exception in WSS4JInInterceptor
One quick question, did you also add WSS4JOutInterceptor and
SAAJOutInterceptor for your server side?
Regards
Freeman
Josef.Eisele@bgs-ag.de wrote:
> Hi,
>
> we use UsernameToken and Signature in our WS-Security Secenario.
>
> For the Client we add SAAJOutInterceptor (because of Apache CXF 2.0.x) and
> WSS4JOutInterceptor as additional OutInterceptors. ()
> For the Server we add SAAJInInterceptor (because of Apache CXF 2.0.x),
> WSS4JInInterceptor and ValidateUserTokenInterceptor(own Implementation) as
> InInterceptors.
>
> The client puts all necessary information into the request, as far as I
> understand the data in my TCP/IP Monitor. The server processes the Request
> and I see no errors in WSSecurityEngine, WSS4jInInterceptor etc. The
> server sends a HTTP/1.1 200 OK back to the client. And now the client
> throws an error:
>
> INFO: Interceptor has thrown exception, unwinding now
> org.apache.cxf.binding.soap.SoapFault: Request does not contain required
> Security header.
> at
> org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.handleMessage(WSS4JInInterceptor.java:150)
> at
> org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.handleMessage(WSS4JInInterceptor.java:60)
> at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
> at
> org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:395)
> at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1932)
> at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1790)
> at
> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
> at
> org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:576)
> at
> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
> at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
> at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
> at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
> at
> org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
> at
> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135)
>
> I checked the code of WSS4JInInterceptor and I see wsResult == null,
> because
> wsResult =
> secEngine.processSecurityHeader(doc.getSOAPPart(), actor, cbHandler,
> reqData
> .getSigCrypto(), reqData.getDecCrypto());
> is null as well.
>
> I don't understand why the client calls this InInterceptor ???
>
> -Josef
> BGS Beratungsgesellschaft
> Software Systemplanung AG Niederlassung Rhein/Main
> Robert-Koch-Straße 41
> 55129 Mainz
> Fon: +49 (0) 6131 / 914-0
> Fax: +49 (0) 6131 / 914-400
> www.bgs-ag.de Geschäftssitz Mainz
> Registergericht
> Amtsgericht Mainz
> HRB 62 50
> Aufsichtsratsvorsitzender
> Klaus Hellwig
> Vorstand
> Hanspeter Gau
> Hermann Kiefer
> Nils Manegold
>
>
>
Antwort: Re: Antwort: Re: Antwort: Re: Antwort: Re: Antwort: Re: Antwort: Re:
WS-Client throws Exception in WSS4JInInterceptor
Posted by Jo...@bgs-ag.de.
Hi Dan,
yes sure you are right. We have probably tested everything to give it a
try.
Do you know why the WSS4JInInterceptor is called? I configured only
OutInterceptors for the client.
-Josef
Daniel Kulp <dk...@apache.org>
11.09.2008 20:55
Bitte antworten an
users@cxf.apache.org
An
users@cxf.apache.org
Kopie
Josef.Eisele@bgs-ag.de
Thema
Re: Antwort: Re: Antwort: Re: Antwort: Re: Antwort: Re: Antwort: Re:
WS-Client throws Exception in WSS4JInInterceptor
The WSS4JOutInterceptor is pretty much useless without it being setup via
spring config. It requires the actions to be set, any keys, password
callbacks, etc.....
Dan
On Monday 08 September 2008 9:34:28 am Josef.Eisele@bgs-ag.de wrote:
> Hi Freeman,
>
> if I add the OutInterceptors directy:
>
> @OutInterceptors(interceptors={
> "org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor",
> "org.apache.cxf.binding.soap.saaj.SAAJOutInterceptor" })
> public interface MyWSIF {
>
> I get :
>
> 8.09.2008 14:57:39 org.apache.cxf.phase.PhaseInterceptorChain
doIntercept
> INFO: Interceptor has thrown exception, unwinding now
> org.apache.cxf.binding.soap.SoapFault: NO_ACTION
> at
>
org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor.handleMessage(WSS4JOut
>Interceptor.java:91) at
>
org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor.handleMessage(WSS4JOut
>Interceptor.java:42) at
>
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChai
>n.java:207)
>
>
>
> -Josef
>
>
>
>
> Freeman Fang <fr...@gmail.com>
> 08.09.2008 14:30
> Bitte antworten an
> users@cxf.apache.org
>
>
> An
> users@cxf.apache.org
> Kopie
>
> Thema
> Re: Antwort: Re: Antwort: Re: Antwort: Re: Antwort: Re: WS-Client throws
> Exception in WSS4JInInterceptor
>
>
>
>
>
>
> Hi Josef,
>
> Could you just add WSS4jOutInterceptor and SAAJOutInterceptor into
> @OutInterceptors?
>
> Regards
> Freeman
>
> Josef.Eisele@bgs-ag.de wrote:
> > Hi Freeman,
> >
> > The @OutInterceptors and @InInterceptors are both on the interface:
> >
> > @Stateless
> > @WebService(name="MyWS", serviceName="MyWSService",
portName="ZielPort")
> > public class MyWSImpl implements MyWSIF {
> >
> > @WebService(name="MyWS", serviceName="MyWSService",
portName="ZielPort")
> > @InInterceptors(interceptors={ "myPath.WSSecurityInInterceptor" })
> > @OutInterceptors(interceptors={ "myPath.WSSecurityOutInterceptor" })
> > public interface MyWSIF {
> >
> > If I put the InInterceptor only on the implementation class, it is not
> > used. I haven't tested all possibilities with Out- and
In-Interceptors,
> > but I had better results on the interface.
> >
> > -Josef
> >
> >
> >
> >
> > Freeman Fang <fr...@gmail.com>
> > 08.09.2008 12:08
> > Bitte antworten an
> > users@cxf.apache.org
> >
> >
> > An
> > users@cxf.apache.org
> > Kopie
> >
> > Thema
> > Re: Antwort: Re: Antwort: Re: Antwort: Re: WS-Client throws Exception
in
> >
> > WSS4JInInterceptor
> >
> >
> >
> >
> >
> >
> > the error shows the messge.getContent(SOAPMessage.class) return null,
> > SAAJOutInterceptor should set this content, are you sure you add
> > SAAJOutInterceptor to the @OutInterceptors annotation of your
> > serviceImpl class?
> >
> > Regards
> > Freeman
> >
> > Josef.Eisele@bgs-ag.de wrote:
> >> Hi Freeman,
> >>
> >> thanx a lot for your fast response. I added the 2 interceptors using
>
> the
>
> >> annotation @OutInterceptors
> >>
> >> Now I get the error from the server:
> >> 05.09.2008 16:42:53
>
> org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor
>
> >> handleMessage
> >> WARNUNG: SAAJOutHandler must be enabled for WS-Security!
> >> 05.09.2008 16:42:53 org.apache.cxf.phase.PhaseInterceptorChain
> >
> > doIntercept
> >
> >> or in SOAP:
> >> <soap:Fault>
> >> <faultcode>soap:Server</faultcode>
> >> <faultstring>NO_SAAJ_DOC</faultstring>
> >> </soap:Fault>
> >>
> >> I created a new class WSSecurityOutInterceptor and in the
> >> handleMessage-Method I tried:
> >>
> >> 1) message.getInterceptorChain().add(new
> >> SAAJOutInterceptor());
> >> message.getInterceptorChain().add(new
> >> WSS4JOutInterceptor());
> >>
> >> or 2):
> >> Map<String,Object> props = new HashMap<String,Object>();
> >> props.put(WSHandlerConstants.ACTION,
> >> WSHandlerConstants.USERNAME_TOKEN
> >> + " " +
WSHandlerConstants.SIGNATURE);
> >> // TODO Anpassen, User aus DB
> >> props.put(WSHandlerConstants.USER, "user");
> >> props.put(WSHandlerConstants.PASSWORD_TYPE,
> >> WSConstants.PW_DIGEST);
> >> props.put(WSHandlerConstants.PW_CALLBACK_CLASS,
> >> ClientPasswordCallback.class.getName());
> >> props.put(WSHandlerConstants.SIG_PROP_FILE,
> >> "client_sign.properties");
> >>
> >> message.getInterceptorChain().add(new
> >> SAAJOutInterceptor());
> >> message.getInterceptorChain().add(new
> >> WSS4JOutInterceptor(props));
> >>
> >>
> >> How can I activate the SAAJOutHandler or what do I wrong?
> >>
> >> -Josef
> >>
> >>
> >>
> >>
> >>
> >> Freeman Fang <fr...@gmail.com>
> >> 05.09.2008 16:34
> >> Bitte antworten an
> >> users@cxf.apache.org
> >>
> >>
> >> An
> >> users@cxf.apache.org
> >> Kopie
> >>
> >> Thema
> >> Re: Antwort: Re: Antwort: Re: WS-Client throws Exception in
> >> WSS4JInInterceptor
> >>
> >>
> >>
> >>
> >>
> >>
> >> Hi Josef,
> >>
> >> Take a look at [1] about the interceptors in cxf.
> >>
> >> For your code, I believe add it into annotation @OutInterceptors
should
> >>
> >> be fine, also you can find several other ways from [1] to configure
it.
> >>
> >> But I'm not sure
> >> message.getInterceptorChain().add(new SAAJOutInterceptor());
> >> works for you, since the message here in your code is incoming
message
> >> but you need add interceptors to process the outgoing message.
> >>
> >> Regards
> >> Freeman
> >>
> >> [1]http://cwiki.apache.org/CXF20DOC/interceptors.html
> >>
> >> Josef.Eisele@bgs-ag.de wrote:
> >>> Hi Freeman,
> >>>
> >>> o.k. I will try that. Do I have to add the OutInterceptors in the
way:
> >>>
> >>> @OutInterceptors...
> >>>
> >>> or here:
> >>>
> >>> message.getInterceptorChain().add(new SAAJOutInterceptor());
> >>> ...
> >>> ??
> >>>
> >>> Is there any documentation on that?
> >>>
> >>> - Josef
> >>>
> >>>
> >>>
> >>>
> >>> Freeman Fang <fr...@gmail.com>
> >>> 05.09.2008 11:31
> >>> Bitte antworten an
> >>> users@cxf.apache.org
> >>>
> >>>
> >>> An
> >>> users@cxf.apache.org
> >>> Kopie
> >>>
> >>> Thema
> >>> Re: Antwort: Re: WS-Client throws Exception in WSS4JInInterceptor
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>> Hi Josef,
> >>> You should add WSS4JOutInterceptor and SAAJOutInterceptor for your
> >>> server side as well.
> >>>
> >>> Regards
> >>> Freeman
> >>>
> >>> Josef.Eisele@bgs-ag.de wrote:
> >>>> Hi Freeman,
> >>>>
> >>>> no as I understand we did not add OutInterceptors on the
ServerSide:
> >>>>
> >>>> We use EJB3.0 and the WSImpl class looks like:
> >>>>
> >>>> @Stateless
> >>>> @WebService(name="MyWS", serviceName="MyService",
>
> portName="ZielPort")
>
> >>>> @InInterceptors(interceptors={ myPath.WSSecurityInterceptor" })
> >>>> public class MyWSImpl implements MyWSInterface {
> >>>>
> >>>> The myPath.WSSecurityInterceptor class adds the Interceptors in the
> >>
> >> way:
> >>>> message.getInterceptorChain().add(new SAAJInInterceptor());
> >>>> ...
> >>>>
> >>>> Is this o.k.?
> >>>>
> >>>> -Josef
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>> Freeman Fang <fr...@gmail.com>
> >>>> 05.09.2008 11:01
> >>>> Bitte antworten an
> >>>> users@cxf.apache.org
> >>>>
> >>>>
> >>>> An
> >>>> users@cxf.apache.org
> >>>> Kopie
> >>>>
> >>>> Thema
> >>>> Re: WS-Client throws Exception in WSS4JInInterceptor
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>> One quick question, did you also add WSS4JOutInterceptor and
> >>>> SAAJOutInterceptor for your server side?
> >>>>
> >>>> Regards
> >>>> Freeman
> >>>>
> >>>> Josef.Eisele@bgs-ag.de wrote:
> >>>>> Hi,
> >>>>>
> >>>>> we use UsernameToken and Signature in our WS-Security Secenario.
> >>>>>
> >>>>> For the Client we add SAAJOutInterceptor (because of Apache CXF
> >
> > 2.0.x)
> >
> >>>> and
> >>>>
> >>>>> WSS4JOutInterceptor as additional OutInterceptors. ()
> >>>>> For the Server we add SAAJInInterceptor (because of Apache CXF
> >
> > 2.0.x),
> >
> >>>>> WSS4JInInterceptor and ValidateUserTokenInterceptor(own
> >>
> >> Implementation)
> >>
> >>>> as
> >>>>
> >>>>> InInterceptors.
> >>>>>
> >>>>> The client puts all necessary information into the request, as far
>
> as
>
> >> I
> >>
> >>>>> understand the data in my TCP/IP Monitor. The server processes the
> >>>>
> >>>> Request
> >>>>
> >>>>> and I see no errors in WSSecurityEngine, WSS4jInInterceptor etc.
The
> >>>>>
> >>>>> server sends a HTTP/1.1 200 OK back to the client. And now the
>
> client
>
> >>>>> throws an error:
> >>>>>
> >>>>> INFO: Interceptor has thrown exception, unwinding now
> >>>>> org.apache.cxf.binding.soap.SoapFault: Request does not contain
> >>>
> >>> required
> >>>
> >>>>> Security header.
> >>>>> at
>
>
org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.handleMessage(WSS4JInIn
>terceptor.java:150)
>
> >>>>> at
>
>
org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.handleMessage(WSS4JInIn
>terceptor.java:60)
>
> >>>>> at
>
>
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChai
>n.java:207)
>
> >>>>> at
> >>>>> org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:395)
> >>>>> at
>
>
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleRespons
>e(HTTPConduit.java:1932)
>
> >>>>> at
>
>
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPCon
>duit.java:1790)
>
> >>>>> at
> >>
> >>
org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
> >>
> >>>>> at
>
> org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:576)
>
> >>>>> at
>
>
org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInte
>rceptor.handleMessage(MessageSenderInterceptor.java:62)
>
> >>>>> at
>
>
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChai
>n.java:207)
>
> >>>>> at
> >>>>
> >>>> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
> >>>>
> >>>>> at
> >>>>
> >>>> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
> >>>>
> >>>>> at
> >>>>>
org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
> >>>>> at
> >>
> >>
org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135)
> >>
> >>>>> I checked the code of WSS4JInInterceptor and I see wsResult ==
null,
> >>>>>
> >>>>> because
> >>>>> wsResult =
> >>>>> secEngine.processSecurityHeader(doc.getSOAPPart(), actor,
cbHandler,
> >>>>>
> >>>>> reqData
> >>>>> .getSigCrypto(), reqData.getDecCrypto());
> >>>>> is null as well.
> >>>>>
> >>>>> I don't understand why the client calls this InInterceptor ???
> >>>>>
> >>>>> -Josef
> >>>>> BGS Beratungsgesellschaft
> >>>>> Software Systemplanung AG Niederlassung Rhein/Main
> >>>>> Robert-Koch-Straße 41
> >>>>> 55129 Mainz
> >>>>> Fon: +49 (0) 6131 / 914-0
> >>>>> Fax: +49 (0) 6131 / 914-400
> >>>>> www.bgs-ag.de Geschäftssitz Mainz
> >>>>> Registergericht
> >>>>> Amtsgericht Mainz
> >>>>> HRB 62 50
> >>>>> Aufsichtsratsvorsitzender
> >>>>> Klaus Hellwig
> >>>>> Vorstand
> >>>>> Hanspeter Gau
> >>>>> Hermann Kiefer
> >>>>> Nils Manegold
> >>>>
> >>>> BGS Beratungsgesellschaft
> >>>> Software Systemplanung AG
> >>>>
> >>>>
> >>>>
> >>>>
> >>>> Niederlassung Rhein/Main
> >>>> Robert-Koch-Straße 41
> >>>> 55129 Mainz
> >>>> Fon: +49 (0) 6131 / 914-0
> >>>> Fax: +49 (0) 6131 / 914-400
> >>>> www.bgs-ag.de
> >>>> Geschäftssitz Mainz
> >>>> Registergericht
> >>>> Amtsgericht Mainz
> >>>> HRB 62 50
> >>>>
> >>>> Aufsichtsratsvorsitzender
> >>>> Klaus Hellwig
> >>>> Vorstand
> >>>> Hanspeter Gau
> >>>> Hermann Kiefer
> >>>> Nils Manegold
> >>>
> >>> BGS Beratungsgesellschaft
> >>> Software Systemplanung AG Niederlassung Rhein/Main
> >>> Robert-Koch-Straße 41
> >>> 55129 Mainz
> >>> Fon: +49 (0) 6131 / 914-0
> >>> Fax: +49 (0) 6131 / 914-400
> >>> www.bgs-ag.de Geschäftssitz Mainz
> >>> Registergericht
> >>> Amtsgericht Mainz
> >>> HRB 62 50
> >>> Aufsichtsratsvorsitzender
> >>> Klaus Hellwig
> >>> Vorstand
> >>> Hanspeter Gau
> >>> Hermann Kiefer
> >>> Nils Manegold
> >>
> >> BGS Beratungsgesellschaft
> >> Software Systemplanung AG Niederlassung Rhein/Main
> >> Robert-Koch-Straße 41
> >> 55129 Mainz
> >> Fon: +49 (0) 6131 / 914-0
> >> Fax: +49 (0) 6131 / 914-400
> >> www.bgs-ag.de Geschäftssitz Mainz
> >> Registergericht
> >> Amtsgericht Mainz
> >> HRB 62 50
> >> Aufsichtsratsvorsitzender
> >> Klaus Hellwig
> >> Vorstand
> >> Hanspeter Gau
> >> Hermann Kiefer
> >> Nils Manegold
> >
> > BGS Beratungsgesellschaft
> > Software Systemplanung AG Niederlassung Rhein/Main
> > Robert-Koch-Straße 41
> > 55129 Mainz
> > Fon: +49 (0) 6131 / 914-0
> > Fax: +49 (0) 6131 / 914-400
> > www.bgs-ag.de Geschäftssitz Mainz
> > Registergericht
> > Amtsgericht Mainz
> > HRB 62 50
> > Aufsichtsratsvorsitzender
> > Klaus Hellwig
> > Vorstand
> > Hanspeter Gau
> > Hermann Kiefer
> > Nils Manegold
>
> BGS Beratungsgesellschaft
> Software Systemplanung AG Niederlassung Rhein/Main
> Robert-Koch-Straße 41
> 55129 Mainz
> Fon: +49 (0) 6131 / 914-0
> Fax: +49 (0) 6131 / 914-400
> www.bgs-ag.de Geschäftssitz Mainz
> Registergericht
> Amtsgericht Mainz
> HRB 62 50
> Aufsichtsratsvorsitzender
> Klaus Hellwig
> Vorstand
> Hanspeter Gau
> Hermann Kiefer
> Nils Manegold
--
Daniel Kulp
dkulp@apache.org
http://www.dankulp.com/blog
BGS Beratungsgesellschaft
Software Systemplanung AG Niederlassung Rhein/Main
Robert-Koch-Straße 41
55129 Mainz
Fon: +49 (0) 6131 / 914-0
Fax: +49 (0) 6131 / 914-400
www.bgs-ag.de Geschäftssitz Mainz
Registergericht
Amtsgericht Mainz
HRB 62 50
Aufsichtsratsvorsitzender
Klaus Hellwig
Vorstand
Hanspeter Gau
Hermann Kiefer
Nils Manegold
Re: Antwort: Re: Antwort: Re: Antwort: Re: Antwort: Re: Antwort: Re: WS-Client throws Exception in WSS4JInInterceptor
Posted by Daniel Kulp <dk...@apache.org>.
The WSS4JOutInterceptor is pretty much useless without it being setup via
spring config. It requires the actions to be set, any keys, password
callbacks, etc.....
Dan
On Monday 08 September 2008 9:34:28 am Josef.Eisele@bgs-ag.de wrote:
> Hi Freeman,
>
> if I add the OutInterceptors directy:
>
> @OutInterceptors(interceptors={
> "org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor",
> "org.apache.cxf.binding.soap.saaj.SAAJOutInterceptor" })
> public interface MyWSIF {
>
> I get :
>
> 8.09.2008 14:57:39 org.apache.cxf.phase.PhaseInterceptorChain doIntercept
> INFO: Interceptor has thrown exception, unwinding now
> org.apache.cxf.binding.soap.SoapFault: NO_ACTION
> at
> org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor.handleMessage(WSS4JOut
>Interceptor.java:91) at
> org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor.handleMessage(WSS4JOut
>Interceptor.java:42) at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChai
>n.java:207)
>
>
>
> -Josef
>
>
>
>
> Freeman Fang <fr...@gmail.com>
> 08.09.2008 14:30
> Bitte antworten an
> users@cxf.apache.org
>
>
> An
> users@cxf.apache.org
> Kopie
>
> Thema
> Re: Antwort: Re: Antwort: Re: Antwort: Re: Antwort: Re: WS-Client throws
> Exception in WSS4JInInterceptor
>
>
>
>
>
>
> Hi Josef,
>
> Could you just add WSS4jOutInterceptor and SAAJOutInterceptor into
> @OutInterceptors?
>
> Regards
> Freeman
>
> Josef.Eisele@bgs-ag.de wrote:
> > Hi Freeman,
> >
> > The @OutInterceptors and @InInterceptors are both on the interface:
> >
> > @Stateless
> > @WebService(name="MyWS", serviceName="MyWSService", portName="ZielPort")
> > public class MyWSImpl implements MyWSIF {
> >
> > @WebService(name="MyWS", serviceName="MyWSService", portName="ZielPort")
> > @InInterceptors(interceptors={ "myPath.WSSecurityInInterceptor" })
> > @OutInterceptors(interceptors={ "myPath.WSSecurityOutInterceptor" })
> > public interface MyWSIF {
> >
> > If I put the InInterceptor only on the implementation class, it is not
> > used. I haven't tested all possibilities with Out- and In-Interceptors,
> > but I had better results on the interface.
> >
> > -Josef
> >
> >
> >
> >
> > Freeman Fang <fr...@gmail.com>
> > 08.09.2008 12:08
> > Bitte antworten an
> > users@cxf.apache.org
> >
> >
> > An
> > users@cxf.apache.org
> > Kopie
> >
> > Thema
> > Re: Antwort: Re: Antwort: Re: Antwort: Re: WS-Client throws Exception in
> >
> > WSS4JInInterceptor
> >
> >
> >
> >
> >
> >
> > the error shows the messge.getContent(SOAPMessage.class) return null,
> > SAAJOutInterceptor should set this content, are you sure you add
> > SAAJOutInterceptor to the @OutInterceptors annotation of your
> > serviceImpl class?
> >
> > Regards
> > Freeman
> >
> > Josef.Eisele@bgs-ag.de wrote:
> >> Hi Freeman,
> >>
> >> thanx a lot for your fast response. I added the 2 interceptors using
>
> the
>
> >> annotation @OutInterceptors
> >>
> >> Now I get the error from the server:
> >> 05.09.2008 16:42:53
>
> org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor
>
> >> handleMessage
> >> WARNUNG: SAAJOutHandler must be enabled for WS-Security!
> >> 05.09.2008 16:42:53 org.apache.cxf.phase.PhaseInterceptorChain
> >
> > doIntercept
> >
> >> or in SOAP:
> >> <soap:Fault>
> >> <faultcode>soap:Server</faultcode>
> >> <faultstring>NO_SAAJ_DOC</faultstring>
> >> </soap:Fault>
> >>
> >> I created a new class WSSecurityOutInterceptor and in the
> >> handleMessage-Method I tried:
> >>
> >> 1) message.getInterceptorChain().add(new
> >> SAAJOutInterceptor());
> >> message.getInterceptorChain().add(new
> >> WSS4JOutInterceptor());
> >>
> >> or 2):
> >> Map<String,Object> props = new HashMap<String,Object>();
> >> props.put(WSHandlerConstants.ACTION,
> >> WSHandlerConstants.USERNAME_TOKEN
> >> + " " + WSHandlerConstants.SIGNATURE);
> >> // TODO Anpassen, User aus DB
> >> props.put(WSHandlerConstants.USER, "user");
> >> props.put(WSHandlerConstants.PASSWORD_TYPE,
> >> WSConstants.PW_DIGEST);
> >> props.put(WSHandlerConstants.PW_CALLBACK_CLASS,
> >> ClientPasswordCallback.class.getName());
> >> props.put(WSHandlerConstants.SIG_PROP_FILE,
> >> "client_sign.properties");
> >>
> >> message.getInterceptorChain().add(new
> >> SAAJOutInterceptor());
> >> message.getInterceptorChain().add(new
> >> WSS4JOutInterceptor(props));
> >>
> >>
> >> How can I activate the SAAJOutHandler or what do I wrong?
> >>
> >> -Josef
> >>
> >>
> >>
> >>
> >>
> >> Freeman Fang <fr...@gmail.com>
> >> 05.09.2008 16:34
> >> Bitte antworten an
> >> users@cxf.apache.org
> >>
> >>
> >> An
> >> users@cxf.apache.org
> >> Kopie
> >>
> >> Thema
> >> Re: Antwort: Re: Antwort: Re: WS-Client throws Exception in
> >> WSS4JInInterceptor
> >>
> >>
> >>
> >>
> >>
> >>
> >> Hi Josef,
> >>
> >> Take a look at [1] about the interceptors in cxf.
> >>
> >> For your code, I believe add it into annotation @OutInterceptors should
> >>
> >> be fine, also you can find several other ways from [1] to configure it.
> >>
> >> But I'm not sure
> >> message.getInterceptorChain().add(new SAAJOutInterceptor());
> >> works for you, since the message here in your code is incoming message
> >> but you need add interceptors to process the outgoing message.
> >>
> >> Regards
> >> Freeman
> >>
> >> [1]http://cwiki.apache.org/CXF20DOC/interceptors.html
> >>
> >> Josef.Eisele@bgs-ag.de wrote:
> >>> Hi Freeman,
> >>>
> >>> o.k. I will try that. Do I have to add the OutInterceptors in the way:
> >>>
> >>> @OutInterceptors...
> >>>
> >>> or here:
> >>>
> >>> message.getInterceptorChain().add(new SAAJOutInterceptor());
> >>> ...
> >>> ??
> >>>
> >>> Is there any documentation on that?
> >>>
> >>> - Josef
> >>>
> >>>
> >>>
> >>>
> >>> Freeman Fang <fr...@gmail.com>
> >>> 05.09.2008 11:31
> >>> Bitte antworten an
> >>> users@cxf.apache.org
> >>>
> >>>
> >>> An
> >>> users@cxf.apache.org
> >>> Kopie
> >>>
> >>> Thema
> >>> Re: Antwort: Re: WS-Client throws Exception in WSS4JInInterceptor
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>> Hi Josef,
> >>> You should add WSS4JOutInterceptor and SAAJOutInterceptor for your
> >>> server side as well.
> >>>
> >>> Regards
> >>> Freeman
> >>>
> >>> Josef.Eisele@bgs-ag.de wrote:
> >>>> Hi Freeman,
> >>>>
> >>>> no as I understand we did not add OutInterceptors on the ServerSide:
> >>>>
> >>>> We use EJB3.0 and the WSImpl class looks like:
> >>>>
> >>>> @Stateless
> >>>> @WebService(name="MyWS", serviceName="MyService",
>
> portName="ZielPort")
>
> >>>> @InInterceptors(interceptors={ myPath.WSSecurityInterceptor" })
> >>>> public class MyWSImpl implements MyWSInterface {
> >>>>
> >>>> The myPath.WSSecurityInterceptor class adds the Interceptors in the
> >>
> >> way:
> >>>> message.getInterceptorChain().add(new SAAJInInterceptor());
> >>>> ...
> >>>>
> >>>> Is this o.k.?
> >>>>
> >>>> -Josef
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>> Freeman Fang <fr...@gmail.com>
> >>>> 05.09.2008 11:01
> >>>> Bitte antworten an
> >>>> users@cxf.apache.org
> >>>>
> >>>>
> >>>> An
> >>>> users@cxf.apache.org
> >>>> Kopie
> >>>>
> >>>> Thema
> >>>> Re: WS-Client throws Exception in WSS4JInInterceptor
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>> One quick question, did you also add WSS4JOutInterceptor and
> >>>> SAAJOutInterceptor for your server side?
> >>>>
> >>>> Regards
> >>>> Freeman
> >>>>
> >>>> Josef.Eisele@bgs-ag.de wrote:
> >>>>> Hi,
> >>>>>
> >>>>> we use UsernameToken and Signature in our WS-Security Secenario.
> >>>>>
> >>>>> For the Client we add SAAJOutInterceptor (because of Apache CXF
> >
> > 2.0.x)
> >
> >>>> and
> >>>>
> >>>>> WSS4JOutInterceptor as additional OutInterceptors. ()
> >>>>> For the Server we add SAAJInInterceptor (because of Apache CXF
> >
> > 2.0.x),
> >
> >>>>> WSS4JInInterceptor and ValidateUserTokenInterceptor(own
> >>
> >> Implementation)
> >>
> >>>> as
> >>>>
> >>>>> InInterceptors.
> >>>>>
> >>>>> The client puts all necessary information into the request, as far
>
> as
>
> >> I
> >>
> >>>>> understand the data in my TCP/IP Monitor. The server processes the
> >>>>
> >>>> Request
> >>>>
> >>>>> and I see no errors in WSSecurityEngine, WSS4jInInterceptor etc. The
> >>>>>
> >>>>> server sends a HTTP/1.1 200 OK back to the client. And now the
>
> client
>
> >>>>> throws an error:
> >>>>>
> >>>>> INFO: Interceptor has thrown exception, unwinding now
> >>>>> org.apache.cxf.binding.soap.SoapFault: Request does not contain
> >>>
> >>> required
> >>>
> >>>>> Security header.
> >>>>> at
>
> org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.handleMessage(WSS4JInIn
>terceptor.java:150)
>
> >>>>> at
>
> org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.handleMessage(WSS4JInIn
>terceptor.java:60)
>
> >>>>> at
>
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChai
>n.java:207)
>
> >>>>> at
> >>>>> org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:395)
> >>>>> at
>
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleRespons
>e(HTTPConduit.java:1932)
>
> >>>>> at
>
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPCon
>duit.java:1790)
>
> >>>>> at
> >>
> >> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
> >>
> >>>>> at
>
> org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:576)
>
> >>>>> at
>
> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInte
>rceptor.handleMessage(MessageSenderInterceptor.java:62)
>
> >>>>> at
>
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChai
>n.java:207)
>
> >>>>> at
> >>>>
> >>>> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
> >>>>
> >>>>> at
> >>>>
> >>>> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
> >>>>
> >>>>> at
> >>>>> org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
> >>>>> at
> >>
> >> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135)
> >>
> >>>>> I checked the code of WSS4JInInterceptor and I see wsResult == null,
> >>>>>
> >>>>> because
> >>>>> wsResult =
> >>>>> secEngine.processSecurityHeader(doc.getSOAPPart(), actor, cbHandler,
> >>>>>
> >>>>> reqData
> >>>>> .getSigCrypto(), reqData.getDecCrypto());
> >>>>> is null as well.
> >>>>>
> >>>>> I don't understand why the client calls this InInterceptor ???
> >>>>>
> >>>>> -Josef
> >>>>> BGS Beratungsgesellschaft
> >>>>> Software Systemplanung AG Niederlassung Rhein/Main
> >>>>> Robert-Koch-Straße 41
> >>>>> 55129 Mainz
> >>>>> Fon: +49 (0) 6131 / 914-0
> >>>>> Fax: +49 (0) 6131 / 914-400
> >>>>> www.bgs-ag.de Geschäftssitz Mainz
> >>>>> Registergericht
> >>>>> Amtsgericht Mainz
> >>>>> HRB 62 50
> >>>>> Aufsichtsratsvorsitzender
> >>>>> Klaus Hellwig
> >>>>> Vorstand
> >>>>> Hanspeter Gau
> >>>>> Hermann Kiefer
> >>>>> Nils Manegold
> >>>>
> >>>> BGS Beratungsgesellschaft
> >>>> Software Systemplanung AG
> >>>>
> >>>>
> >>>>
> >>>>
> >>>> Niederlassung Rhein/Main
> >>>> Robert-Koch-Straße 41
> >>>> 55129 Mainz
> >>>> Fon: +49 (0) 6131 / 914-0
> >>>> Fax: +49 (0) 6131 / 914-400
> >>>> www.bgs-ag.de
> >>>> Geschäftssitz Mainz
> >>>> Registergericht
> >>>> Amtsgericht Mainz
> >>>> HRB 62 50
> >>>>
> >>>> Aufsichtsratsvorsitzender
> >>>> Klaus Hellwig
> >>>> Vorstand
> >>>> Hanspeter Gau
> >>>> Hermann Kiefer
> >>>> Nils Manegold
> >>>
> >>> BGS Beratungsgesellschaft
> >>> Software Systemplanung AG Niederlassung Rhein/Main
> >>> Robert-Koch-Straße 41
> >>> 55129 Mainz
> >>> Fon: +49 (0) 6131 / 914-0
> >>> Fax: +49 (0) 6131 / 914-400
> >>> www.bgs-ag.de Geschäftssitz Mainz
> >>> Registergericht
> >>> Amtsgericht Mainz
> >>> HRB 62 50
> >>> Aufsichtsratsvorsitzender
> >>> Klaus Hellwig
> >>> Vorstand
> >>> Hanspeter Gau
> >>> Hermann Kiefer
> >>> Nils Manegold
> >>
> >> BGS Beratungsgesellschaft
> >> Software Systemplanung AG Niederlassung Rhein/Main
> >> Robert-Koch-Straße 41
> >> 55129 Mainz
> >> Fon: +49 (0) 6131 / 914-0
> >> Fax: +49 (0) 6131 / 914-400
> >> www.bgs-ag.de Geschäftssitz Mainz
> >> Registergericht
> >> Amtsgericht Mainz
> >> HRB 62 50
> >> Aufsichtsratsvorsitzender
> >> Klaus Hellwig
> >> Vorstand
> >> Hanspeter Gau
> >> Hermann Kiefer
> >> Nils Manegold
> >
> > BGS Beratungsgesellschaft
> > Software Systemplanung AG Niederlassung Rhein/Main
> > Robert-Koch-Straße 41
> > 55129 Mainz
> > Fon: +49 (0) 6131 / 914-0
> > Fax: +49 (0) 6131 / 914-400
> > www.bgs-ag.de Geschäftssitz Mainz
> > Registergericht
> > Amtsgericht Mainz
> > HRB 62 50
> > Aufsichtsratsvorsitzender
> > Klaus Hellwig
> > Vorstand
> > Hanspeter Gau
> > Hermann Kiefer
> > Nils Manegold
>
> BGS Beratungsgesellschaft
> Software Systemplanung AG Niederlassung Rhein/Main
> Robert-Koch-Straße 41
> 55129 Mainz
> Fon: +49 (0) 6131 / 914-0
> Fax: +49 (0) 6131 / 914-400
> www.bgs-ag.de Geschäftssitz Mainz
> Registergericht
> Amtsgericht Mainz
> HRB 62 50
> Aufsichtsratsvorsitzender
> Klaus Hellwig
> Vorstand
> Hanspeter Gau
> Hermann Kiefer
> Nils Manegold
--
Daniel Kulp
dkulp@apache.org
http://www.dankulp.com/blog
Antwort: Re: Antwort: Re: Antwort: Re: Antwort: Re: Antwort: Re: WS-Client
throws Exception in WSS4JInInterceptor
Posted by Jo...@bgs-ag.de.
Hi Freeman,
if I add the OutInterceptors directy:
@OutInterceptors(interceptors={
"org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor",
"org.apache.cxf.binding.soap.saaj.SAAJOutInterceptor" })
public interface MyWSIF {
I get :
8.09.2008 14:57:39 org.apache.cxf.phase.PhaseInterceptorChain doIntercept
INFO: Interceptor has thrown exception, unwinding now
org.apache.cxf.binding.soap.SoapFault: NO_ACTION
at
org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor.handleMessage(WSS4JOutInterceptor.java:91)
at
org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor.handleMessage(WSS4JOutInterceptor.java:42)
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
-Josef
Freeman Fang <fr...@gmail.com>
08.09.2008 14:30
Bitte antworten an
users@cxf.apache.org
An
users@cxf.apache.org
Kopie
Thema
Re: Antwort: Re: Antwort: Re: Antwort: Re: Antwort: Re: WS-Client throws
Exception in WSS4JInInterceptor
Hi Josef,
Could you just add WSS4jOutInterceptor and SAAJOutInterceptor into
@OutInterceptors?
Regards
Freeman
Josef.Eisele@bgs-ag.de wrote:
> Hi Freeman,
>
> The @OutInterceptors and @InInterceptors are both on the interface:
>
> @Stateless
> @WebService(name="MyWS", serviceName="MyWSService", portName="ZielPort")
> public class MyWSImpl implements MyWSIF {
>
> @WebService(name="MyWS", serviceName="MyWSService", portName="ZielPort")
> @InInterceptors(interceptors={ "myPath.WSSecurityInInterceptor" })
> @OutInterceptors(interceptors={ "myPath.WSSecurityOutInterceptor" })
> public interface MyWSIF {
>
> If I put the InInterceptor only on the implementation class, it is not
> used. I haven't tested all possibilities with Out- and In-Interceptors,
> but I had better results on the interface.
>
> -Josef
>
>
>
>
> Freeman Fang <fr...@gmail.com>
> 08.09.2008 12:08
> Bitte antworten an
> users@cxf.apache.org
>
>
> An
> users@cxf.apache.org
> Kopie
>
> Thema
> Re: Antwort: Re: Antwort: Re: Antwort: Re: WS-Client throws Exception in
> WSS4JInInterceptor
>
>
>
>
>
>
> the error shows the messge.getContent(SOAPMessage.class) return null,
> SAAJOutInterceptor should set this content, are you sure you add
> SAAJOutInterceptor to the @OutInterceptors annotation of your
> serviceImpl class?
>
> Regards
> Freeman
>
> Josef.Eisele@bgs-ag.de wrote:
>
>> Hi Freeman,
>>
>> thanx a lot for your fast response. I added the 2 interceptors using
the
>>
>
>
>> annotation @OutInterceptors
>>
>> Now I get the error from the server:
>> 05.09.2008 16:42:53
org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor
>>
>
>
>> handleMessage
>> WARNUNG: SAAJOutHandler must be enabled for WS-Security!
>> 05.09.2008 16:42:53 org.apache.cxf.phase.PhaseInterceptorChain
>>
> doIntercept
>
>> or in SOAP:
>> <soap:Fault>
>> <faultcode>soap:Server</faultcode>
>> <faultstring>NO_SAAJ_DOC</faultstring>
>> </soap:Fault>
>>
>> I created a new class WSSecurityOutInterceptor and in the
>> handleMessage-Method I tried:
>>
>> 1) message.getInterceptorChain().add(new
>> SAAJOutInterceptor());
>> message.getInterceptorChain().add(new
>> WSS4JOutInterceptor());
>>
>> or 2):
>> Map<String,Object> props = new HashMap<String,Object>();
>> props.put(WSHandlerConstants.ACTION,
>> WSHandlerConstants.USERNAME_TOKEN
>> + " " + WSHandlerConstants.SIGNATURE);
>> // TODO Anpassen, User aus DB
>> props.put(WSHandlerConstants.USER, "user");
>> props.put(WSHandlerConstants.PASSWORD_TYPE,
>> WSConstants.PW_DIGEST);
>> props.put(WSHandlerConstants.PW_CALLBACK_CLASS,
>> ClientPasswordCallback.class.getName());
>> props.put(WSHandlerConstants.SIG_PROP_FILE,
>> "client_sign.properties");
>>
>> message.getInterceptorChain().add(new
>> SAAJOutInterceptor());
>> message.getInterceptorChain().add(new
>> WSS4JOutInterceptor(props));
>>
>>
>> How can I activate the SAAJOutHandler or what do I wrong?
>>
>> -Josef
>>
>>
>>
>>
>>
>> Freeman Fang <fr...@gmail.com>
>> 05.09.2008 16:34
>> Bitte antworten an
>> users@cxf.apache.org
>>
>>
>> An
>> users@cxf.apache.org
>> Kopie
>>
>> Thema
>> Re: Antwort: Re: Antwort: Re: WS-Client throws Exception in
>> WSS4JInInterceptor
>>
>>
>>
>>
>>
>>
>> Hi Josef,
>>
>> Take a look at [1] about the interceptors in cxf.
>>
>> For your code, I believe add it into annotation @OutInterceptors should
>> be fine, also you can find several other ways from [1] to configure it.
>>
>> But I'm not sure
>> message.getInterceptorChain().add(new SAAJOutInterceptor());
>> works for you, since the message here in your code is incoming message
>> but you need add interceptors to process the outgoing message.
>>
>> Regards
>> Freeman
>>
>> [1]http://cwiki.apache.org/CXF20DOC/interceptors.html
>>
>> Josef.Eisele@bgs-ag.de wrote:
>>
>>
>>> Hi Freeman,
>>>
>>> o.k. I will try that. Do I have to add the OutInterceptors in the way:
>>>
>>> @OutInterceptors...
>>>
>>> or here:
>>>
>>> message.getInterceptorChain().add(new SAAJOutInterceptor());
>>> ...
>>> ??
>>>
>>> Is there any documentation on that?
>>>
>>> - Josef
>>>
>>>
>>>
>>>
>>> Freeman Fang <fr...@gmail.com>
>>> 05.09.2008 11:31
>>> Bitte antworten an
>>> users@cxf.apache.org
>>>
>>>
>>> An
>>> users@cxf.apache.org
>>> Kopie
>>>
>>> Thema
>>> Re: Antwort: Re: WS-Client throws Exception in WSS4JInInterceptor
>>>
>>>
>>>
>>>
>>>
>>>
>>> Hi Josef,
>>> You should add WSS4JOutInterceptor and SAAJOutInterceptor for your
>>> server side as well.
>>>
>>> Regards
>>> Freeman
>>>
>>> Josef.Eisele@bgs-ag.de wrote:
>>>
>>>
>>>
>>>> Hi Freeman,
>>>>
>>>> no as I understand we did not add OutInterceptors on the ServerSide:
>>>>
>>>> We use EJB3.0 and the WSImpl class looks like:
>>>>
>>>> @Stateless
>>>> @WebService(name="MyWS", serviceName="MyService",
portName="ZielPort")
>>>> @InInterceptors(interceptors={ myPath.WSSecurityInterceptor" })
>>>> public class MyWSImpl implements MyWSInterface {
>>>>
>>>> The myPath.WSSecurityInterceptor class adds the Interceptors in the
>>>>
>>>>
>> way:
>>
>>
>>>> message.getInterceptorChain().add(new SAAJInInterceptor());
>>>> ...
>>>>
>>>> Is this o.k.?
>>>>
>>>> -Josef
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> Freeman Fang <fr...@gmail.com>
>>>> 05.09.2008 11:01
>>>> Bitte antworten an
>>>> users@cxf.apache.org
>>>>
>>>>
>>>> An
>>>> users@cxf.apache.org
>>>> Kopie
>>>>
>>>> Thema
>>>> Re: WS-Client throws Exception in WSS4JInInterceptor
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> One quick question, did you also add WSS4JOutInterceptor and
>>>> SAAJOutInterceptor for your server side?
>>>>
>>>> Regards
>>>> Freeman
>>>>
>>>> Josef.Eisele@bgs-ag.de wrote:
>>>>
>>>>
>>>>
>>>>
>>>>> Hi,
>>>>>
>>>>> we use UsernameToken and Signature in our WS-Security Secenario.
>>>>>
>>>>> For the Client we add SAAJOutInterceptor (because of Apache CXF
>>>>>
> 2.0.x)
>
>>
>>>> and
>>>>
>>>>
>>>>
>>>>
>>>>> WSS4JOutInterceptor as additional OutInterceptors. ()
>>>>> For the Server we add SAAJInInterceptor (because of Apache CXF
>>>>>
> 2.0.x),
>
>>
>>>>> WSS4JInInterceptor and ValidateUserTokenInterceptor(own
>>>>>
>>>>>
>> Implementation)
>>
>>
>>>> as
>>>>
>>>>
>>>>
>>>>
>>>>> InInterceptors.
>>>>>
>>>>> The client puts all necessary information into the request, as far
as
>>>>>
>
>
>> I
>>
>>
>>>>> understand the data in my TCP/IP Monitor. The server processes the
>>>>>
>>>>>
>>>>>
>>>>>
>>>> Request
>>>>
>>>>
>>>>
>>>>
>>>>> and I see no errors in WSSecurityEngine, WSS4jInInterceptor etc. The
>>>>> server sends a HTTP/1.1 200 OK back to the client. And now the
client
>>>>>
>
>
>>>>> throws an error:
>>>>>
>>>>> INFO: Interceptor has thrown exception, unwinding now
>>>>> org.apache.cxf.binding.soap.SoapFault: Request does not contain
>>>>>
>>>>>
>>>>>
>>> required
>>>
>>>
>>>
>>>>> Security header.
>>>>> at
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>
org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.handleMessage(WSS4JInInterceptor.java:150)
>
>>>>> at
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>
org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.handleMessage(WSS4JInInterceptor.java:60)
>
>>>>> at
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
>
>>>>> at
>>>>> org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:395)
>>>>> at
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1932)
>
>>>>> at
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1790)
>
>>>>> at
>>>>>
>>>>>
>>>>>
>> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
>>
>>
>>>>> at
>>>>>
org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:576)
>>>>> at
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>
org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
>
>>>>> at
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
>
>>>>> at
>>>>>
>>>>>
>>>>>
>>>>>
>>>> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
>>>>
>>>>
>>>>
>>>>
>>>>> at
>>>>>
>>>>>
>>>>>
>>>>>
>>>> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
>>>>
>>>>
>>>>
>>>>
>>>>> at
>>>>> org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
>>>>> at
>>>>>
>>>>>
>>>>>
>> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135)
>>
>>
>>>>> I checked the code of WSS4JInInterceptor and I see wsResult == null,
>>>>> because
>>>>> wsResult =
>>>>> secEngine.processSecurityHeader(doc.getSOAPPart(), actor, cbHandler,
>>>>> reqData
>>>>> .getSigCrypto(), reqData.getDecCrypto());
>>>>> is null as well.
>>>>>
>>>>> I don't understand why the client calls this InInterceptor ???
>>>>>
>>>>> -Josef
>>>>> BGS Beratungsgesellschaft
>>>>> Software Systemplanung AG Niederlassung Rhein/Main
>>>>> Robert-Koch-Straße 41
>>>>> 55129 Mainz
>>>>> Fon: +49 (0) 6131 / 914-0
>>>>> Fax: +49 (0) 6131 / 914-400
>>>>> www.bgs-ag.de Geschäftssitz Mainz
>>>>> Registergericht
>>>>> Amtsgericht Mainz
>>>>> HRB 62 50
>>>>> Aufsichtsratsvorsitzender
>>>>> Klaus Hellwig
>>>>> Vorstand
>>>>> Hanspeter Gau
>>>>> Hermann Kiefer
>>>>> Nils Manegold
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>> BGS Beratungsgesellschaft
>>>> Software Systemplanung AG
>>>>
>>>>
>>>>
>>>>
>>>> Niederlassung Rhein/Main
>>>> Robert-Koch-Straße 41
>>>> 55129 Mainz
>>>> Fon: +49 (0) 6131 / 914-0
>>>> Fax: +49 (0) 6131 / 914-400
>>>> www.bgs-ag.de
>>>> Geschäftssitz Mainz
>>>> Registergericht
>>>> Amtsgericht Mainz
>>>> HRB 62 50
>>>>
>>>> Aufsichtsratsvorsitzender
>>>> Klaus Hellwig
>>>> Vorstand
>>>> Hanspeter Gau
>>>> Hermann Kiefer
>>>> Nils Manegold
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>> BGS Beratungsgesellschaft
>>> Software Systemplanung AG Niederlassung Rhein/Main
>>> Robert-Koch-Straße 41
>>> 55129 Mainz
>>> Fon: +49 (0) 6131 / 914-0
>>> Fax: +49 (0) 6131 / 914-400
>>> www.bgs-ag.de Geschäftssitz Mainz
>>> Registergericht
>>> Amtsgericht Mainz
>>> HRB 62 50
>>> Aufsichtsratsvorsitzender
>>> Klaus Hellwig
>>> Vorstand
>>> Hanspeter Gau
>>> Hermann Kiefer
>>> Nils Manegold
>>>
>>>
>>>
>>>
>>>
>>
>> BGS Beratungsgesellschaft
>> Software Systemplanung AG Niederlassung Rhein/Main
>> Robert-Koch-Straße 41
>> 55129 Mainz
>> Fon: +49 (0) 6131 / 914-0
>> Fax: +49 (0) 6131 / 914-400
>> www.bgs-ag.de Geschäftssitz Mainz
>> Registergericht
>> Amtsgericht Mainz
>> HRB 62 50
>> Aufsichtsratsvorsitzender
>> Klaus Hellwig
>> Vorstand
>> Hanspeter Gau
>> Hermann Kiefer
>> Nils Manegold
>>
>>
>>
>
>
>
> BGS Beratungsgesellschaft
> Software Systemplanung AG Niederlassung Rhein/Main
> Robert-Koch-Straße 41
> 55129 Mainz
> Fon: +49 (0) 6131 / 914-0
> Fax: +49 (0) 6131 / 914-400
> www.bgs-ag.de Geschäftssitz Mainz
> Registergericht
> Amtsgericht Mainz
> HRB 62 50
> Aufsichtsratsvorsitzender
> Klaus Hellwig
> Vorstand
> Hanspeter Gau
> Hermann Kiefer
> Nils Manegold
>
>
>
BGS Beratungsgesellschaft
Software Systemplanung AG Niederlassung Rhein/Main
Robert-Koch-Straße 41
55129 Mainz
Fon: +49 (0) 6131 / 914-0
Fax: +49 (0) 6131 / 914-400
www.bgs-ag.de Geschäftssitz Mainz
Registergericht
Amtsgericht Mainz
HRB 62 50
Aufsichtsratsvorsitzender
Klaus Hellwig
Vorstand
Hanspeter Gau
Hermann Kiefer
Nils Manegold
Re: Antwort: Re: Antwort: Re: Antwort: Re: Antwort: Re: WS-Client
throws Exception in WSS4JInInterceptor
Posted by Freeman Fang <fr...@gmail.com>.
Hi Josef,
Could you just add WSS4jOutInterceptor and SAAJOutInterceptor into
@OutInterceptors?
Regards
Freeman
Josef.Eisele@bgs-ag.de wrote:
> Hi Freeman,
>
> The @OutInterceptors and @InInterceptors are both on the interface:
>
> @Stateless
> @WebService(name="MyWS", serviceName="MyWSService", portName="ZielPort")
> public class MyWSImpl implements MyWSIF {
>
> @WebService(name="MyWS", serviceName="MyWSService", portName="ZielPort")
> @InInterceptors(interceptors={ "myPath.WSSecurityInInterceptor" })
> @OutInterceptors(interceptors={ "myPath.WSSecurityOutInterceptor" })
> public interface MyWSIF {
>
> If I put the InInterceptor only on the implementation class, it is not
> used. I haven't tested all possibilities with Out- and In-Interceptors,
> but I had better results on the interface.
>
> -Josef
>
>
>
>
> Freeman Fang <fr...@gmail.com>
> 08.09.2008 12:08
> Bitte antworten an
> users@cxf.apache.org
>
>
> An
> users@cxf.apache.org
> Kopie
>
> Thema
> Re: Antwort: Re: Antwort: Re: Antwort: Re: WS-Client throws Exception in
> WSS4JInInterceptor
>
>
>
>
>
>
> the error shows the messge.getContent(SOAPMessage.class) return null,
> SAAJOutInterceptor should set this content, are you sure you add
> SAAJOutInterceptor to the @OutInterceptors annotation of your
> serviceImpl class?
>
> Regards
> Freeman
>
> Josef.Eisele@bgs-ag.de wrote:
>
>> Hi Freeman,
>>
>> thanx a lot for your fast response. I added the 2 interceptors using the
>>
>
>
>> annotation @OutInterceptors
>>
>> Now I get the error from the server:
>> 05.09.2008 16:42:53 org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor
>>
>
>
>> handleMessage
>> WARNUNG: SAAJOutHandler must be enabled for WS-Security!
>> 05.09.2008 16:42:53 org.apache.cxf.phase.PhaseInterceptorChain
>>
> doIntercept
>
>> or in SOAP:
>> <soap:Fault>
>> <faultcode>soap:Server</faultcode>
>> <faultstring>NO_SAAJ_DOC</faultstring>
>> </soap:Fault>
>>
>> I created a new class WSSecurityOutInterceptor and in the
>> handleMessage-Method I tried:
>>
>> 1) message.getInterceptorChain().add(new
>> SAAJOutInterceptor());
>> message.getInterceptorChain().add(new
>> WSS4JOutInterceptor());
>>
>> or 2):
>> Map<String,Object> props = new HashMap<String,Object>();
>> props.put(WSHandlerConstants.ACTION,
>> WSHandlerConstants.USERNAME_TOKEN
>> + " " + WSHandlerConstants.SIGNATURE);
>> // TODO Anpassen, User aus DB
>> props.put(WSHandlerConstants.USER, "user");
>> props.put(WSHandlerConstants.PASSWORD_TYPE,
>> WSConstants.PW_DIGEST);
>> props.put(WSHandlerConstants.PW_CALLBACK_CLASS,
>> ClientPasswordCallback.class.getName());
>> props.put(WSHandlerConstants.SIG_PROP_FILE,
>> "client_sign.properties");
>>
>> message.getInterceptorChain().add(new
>> SAAJOutInterceptor());
>> message.getInterceptorChain().add(new
>> WSS4JOutInterceptor(props));
>>
>>
>> How can I activate the SAAJOutHandler or what do I wrong?
>>
>> -Josef
>>
>>
>>
>>
>>
>> Freeman Fang <fr...@gmail.com>
>> 05.09.2008 16:34
>> Bitte antworten an
>> users@cxf.apache.org
>>
>>
>> An
>> users@cxf.apache.org
>> Kopie
>>
>> Thema
>> Re: Antwort: Re: Antwort: Re: WS-Client throws Exception in
>> WSS4JInInterceptor
>>
>>
>>
>>
>>
>>
>> Hi Josef,
>>
>> Take a look at [1] about the interceptors in cxf.
>>
>> For your code, I believe add it into annotation @OutInterceptors should
>> be fine, also you can find several other ways from [1] to configure it.
>>
>> But I'm not sure
>> message.getInterceptorChain().add(new SAAJOutInterceptor());
>> works for you, since the message here in your code is incoming message
>> but you need add interceptors to process the outgoing message.
>>
>> Regards
>> Freeman
>>
>> [1]http://cwiki.apache.org/CXF20DOC/interceptors.html
>>
>> Josef.Eisele@bgs-ag.de wrote:
>>
>>
>>> Hi Freeman,
>>>
>>> o.k. I will try that. Do I have to add the OutInterceptors in the way:
>>>
>>> @OutInterceptors...
>>>
>>> or here:
>>>
>>> message.getInterceptorChain().add(new SAAJOutInterceptor());
>>> ...
>>> ??
>>>
>>> Is there any documentation on that?
>>>
>>> - Josef
>>>
>>>
>>>
>>>
>>> Freeman Fang <fr...@gmail.com>
>>> 05.09.2008 11:31
>>> Bitte antworten an
>>> users@cxf.apache.org
>>>
>>>
>>> An
>>> users@cxf.apache.org
>>> Kopie
>>>
>>> Thema
>>> Re: Antwort: Re: WS-Client throws Exception in WSS4JInInterceptor
>>>
>>>
>>>
>>>
>>>
>>>
>>> Hi Josef,
>>> You should add WSS4JOutInterceptor and SAAJOutInterceptor for your
>>> server side as well.
>>>
>>> Regards
>>> Freeman
>>>
>>> Josef.Eisele@bgs-ag.de wrote:
>>>
>>>
>>>
>>>> Hi Freeman,
>>>>
>>>> no as I understand we did not add OutInterceptors on the ServerSide:
>>>>
>>>> We use EJB3.0 and the WSImpl class looks like:
>>>>
>>>> @Stateless
>>>> @WebService(name="MyWS", serviceName="MyService", portName="ZielPort")
>>>> @InInterceptors(interceptors={ myPath.WSSecurityInterceptor" })
>>>> public class MyWSImpl implements MyWSInterface {
>>>>
>>>> The myPath.WSSecurityInterceptor class adds the Interceptors in the
>>>>
>>>>
>> way:
>>
>>
>>>> message.getInterceptorChain().add(new SAAJInInterceptor());
>>>> ...
>>>>
>>>> Is this o.k.?
>>>>
>>>> -Josef
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> Freeman Fang <fr...@gmail.com>
>>>> 05.09.2008 11:01
>>>> Bitte antworten an
>>>> users@cxf.apache.org
>>>>
>>>>
>>>> An
>>>> users@cxf.apache.org
>>>> Kopie
>>>>
>>>> Thema
>>>> Re: WS-Client throws Exception in WSS4JInInterceptor
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> One quick question, did you also add WSS4JOutInterceptor and
>>>> SAAJOutInterceptor for your server side?
>>>>
>>>> Regards
>>>> Freeman
>>>>
>>>> Josef.Eisele@bgs-ag.de wrote:
>>>>
>>>>
>>>>
>>>>
>>>>> Hi,
>>>>>
>>>>> we use UsernameToken and Signature in our WS-Security Secenario.
>>>>>
>>>>> For the Client we add SAAJOutInterceptor (because of Apache CXF
>>>>>
> 2.0.x)
>
>>
>>>> and
>>>>
>>>>
>>>>
>>>>
>>>>> WSS4JOutInterceptor as additional OutInterceptors. ()
>>>>> For the Server we add SAAJInInterceptor (because of Apache CXF
>>>>>
> 2.0.x),
>
>>
>>>>> WSS4JInInterceptor and ValidateUserTokenInterceptor(own
>>>>>
>>>>>
>> Implementation)
>>
>>
>>>> as
>>>>
>>>>
>>>>
>>>>
>>>>> InInterceptors.
>>>>>
>>>>> The client puts all necessary information into the request, as far as
>>>>>
>
>
>> I
>>
>>
>>>>> understand the data in my TCP/IP Monitor. The server processes the
>>>>>
>>>>>
>>>>>
>>>>>
>>>> Request
>>>>
>>>>
>>>>
>>>>
>>>>> and I see no errors in WSSecurityEngine, WSS4jInInterceptor etc. The
>>>>> server sends a HTTP/1.1 200 OK back to the client. And now the client
>>>>>
>
>
>>>>> throws an error:
>>>>>
>>>>> INFO: Interceptor has thrown exception, unwinding now
>>>>> org.apache.cxf.binding.soap.SoapFault: Request does not contain
>>>>>
>>>>>
>>>>>
>>> required
>>>
>>>
>>>
>>>>> Security header.
>>>>> at
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
> org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.handleMessage(WSS4JInInterceptor.java:150)
>
>>>>> at
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
> org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.handleMessage(WSS4JInInterceptor.java:60)
>
>>>>> at
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
>
>>>>> at
>>>>> org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:395)
>>>>> at
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1932)
>
>>>>> at
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1790)
>
>>>>> at
>>>>>
>>>>>
>>>>>
>> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
>>
>>
>>>>> at
>>>>> org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:576)
>>>>> at
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
>
>>>>> at
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
>
>>>>> at
>>>>>
>>>>>
>>>>>
>>>>>
>>>> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
>>>>
>>>>
>>>>
>>>>
>>>>> at
>>>>>
>>>>>
>>>>>
>>>>>
>>>> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
>>>>
>>>>
>>>>
>>>>
>>>>> at
>>>>> org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
>>>>> at
>>>>>
>>>>>
>>>>>
>> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135)
>>
>>
>>>>> I checked the code of WSS4JInInterceptor and I see wsResult == null,
>>>>> because
>>>>> wsResult =
>>>>> secEngine.processSecurityHeader(doc.getSOAPPart(), actor, cbHandler,
>>>>> reqData
>>>>> .getSigCrypto(), reqData.getDecCrypto());
>>>>> is null as well.
>>>>>
>>>>> I don't understand why the client calls this InInterceptor ???
>>>>>
>>>>> -Josef
>>>>> BGS Beratungsgesellschaft
>>>>> Software Systemplanung AG Niederlassung Rhein/Main
>>>>> Robert-Koch-Straße 41
>>>>> 55129 Mainz
>>>>> Fon: +49 (0) 6131 / 914-0
>>>>> Fax: +49 (0) 6131 / 914-400
>>>>> www.bgs-ag.de Geschäftssitz Mainz
>>>>> Registergericht
>>>>> Amtsgericht Mainz
>>>>> HRB 62 50
>>>>> Aufsichtsratsvorsitzender
>>>>> Klaus Hellwig
>>>>> Vorstand
>>>>> Hanspeter Gau
>>>>> Hermann Kiefer
>>>>> Nils Manegold
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>> BGS Beratungsgesellschaft
>>>> Software Systemplanung AG
>>>>
>>>>
>>>>
>>>>
>>>> Niederlassung Rhein/Main
>>>> Robert-Koch-Straße 41
>>>> 55129 Mainz
>>>> Fon: +49 (0) 6131 / 914-0
>>>> Fax: +49 (0) 6131 / 914-400
>>>> www.bgs-ag.de
>>>> Geschäftssitz Mainz
>>>> Registergericht
>>>> Amtsgericht Mainz
>>>> HRB 62 50
>>>>
>>>> Aufsichtsratsvorsitzender
>>>> Klaus Hellwig
>>>> Vorstand
>>>> Hanspeter Gau
>>>> Hermann Kiefer
>>>> Nils Manegold
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>> BGS Beratungsgesellschaft
>>> Software Systemplanung AG Niederlassung Rhein/Main
>>> Robert-Koch-Straße 41
>>> 55129 Mainz
>>> Fon: +49 (0) 6131 / 914-0
>>> Fax: +49 (0) 6131 / 914-400
>>> www.bgs-ag.de Geschäftssitz Mainz
>>> Registergericht
>>> Amtsgericht Mainz
>>> HRB 62 50
>>> Aufsichtsratsvorsitzender
>>> Klaus Hellwig
>>> Vorstand
>>> Hanspeter Gau
>>> Hermann Kiefer
>>> Nils Manegold
>>>
>>>
>>>
>>>
>>>
>>
>> BGS Beratungsgesellschaft
>> Software Systemplanung AG Niederlassung Rhein/Main
>> Robert-Koch-Straße 41
>> 55129 Mainz
>> Fon: +49 (0) 6131 / 914-0
>> Fax: +49 (0) 6131 / 914-400
>> www.bgs-ag.de Geschäftssitz Mainz
>> Registergericht
>> Amtsgericht Mainz
>> HRB 62 50
>> Aufsichtsratsvorsitzender
>> Klaus Hellwig
>> Vorstand
>> Hanspeter Gau
>> Hermann Kiefer
>> Nils Manegold
>>
>>
>>
>
>
>
> BGS Beratungsgesellschaft
> Software Systemplanung AG Niederlassung Rhein/Main
> Robert-Koch-Straße 41
> 55129 Mainz
> Fon: +49 (0) 6131 / 914-0
> Fax: +49 (0) 6131 / 914-400
> www.bgs-ag.de Geschäftssitz Mainz
> Registergericht
> Amtsgericht Mainz
> HRB 62 50
> Aufsichtsratsvorsitzender
> Klaus Hellwig
> Vorstand
> Hanspeter Gau
> Hermann Kiefer
> Nils Manegold
>
>
>
Antwort: Re: Antwort: Re: Antwort: Re: Antwort: Re: WS-Client throws
Exception in WSS4JInInterceptor
Posted by Jo...@bgs-ag.de.
Hi Freeman,
The @OutInterceptors and @InInterceptors are both on the interface:
@Stateless
@WebService(name="MyWS", serviceName="MyWSService", portName="ZielPort")
public class MyWSImpl implements MyWSIF {
@WebService(name="MyWS", serviceName="MyWSService", portName="ZielPort")
@InInterceptors(interceptors={ "myPath.WSSecurityInInterceptor" })
@OutInterceptors(interceptors={ "myPath.WSSecurityOutInterceptor" })
public interface MyWSIF {
If I put the InInterceptor only on the implementation class, it is not
used. I haven't tested all possibilities with Out- and In-Interceptors,
but I had better results on the interface.
-Josef
Freeman Fang <fr...@gmail.com>
08.09.2008 12:08
Bitte antworten an
users@cxf.apache.org
An
users@cxf.apache.org
Kopie
Thema
Re: Antwort: Re: Antwort: Re: Antwort: Re: WS-Client throws Exception in
WSS4JInInterceptor
the error shows the messge.getContent(SOAPMessage.class) return null,
SAAJOutInterceptor should set this content, are you sure you add
SAAJOutInterceptor to the @OutInterceptors annotation of your
serviceImpl class?
Regards
Freeman
Josef.Eisele@bgs-ag.de wrote:
> Hi Freeman,
>
> thanx a lot for your fast response. I added the 2 interceptors using the
> annotation @OutInterceptors
>
> Now I get the error from the server:
> 05.09.2008 16:42:53 org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor
> handleMessage
> WARNUNG: SAAJOutHandler must be enabled for WS-Security!
> 05.09.2008 16:42:53 org.apache.cxf.phase.PhaseInterceptorChain
doIntercept
>
> or in SOAP:
> <soap:Fault>
> <faultcode>soap:Server</faultcode>
> <faultstring>NO_SAAJ_DOC</faultstring>
> </soap:Fault>
>
> I created a new class WSSecurityOutInterceptor and in the
> handleMessage-Method I tried:
>
> 1) message.getInterceptorChain().add(new
> SAAJOutInterceptor());
> message.getInterceptorChain().add(new
> WSS4JOutInterceptor());
>
> or 2):
> Map<String,Object> props = new HashMap<String,Object>();
> props.put(WSHandlerConstants.ACTION,
> WSHandlerConstants.USERNAME_TOKEN
> + " " + WSHandlerConstants.SIGNATURE);
> // TODO Anpassen, User aus DB
> props.put(WSHandlerConstants.USER, "user");
> props.put(WSHandlerConstants.PASSWORD_TYPE,
> WSConstants.PW_DIGEST);
> props.put(WSHandlerConstants.PW_CALLBACK_CLASS,
> ClientPasswordCallback.class.getName());
> props.put(WSHandlerConstants.SIG_PROP_FILE,
> "client_sign.properties");
>
> message.getInterceptorChain().add(new
> SAAJOutInterceptor());
> message.getInterceptorChain().add(new
> WSS4JOutInterceptor(props));
>
>
> How can I activate the SAAJOutHandler or what do I wrong?
>
> -Josef
>
>
>
>
>
> Freeman Fang <fr...@gmail.com>
> 05.09.2008 16:34
> Bitte antworten an
> users@cxf.apache.org
>
>
> An
> users@cxf.apache.org
> Kopie
>
> Thema
> Re: Antwort: Re: Antwort: Re: WS-Client throws Exception in
> WSS4JInInterceptor
>
>
>
>
>
>
> Hi Josef,
>
> Take a look at [1] about the interceptors in cxf.
>
> For your code, I believe add it into annotation @OutInterceptors should
> be fine, also you can find several other ways from [1] to configure it.
>
> But I'm not sure
> message.getInterceptorChain().add(new SAAJOutInterceptor());
> works for you, since the message here in your code is incoming message
> but you need add interceptors to process the outgoing message.
>
> Regards
> Freeman
>
> [1]http://cwiki.apache.org/CXF20DOC/interceptors.html
>
> Josef.Eisele@bgs-ag.de wrote:
>
>> Hi Freeman,
>>
>> o.k. I will try that. Do I have to add the OutInterceptors in the way:
>>
>> @OutInterceptors...
>>
>> or here:
>>
>> message.getInterceptorChain().add(new SAAJOutInterceptor());
>> ...
>> ??
>>
>> Is there any documentation on that?
>>
>> - Josef
>>
>>
>>
>>
>> Freeman Fang <fr...@gmail.com>
>> 05.09.2008 11:31
>> Bitte antworten an
>> users@cxf.apache.org
>>
>>
>> An
>> users@cxf.apache.org
>> Kopie
>>
>> Thema
>> Re: Antwort: Re: WS-Client throws Exception in WSS4JInInterceptor
>>
>>
>>
>>
>>
>>
>> Hi Josef,
>> You should add WSS4JOutInterceptor and SAAJOutInterceptor for your
>> server side as well.
>>
>> Regards
>> Freeman
>>
>> Josef.Eisele@bgs-ag.de wrote:
>>
>>
>>> Hi Freeman,
>>>
>>> no as I understand we did not add OutInterceptors on the ServerSide:
>>>
>>> We use EJB3.0 and the WSImpl class looks like:
>>>
>>> @Stateless
>>> @WebService(name="MyWS", serviceName="MyService", portName="ZielPort")
>>> @InInterceptors(interceptors={ myPath.WSSecurityInterceptor" })
>>> public class MyWSImpl implements MyWSInterface {
>>>
>>> The myPath.WSSecurityInterceptor class adds the Interceptors in the
>>>
> way:
>
>>> message.getInterceptorChain().add(new SAAJInInterceptor());
>>> ...
>>>
>>> Is this o.k.?
>>>
>>> -Josef
>>>
>>>
>>>
>>>
>>>
>>> Freeman Fang <fr...@gmail.com>
>>> 05.09.2008 11:01
>>> Bitte antworten an
>>> users@cxf.apache.org
>>>
>>>
>>> An
>>> users@cxf.apache.org
>>> Kopie
>>>
>>> Thema
>>> Re: WS-Client throws Exception in WSS4JInInterceptor
>>>
>>>
>>>
>>>
>>>
>>>
>>> One quick question, did you also add WSS4JOutInterceptor and
>>> SAAJOutInterceptor for your server side?
>>>
>>> Regards
>>> Freeman
>>>
>>> Josef.Eisele@bgs-ag.de wrote:
>>>
>>>
>>>
>>>> Hi,
>>>>
>>>> we use UsernameToken and Signature in our WS-Security Secenario.
>>>>
>>>> For the Client we add SAAJOutInterceptor (because of Apache CXF
2.0.x)
>>>>
>
>
>>>>
>>> and
>>>
>>>
>>>
>>>> WSS4JOutInterceptor as additional OutInterceptors. ()
>>>> For the Server we add SAAJInInterceptor (because of Apache CXF
2.0.x),
>>>>
>
>
>>>> WSS4JInInterceptor and ValidateUserTokenInterceptor(own
>>>>
> Implementation)
>
>>
>>> as
>>>
>>>
>>>
>>>> InInterceptors.
>>>>
>>>> The client puts all necessary information into the request, as far as
>>>>
> I
>
>>
>>>> understand the data in my TCP/IP Monitor. The server processes the
>>>>
>>>>
>>>>
>>> Request
>>>
>>>
>>>
>>>> and I see no errors in WSSecurityEngine, WSS4jInInterceptor etc. The
>>>> server sends a HTTP/1.1 200 OK back to the client. And now the client
>>>> throws an error:
>>>>
>>>> INFO: Interceptor has thrown exception, unwinding now
>>>> org.apache.cxf.binding.soap.SoapFault: Request does not contain
>>>>
>>>>
>> required
>>
>>
>>>> Security header.
>>>> at
>>>>
>>>>
>>>>
>>>>
>
org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.handleMessage(WSS4JInInterceptor.java:150)
>
>>>> at
>>>>
>>>>
>>>>
>>>>
>
org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.handleMessage(WSS4JInInterceptor.java:60)
>
>>>> at
>>>>
>>>>
>>>>
>>>>
>
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
>
>>>> at
>>>> org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:395)
>>>> at
>>>>
>>>>
>>>>
>>>>
>
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1932)
>
>>>> at
>>>>
>>>>
>>>>
>>>>
>
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1790)
>
>>>> at
>>>>
>>>>
> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
>
>>>> at
>>>> org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:576)
>>>> at
>>>>
>>>>
>>>>
>>>>
>
org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
>
>>>> at
>>>>
>>>>
>>>>
>>>>
>
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
>
>>>> at
>>>>
>>>>
>>>>
>>> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
>>>
>>>
>>>
>>>> at
>>>>
>>>>
>>>>
>>> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
>>>
>>>
>>>
>>>> at
>>>> org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
>>>> at
>>>>
>>>>
> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135)
>
>>>> I checked the code of WSS4JInInterceptor and I see wsResult == null,
>>>> because
>>>> wsResult =
>>>> secEngine.processSecurityHeader(doc.getSOAPPart(), actor, cbHandler,
>>>> reqData
>>>> .getSigCrypto(), reqData.getDecCrypto());
>>>> is null as well.
>>>>
>>>> I don't understand why the client calls this InInterceptor ???
>>>>
>>>> -Josef
>>>> BGS Beratungsgesellschaft
>>>> Software Systemplanung AG Niederlassung Rhein/Main
>>>> Robert-Koch-Straße 41
>>>> 55129 Mainz
>>>> Fon: +49 (0) 6131 / 914-0
>>>> Fax: +49 (0) 6131 / 914-400
>>>> www.bgs-ag.de Geschäftssitz Mainz
>>>> Registergericht
>>>> Amtsgericht Mainz
>>>> HRB 62 50
>>>> Aufsichtsratsvorsitzender
>>>> Klaus Hellwig
>>>> Vorstand
>>>> Hanspeter Gau
>>>> Hermann Kiefer
>>>> Nils Manegold
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>> BGS Beratungsgesellschaft
>>> Software Systemplanung AG
>>>
>>>
>>>
>>>
>>> Niederlassung Rhein/Main
>>> Robert-Koch-Straße 41
>>> 55129 Mainz
>>> Fon: +49 (0) 6131 / 914-0
>>> Fax: +49 (0) 6131 / 914-400
>>> www.bgs-ag.de
>>> Geschäftssitz Mainz
>>> Registergericht
>>> Amtsgericht Mainz
>>> HRB 62 50
>>>
>>> Aufsichtsratsvorsitzender
>>> Klaus Hellwig
>>> Vorstand
>>> Hanspeter Gau
>>> Hermann Kiefer
>>> Nils Manegold
>>>
>>>
>>>
>>>
>>>
>>
>> BGS Beratungsgesellschaft
>> Software Systemplanung AG Niederlassung Rhein/Main
>> Robert-Koch-Straße 41
>> 55129 Mainz
>> Fon: +49 (0) 6131 / 914-0
>> Fax: +49 (0) 6131 / 914-400
>> www.bgs-ag.de Geschäftssitz Mainz
>> Registergericht
>> Amtsgericht Mainz
>> HRB 62 50
>> Aufsichtsratsvorsitzender
>> Klaus Hellwig
>> Vorstand
>> Hanspeter Gau
>> Hermann Kiefer
>> Nils Manegold
>>
>>
>>
>>
>
>
>
> BGS Beratungsgesellschaft
> Software Systemplanung AG Niederlassung Rhein/Main
> Robert-Koch-Straße 41
> 55129 Mainz
> Fon: +49 (0) 6131 / 914-0
> Fax: +49 (0) 6131 / 914-400
> www.bgs-ag.de Geschäftssitz Mainz
> Registergericht
> Amtsgericht Mainz
> HRB 62 50
> Aufsichtsratsvorsitzender
> Klaus Hellwig
> Vorstand
> Hanspeter Gau
> Hermann Kiefer
> Nils Manegold
>
>
BGS Beratungsgesellschaft
Software Systemplanung AG Niederlassung Rhein/Main
Robert-Koch-Straße 41
55129 Mainz
Fon: +49 (0) 6131 / 914-0
Fax: +49 (0) 6131 / 914-400
www.bgs-ag.de Geschäftssitz Mainz
Registergericht
Amtsgericht Mainz
HRB 62 50
Aufsichtsratsvorsitzender
Klaus Hellwig
Vorstand
Hanspeter Gau
Hermann Kiefer
Nils Manegold
Re: Antwort: Re: Antwort: Re: Antwort: Re: WS-Client throws Exception
in WSS4JInInterceptor
Posted by Freeman Fang <fr...@gmail.com>.
the error shows the messge.getContent(SOAPMessage.class) return null,
SAAJOutInterceptor should set this content, are you sure you add
SAAJOutInterceptor to the @OutInterceptors annotation of your
serviceImpl class?
Regards
Freeman
Josef.Eisele@bgs-ag.de wrote:
> Hi Freeman,
>
> thanx a lot for your fast response. I added the 2 interceptors using the
> annotation @OutInterceptors
>
> Now I get the error from the server:
> 05.09.2008 16:42:53 org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor
> handleMessage
> WARNUNG: SAAJOutHandler must be enabled for WS-Security!
> 05.09.2008 16:42:53 org.apache.cxf.phase.PhaseInterceptorChain doIntercept
>
> or in SOAP:
> <soap:Fault>
> <faultcode>soap:Server</faultcode>
> <faultstring>NO_SAAJ_DOC</faultstring>
> </soap:Fault>
>
> I created a new class WSSecurityOutInterceptor and in the
> handleMessage-Method I tried:
>
> 1) message.getInterceptorChain().add(new
> SAAJOutInterceptor());
> message.getInterceptorChain().add(new
> WSS4JOutInterceptor());
>
> or 2):
> Map<String,Object> props = new HashMap<String,Object>();
> props.put(WSHandlerConstants.ACTION,
> WSHandlerConstants.USERNAME_TOKEN
> + " " + WSHandlerConstants.SIGNATURE);
> // TODO Anpassen, User aus DB
> props.put(WSHandlerConstants.USER, "user");
> props.put(WSHandlerConstants.PASSWORD_TYPE,
> WSConstants.PW_DIGEST);
> props.put(WSHandlerConstants.PW_CALLBACK_CLASS,
> ClientPasswordCallback.class.getName());
> props.put(WSHandlerConstants.SIG_PROP_FILE,
> "client_sign.properties");
>
> message.getInterceptorChain().add(new
> SAAJOutInterceptor());
> message.getInterceptorChain().add(new
> WSS4JOutInterceptor(props));
>
>
> How can I activate the SAAJOutHandler or what do I wrong?
>
> -Josef
>
>
>
>
>
> Freeman Fang <fr...@gmail.com>
> 05.09.2008 16:34
> Bitte antworten an
> users@cxf.apache.org
>
>
> An
> users@cxf.apache.org
> Kopie
>
> Thema
> Re: Antwort: Re: Antwort: Re: WS-Client throws Exception in
> WSS4JInInterceptor
>
>
>
>
>
>
> Hi Josef,
>
> Take a look at [1] about the interceptors in cxf.
>
> For your code, I believe add it into annotation @OutInterceptors should
> be fine, also you can find several other ways from [1] to configure it.
>
> But I'm not sure
> message.getInterceptorChain().add(new SAAJOutInterceptor());
> works for you, since the message here in your code is incoming message
> but you need add interceptors to process the outgoing message.
>
> Regards
> Freeman
>
> [1]http://cwiki.apache.org/CXF20DOC/interceptors.html
>
> Josef.Eisele@bgs-ag.de wrote:
>
>> Hi Freeman,
>>
>> o.k. I will try that. Do I have to add the OutInterceptors in the way:
>>
>> @OutInterceptors...
>>
>> or here:
>>
>> message.getInterceptorChain().add(new SAAJOutInterceptor());
>> ...
>> ??
>>
>> Is there any documentation on that?
>>
>> - Josef
>>
>>
>>
>>
>> Freeman Fang <fr...@gmail.com>
>> 05.09.2008 11:31
>> Bitte antworten an
>> users@cxf.apache.org
>>
>>
>> An
>> users@cxf.apache.org
>> Kopie
>>
>> Thema
>> Re: Antwort: Re: WS-Client throws Exception in WSS4JInInterceptor
>>
>>
>>
>>
>>
>>
>> Hi Josef,
>> You should add WSS4JOutInterceptor and SAAJOutInterceptor for your
>> server side as well.
>>
>> Regards
>> Freeman
>>
>> Josef.Eisele@bgs-ag.de wrote:
>>
>>
>>> Hi Freeman,
>>>
>>> no as I understand we did not add OutInterceptors on the ServerSide:
>>>
>>> We use EJB3.0 and the WSImpl class looks like:
>>>
>>> @Stateless
>>> @WebService(name="MyWS", serviceName="MyService", portName="ZielPort")
>>> @InInterceptors(interceptors={ myPath.WSSecurityInterceptor" })
>>> public class MyWSImpl implements MyWSInterface {
>>>
>>> The myPath.WSSecurityInterceptor class adds the Interceptors in the
>>>
> way:
>
>>> message.getInterceptorChain().add(new SAAJInInterceptor());
>>> ...
>>>
>>> Is this o.k.?
>>>
>>> -Josef
>>>
>>>
>>>
>>>
>>>
>>> Freeman Fang <fr...@gmail.com>
>>> 05.09.2008 11:01
>>> Bitte antworten an
>>> users@cxf.apache.org
>>>
>>>
>>> An
>>> users@cxf.apache.org
>>> Kopie
>>>
>>> Thema
>>> Re: WS-Client throws Exception in WSS4JInInterceptor
>>>
>>>
>>>
>>>
>>>
>>>
>>> One quick question, did you also add WSS4JOutInterceptor and
>>> SAAJOutInterceptor for your server side?
>>>
>>> Regards
>>> Freeman
>>>
>>> Josef.Eisele@bgs-ag.de wrote:
>>>
>>>
>>>
>>>> Hi,
>>>>
>>>> we use UsernameToken and Signature in our WS-Security Secenario.
>>>>
>>>> For the Client we add SAAJOutInterceptor (because of Apache CXF 2.0.x)
>>>>
>
>
>>>>
>>> and
>>>
>>>
>>>
>>>> WSS4JOutInterceptor as additional OutInterceptors. ()
>>>> For the Server we add SAAJInInterceptor (because of Apache CXF 2.0.x),
>>>>
>
>
>>>> WSS4JInInterceptor and ValidateUserTokenInterceptor(own
>>>>
> Implementation)
>
>>
>>> as
>>>
>>>
>>>
>>>> InInterceptors.
>>>>
>>>> The client puts all necessary information into the request, as far as
>>>>
> I
>
>>
>>>> understand the data in my TCP/IP Monitor. The server processes the
>>>>
>>>>
>>>>
>>> Request
>>>
>>>
>>>
>>>> and I see no errors in WSSecurityEngine, WSS4jInInterceptor etc. The
>>>> server sends a HTTP/1.1 200 OK back to the client. And now the client
>>>> throws an error:
>>>>
>>>> INFO: Interceptor has thrown exception, unwinding now
>>>> org.apache.cxf.binding.soap.SoapFault: Request does not contain
>>>>
>>>>
>> required
>>
>>
>>>> Security header.
>>>> at
>>>>
>>>>
>>>>
>>>>
> org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.handleMessage(WSS4JInInterceptor.java:150)
>
>>>> at
>>>>
>>>>
>>>>
>>>>
> org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.handleMessage(WSS4JInInterceptor.java:60)
>
>>>> at
>>>>
>>>>
>>>>
>>>>
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
>
>>>> at
>>>> org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:395)
>>>> at
>>>>
>>>>
>>>>
>>>>
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1932)
>
>>>> at
>>>>
>>>>
>>>>
>>>>
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1790)
>
>>>> at
>>>>
>>>>
> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
>
>>>> at
>>>> org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:576)
>>>> at
>>>>
>>>>
>>>>
>>>>
> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
>
>>>> at
>>>>
>>>>
>>>>
>>>>
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
>
>>>> at
>>>>
>>>>
>>>>
>>> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
>>>
>>>
>>>
>>>> at
>>>>
>>>>
>>>>
>>> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
>>>
>>>
>>>
>>>> at
>>>> org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
>>>> at
>>>>
>>>>
> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135)
>
>>>> I checked the code of WSS4JInInterceptor and I see wsResult == null,
>>>> because
>>>> wsResult =
>>>> secEngine.processSecurityHeader(doc.getSOAPPart(), actor, cbHandler,
>>>> reqData
>>>> .getSigCrypto(), reqData.getDecCrypto());
>>>> is null as well.
>>>>
>>>> I don't understand why the client calls this InInterceptor ???
>>>>
>>>> -Josef
>>>> BGS Beratungsgesellschaft
>>>> Software Systemplanung AG Niederlassung Rhein/Main
>>>> Robert-Koch-Straße 41
>>>> 55129 Mainz
>>>> Fon: +49 (0) 6131 / 914-0
>>>> Fax: +49 (0) 6131 / 914-400
>>>> www.bgs-ag.de Geschäftssitz Mainz
>>>> Registergericht
>>>> Amtsgericht Mainz
>>>> HRB 62 50
>>>> Aufsichtsratsvorsitzender
>>>> Klaus Hellwig
>>>> Vorstand
>>>> Hanspeter Gau
>>>> Hermann Kiefer
>>>> Nils Manegold
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>> BGS Beratungsgesellschaft
>>> Software Systemplanung AG
>>>
>>>
>>>
>>>
>>> Niederlassung Rhein/Main
>>> Robert-Koch-Straße 41
>>> 55129 Mainz
>>> Fon: +49 (0) 6131 / 914-0
>>> Fax: +49 (0) 6131 / 914-400
>>> www.bgs-ag.de
>>> Geschäftssitz Mainz
>>> Registergericht
>>> Amtsgericht Mainz
>>> HRB 62 50
>>>
>>> Aufsichtsratsvorsitzender
>>> Klaus Hellwig
>>> Vorstand
>>> Hanspeter Gau
>>> Hermann Kiefer
>>> Nils Manegold
>>>
>>>
>>>
>>>
>>>
>>
>> BGS Beratungsgesellschaft
>> Software Systemplanung AG Niederlassung Rhein/Main
>> Robert-Koch-Straße 41
>> 55129 Mainz
>> Fon: +49 (0) 6131 / 914-0
>> Fax: +49 (0) 6131 / 914-400
>> www.bgs-ag.de Geschäftssitz Mainz
>> Registergericht
>> Amtsgericht Mainz
>> HRB 62 50
>> Aufsichtsratsvorsitzender
>> Klaus Hellwig
>> Vorstand
>> Hanspeter Gau
>> Hermann Kiefer
>> Nils Manegold
>>
>>
>>
>>
>
>
>
> BGS Beratungsgesellschaft
> Software Systemplanung AG Niederlassung Rhein/Main
> Robert-Koch-Straße 41
> 55129 Mainz
> Fon: +49 (0) 6131 / 914-0
> Fax: +49 (0) 6131 / 914-400
> www.bgs-ag.de Geschäftssitz Mainz
> Registergericht
> Amtsgericht Mainz
> HRB 62 50
> Aufsichtsratsvorsitzender
> Klaus Hellwig
> Vorstand
> Hanspeter Gau
> Hermann Kiefer
> Nils Manegold
>
>
Antwort: Re: Antwort: Re: Antwort: Re: WS-Client throws Exception in
WSS4JInInterceptor
Posted by Jo...@bgs-ag.de.
Hi Freeman,
thanx a lot for your fast response. I added the 2 interceptors using the
annotation @OutInterceptors
Now I get the error from the server:
05.09.2008 16:42:53 org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor
handleMessage
WARNUNG: SAAJOutHandler must be enabled for WS-Security!
05.09.2008 16:42:53 org.apache.cxf.phase.PhaseInterceptorChain doIntercept
or in SOAP:
<soap:Fault>
<faultcode>soap:Server</faultcode>
<faultstring>NO_SAAJ_DOC</faultstring>
</soap:Fault>
I created a new class WSSecurityOutInterceptor and in the
handleMessage-Method I tried:
1) message.getInterceptorChain().add(new
SAAJOutInterceptor());
message.getInterceptorChain().add(new
WSS4JOutInterceptor());
or 2):
Map<String,Object> props = new HashMap<String,Object>();
props.put(WSHandlerConstants.ACTION,
WSHandlerConstants.USERNAME_TOKEN
+ " " + WSHandlerConstants.SIGNATURE);
// TODO Anpassen, User aus DB
props.put(WSHandlerConstants.USER, "user");
props.put(WSHandlerConstants.PASSWORD_TYPE,
WSConstants.PW_DIGEST);
props.put(WSHandlerConstants.PW_CALLBACK_CLASS,
ClientPasswordCallback.class.getName());
props.put(WSHandlerConstants.SIG_PROP_FILE,
"client_sign.properties");
message.getInterceptorChain().add(new
SAAJOutInterceptor());
message.getInterceptorChain().add(new
WSS4JOutInterceptor(props));
How can I activate the SAAJOutHandler or what do I wrong?
-Josef
Freeman Fang <fr...@gmail.com>
05.09.2008 16:34
Bitte antworten an
users@cxf.apache.org
An
users@cxf.apache.org
Kopie
Thema
Re: Antwort: Re: Antwort: Re: WS-Client throws Exception in
WSS4JInInterceptor
Hi Josef,
Take a look at [1] about the interceptors in cxf.
For your code, I believe add it into annotation @OutInterceptors should
be fine, also you can find several other ways from [1] to configure it.
But I'm not sure
message.getInterceptorChain().add(new SAAJOutInterceptor());
works for you, since the message here in your code is incoming message
but you need add interceptors to process the outgoing message.
Regards
Freeman
[1]http://cwiki.apache.org/CXF20DOC/interceptors.html
Josef.Eisele@bgs-ag.de wrote:
> Hi Freeman,
>
> o.k. I will try that. Do I have to add the OutInterceptors in the way:
>
> @OutInterceptors...
>
> or here:
>
> message.getInterceptorChain().add(new SAAJOutInterceptor());
> ...
> ??
>
> Is there any documentation on that?
>
> - Josef
>
>
>
>
> Freeman Fang <fr...@gmail.com>
> 05.09.2008 11:31
> Bitte antworten an
> users@cxf.apache.org
>
>
> An
> users@cxf.apache.org
> Kopie
>
> Thema
> Re: Antwort: Re: WS-Client throws Exception in WSS4JInInterceptor
>
>
>
>
>
>
> Hi Josef,
> You should add WSS4JOutInterceptor and SAAJOutInterceptor for your
> server side as well.
>
> Regards
> Freeman
>
> Josef.Eisele@bgs-ag.de wrote:
>
>> Hi Freeman,
>>
>> no as I understand we did not add OutInterceptors on the ServerSide:
>>
>> We use EJB3.0 and the WSImpl class looks like:
>>
>> @Stateless
>> @WebService(name="MyWS", serviceName="MyService", portName="ZielPort")
>> @InInterceptors(interceptors={ myPath.WSSecurityInterceptor" })
>> public class MyWSImpl implements MyWSInterface {
>>
>> The myPath.WSSecurityInterceptor class adds the Interceptors in the
way:
>>
>> message.getInterceptorChain().add(new SAAJInInterceptor());
>> ...
>>
>> Is this o.k.?
>>
>> -Josef
>>
>>
>>
>>
>>
>> Freeman Fang <fr...@gmail.com>
>> 05.09.2008 11:01
>> Bitte antworten an
>> users@cxf.apache.org
>>
>>
>> An
>> users@cxf.apache.org
>> Kopie
>>
>> Thema
>> Re: WS-Client throws Exception in WSS4JInInterceptor
>>
>>
>>
>>
>>
>>
>> One quick question, did you also add WSS4JOutInterceptor and
>> SAAJOutInterceptor for your server side?
>>
>> Regards
>> Freeman
>>
>> Josef.Eisele@bgs-ag.de wrote:
>>
>>
>>> Hi,
>>>
>>> we use UsernameToken and Signature in our WS-Security Secenario.
>>>
>>> For the Client we add SAAJOutInterceptor (because of Apache CXF 2.0.x)
>>>
>>>
>> and
>>
>>
>>> WSS4JOutInterceptor as additional OutInterceptors. ()
>>> For the Server we add SAAJInInterceptor (because of Apache CXF 2.0.x),
>>> WSS4JInInterceptor and ValidateUserTokenInterceptor(own
Implementation)
>>>
>
>
>> as
>>
>>
>>> InInterceptors.
>>>
>>> The client puts all necessary information into the request, as far as
I
>>>
>
>
>>> understand the data in my TCP/IP Monitor. The server processes the
>>>
>>>
>> Request
>>
>>
>>> and I see no errors in WSSecurityEngine, WSS4jInInterceptor etc. The
>>> server sends a HTTP/1.1 200 OK back to the client. And now the client
>>> throws an error:
>>>
>>> INFO: Interceptor has thrown exception, unwinding now
>>> org.apache.cxf.binding.soap.SoapFault: Request does not contain
>>>
> required
>
>>
>>> Security header.
>>> at
>>>
>>>
>>>
>
org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.handleMessage(WSS4JInInterceptor.java:150)
>
>>> at
>>>
>>>
>>>
>
org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.handleMessage(WSS4JInInterceptor.java:60)
>
>>> at
>>>
>>>
>>>
>
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
>
>>> at
>>> org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:395)
>>> at
>>>
>>>
>>>
>
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1932)
>
>>> at
>>>
>>>
>>>
>
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1790)
>
>>> at
>>>
org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
>>> at
>>> org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:576)
>>> at
>>>
>>>
>>>
>
org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
>
>>> at
>>>
>>>
>>>
>
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
>
>>> at
>>>
>>>
>> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
>>
>>
>>> at
>>>
>>>
>> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
>>
>>
>>> at
>>> org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
>>> at
>>>
org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135)
>>>
>>> I checked the code of WSS4JInInterceptor and I see wsResult == null,
>>> because
>>> wsResult =
>>> secEngine.processSecurityHeader(doc.getSOAPPart(), actor, cbHandler,
>>> reqData
>>> .getSigCrypto(), reqData.getDecCrypto());
>>> is null as well.
>>>
>>> I don't understand why the client calls this InInterceptor ???
>>>
>>> -Josef
>>> BGS Beratungsgesellschaft
>>> Software Systemplanung AG Niederlassung Rhein/Main
>>> Robert-Koch-Straße 41
>>> 55129 Mainz
>>> Fon: +49 (0) 6131 / 914-0
>>> Fax: +49 (0) 6131 / 914-400
>>> www.bgs-ag.de Geschäftssitz Mainz
>>> Registergericht
>>> Amtsgericht Mainz
>>> HRB 62 50
>>> Aufsichtsratsvorsitzender
>>> Klaus Hellwig
>>> Vorstand
>>> Hanspeter Gau
>>> Hermann Kiefer
>>> Nils Manegold
>>>
>>>
>>>
>>>
>>>
>>
>> BGS Beratungsgesellschaft
>> Software Systemplanung AG
>>
>>
>>
>>
>> Niederlassung Rhein/Main
>> Robert-Koch-Straße 41
>> 55129 Mainz
>> Fon: +49 (0) 6131 / 914-0
>> Fax: +49 (0) 6131 / 914-400
>> www.bgs-ag.de
>> Geschäftssitz Mainz
>> Registergericht
>> Amtsgericht Mainz
>> HRB 62 50
>>
>> Aufsichtsratsvorsitzender
>> Klaus Hellwig
>> Vorstand
>> Hanspeter Gau
>> Hermann Kiefer
>> Nils Manegold
>>
>>
>>
>>
>
>
>
> BGS Beratungsgesellschaft
> Software Systemplanung AG Niederlassung Rhein/Main
> Robert-Koch-Straße 41
> 55129 Mainz
> Fon: +49 (0) 6131 / 914-0
> Fax: +49 (0) 6131 / 914-400
> www.bgs-ag.de Geschäftssitz Mainz
> Registergericht
> Amtsgericht Mainz
> HRB 62 50
> Aufsichtsratsvorsitzender
> Klaus Hellwig
> Vorstand
> Hanspeter Gau
> Hermann Kiefer
> Nils Manegold
>
>
>
BGS Beratungsgesellschaft
Software Systemplanung AG Niederlassung Rhein/Main
Robert-Koch-Straße 41
55129 Mainz
Fon: +49 (0) 6131 / 914-0
Fax: +49 (0) 6131 / 914-400
www.bgs-ag.de Geschäftssitz Mainz
Registergericht
Amtsgericht Mainz
HRB 62 50
Aufsichtsratsvorsitzender
Klaus Hellwig
Vorstand
Hanspeter Gau
Hermann Kiefer
Nils Manegold
Re: Antwort: Re: Antwort: Re: WS-Client throws Exception in WSS4JInInterceptor
Posted by Freeman Fang <fr...@gmail.com>.
Hi Josef,
Take a look at [1] about the interceptors in cxf.
For your code, I believe add it into annotation @OutInterceptors should
be fine, also you can find several other ways from [1] to configure it.
But I'm not sure
message.getInterceptorChain().add(new SAAJOutInterceptor());
works for you, since the message here in your code is incoming message
but you need add interceptors to process the outgoing message.
Regards
Freeman
[1]http://cwiki.apache.org/CXF20DOC/interceptors.html
Josef.Eisele@bgs-ag.de wrote:
> Hi Freeman,
>
> o.k. I will try that. Do I have to add the OutInterceptors in the way:
>
> @OutInterceptors...
>
> or here:
>
> message.getInterceptorChain().add(new SAAJOutInterceptor());
> ...
> ??
>
> Is there any documentation on that?
>
> - Josef
>
>
>
>
> Freeman Fang <fr...@gmail.com>
> 05.09.2008 11:31
> Bitte antworten an
> users@cxf.apache.org
>
>
> An
> users@cxf.apache.org
> Kopie
>
> Thema
> Re: Antwort: Re: WS-Client throws Exception in WSS4JInInterceptor
>
>
>
>
>
>
> Hi Josef,
> You should add WSS4JOutInterceptor and SAAJOutInterceptor for your
> server side as well.
>
> Regards
> Freeman
>
> Josef.Eisele@bgs-ag.de wrote:
>
>> Hi Freeman,
>>
>> no as I understand we did not add OutInterceptors on the ServerSide:
>>
>> We use EJB3.0 and the WSImpl class looks like:
>>
>> @Stateless
>> @WebService(name="MyWS", serviceName="MyService", portName="ZielPort")
>> @InInterceptors(interceptors={ myPath.WSSecurityInterceptor" })
>> public class MyWSImpl implements MyWSInterface {
>>
>> The myPath.WSSecurityInterceptor class adds the Interceptors in the way:
>>
>> message.getInterceptorChain().add(new SAAJInInterceptor());
>> ...
>>
>> Is this o.k.?
>>
>> -Josef
>>
>>
>>
>>
>>
>> Freeman Fang <fr...@gmail.com>
>> 05.09.2008 11:01
>> Bitte antworten an
>> users@cxf.apache.org
>>
>>
>> An
>> users@cxf.apache.org
>> Kopie
>>
>> Thema
>> Re: WS-Client throws Exception in WSS4JInInterceptor
>>
>>
>>
>>
>>
>>
>> One quick question, did you also add WSS4JOutInterceptor and
>> SAAJOutInterceptor for your server side?
>>
>> Regards
>> Freeman
>>
>> Josef.Eisele@bgs-ag.de wrote:
>>
>>
>>> Hi,
>>>
>>> we use UsernameToken and Signature in our WS-Security Secenario.
>>>
>>> For the Client we add SAAJOutInterceptor (because of Apache CXF 2.0.x)
>>>
>>>
>> and
>>
>>
>>> WSS4JOutInterceptor as additional OutInterceptors. ()
>>> For the Server we add SAAJInInterceptor (because of Apache CXF 2.0.x),
>>> WSS4JInInterceptor and ValidateUserTokenInterceptor(own Implementation)
>>>
>
>
>> as
>>
>>
>>> InInterceptors.
>>>
>>> The client puts all necessary information into the request, as far as I
>>>
>
>
>>> understand the data in my TCP/IP Monitor. The server processes the
>>>
>>>
>> Request
>>
>>
>>> and I see no errors in WSSecurityEngine, WSS4jInInterceptor etc. The
>>> server sends a HTTP/1.1 200 OK back to the client. And now the client
>>> throws an error:
>>>
>>> INFO: Interceptor has thrown exception, unwinding now
>>> org.apache.cxf.binding.soap.SoapFault: Request does not contain
>>>
> required
>
>>
>>> Security header.
>>> at
>>>
>>>
>>>
> org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.handleMessage(WSS4JInInterceptor.java:150)
>
>>> at
>>>
>>>
>>>
> org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.handleMessage(WSS4JInInterceptor.java:60)
>
>>> at
>>>
>>>
>>>
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
>
>>> at
>>> org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:395)
>>> at
>>>
>>>
>>>
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1932)
>
>>> at
>>>
>>>
>>>
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1790)
>
>>> at
>>> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
>>> at
>>> org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:576)
>>> at
>>>
>>>
>>>
> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
>
>>> at
>>>
>>>
>>>
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
>
>>> at
>>>
>>>
>> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
>>
>>
>>> at
>>>
>>>
>> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
>>
>>
>>> at
>>> org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
>>> at
>>> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135)
>>>
>>> I checked the code of WSS4JInInterceptor and I see wsResult == null,
>>> because
>>> wsResult =
>>> secEngine.processSecurityHeader(doc.getSOAPPart(), actor, cbHandler,
>>> reqData
>>> .getSigCrypto(), reqData.getDecCrypto());
>>> is null as well.
>>>
>>> I don't understand why the client calls this InInterceptor ???
>>>
>>> -Josef
>>> BGS Beratungsgesellschaft
>>> Software Systemplanung AG Niederlassung Rhein/Main
>>> Robert-Koch-Straße 41
>>> 55129 Mainz
>>> Fon: +49 (0) 6131 / 914-0
>>> Fax: +49 (0) 6131 / 914-400
>>> www.bgs-ag.de Geschäftssitz Mainz
>>> Registergericht
>>> Amtsgericht Mainz
>>> HRB 62 50
>>> Aufsichtsratsvorsitzender
>>> Klaus Hellwig
>>> Vorstand
>>> Hanspeter Gau
>>> Hermann Kiefer
>>> Nils Manegold
>>>
>>>
>>>
>>>
>>>
>>
>> BGS Beratungsgesellschaft
>> Software Systemplanung AG
>>
>>
>>
>>
>> Niederlassung Rhein/Main
>> Robert-Koch-Straße 41
>> 55129 Mainz
>> Fon: +49 (0) 6131 / 914-0
>> Fax: +49 (0) 6131 / 914-400
>> www.bgs-ag.de
>> Geschäftssitz Mainz
>> Registergericht
>> Amtsgericht Mainz
>> HRB 62 50
>>
>> Aufsichtsratsvorsitzender
>> Klaus Hellwig
>> Vorstand
>> Hanspeter Gau
>> Hermann Kiefer
>> Nils Manegold
>>
>>
>>
>>
>
>
>
> BGS Beratungsgesellschaft
> Software Systemplanung AG Niederlassung Rhein/Main
> Robert-Koch-Straße 41
> 55129 Mainz
> Fon: +49 (0) 6131 / 914-0
> Fax: +49 (0) 6131 / 914-400
> www.bgs-ag.de Geschäftssitz Mainz
> Registergericht
> Amtsgericht Mainz
> HRB 62 50
> Aufsichtsratsvorsitzender
> Klaus Hellwig
> Vorstand
> Hanspeter Gau
> Hermann Kiefer
> Nils Manegold
>
>
>
Antwort: Re: Antwort: Re: WS-Client throws Exception in WSS4JInInterceptor
Posted by Jo...@bgs-ag.de.
Hi Freeman,
o.k. I will try that. Do I have to add the OutInterceptors in the way:
@OutInterceptors...
or here:
message.getInterceptorChain().add(new SAAJOutInterceptor());
...
??
Is there any documentation on that?
- Josef
Freeman Fang <fr...@gmail.com>
05.09.2008 11:31
Bitte antworten an
users@cxf.apache.org
An
users@cxf.apache.org
Kopie
Thema
Re: Antwort: Re: WS-Client throws Exception in WSS4JInInterceptor
Hi Josef,
You should add WSS4JOutInterceptor and SAAJOutInterceptor for your
server side as well.
Regards
Freeman
Josef.Eisele@bgs-ag.de wrote:
> Hi Freeman,
>
> no as I understand we did not add OutInterceptors on the ServerSide:
>
> We use EJB3.0 and the WSImpl class looks like:
>
> @Stateless
> @WebService(name="MyWS", serviceName="MyService", portName="ZielPort")
> @InInterceptors(interceptors={ myPath.WSSecurityInterceptor" })
> public class MyWSImpl implements MyWSInterface {
>
> The myPath.WSSecurityInterceptor class adds the Interceptors in the way:
>
> message.getInterceptorChain().add(new SAAJInInterceptor());
> ...
>
> Is this o.k.?
>
> -Josef
>
>
>
>
>
> Freeman Fang <fr...@gmail.com>
> 05.09.2008 11:01
> Bitte antworten an
> users@cxf.apache.org
>
>
> An
> users@cxf.apache.org
> Kopie
>
> Thema
> Re: WS-Client throws Exception in WSS4JInInterceptor
>
>
>
>
>
>
> One quick question, did you also add WSS4JOutInterceptor and
> SAAJOutInterceptor for your server side?
>
> Regards
> Freeman
>
> Josef.Eisele@bgs-ag.de wrote:
>
>> Hi,
>>
>> we use UsernameToken and Signature in our WS-Security Secenario.
>>
>> For the Client we add SAAJOutInterceptor (because of Apache CXF 2.0.x)
>>
> and
>
>> WSS4JOutInterceptor as additional OutInterceptors. ()
>> For the Server we add SAAJInInterceptor (because of Apache CXF 2.0.x),
>> WSS4JInInterceptor and ValidateUserTokenInterceptor(own Implementation)
>>
> as
>
>> InInterceptors.
>>
>> The client puts all necessary information into the request, as far as I
>> understand the data in my TCP/IP Monitor. The server processes the
>>
> Request
>
>> and I see no errors in WSSecurityEngine, WSS4jInInterceptor etc. The
>> server sends a HTTP/1.1 200 OK back to the client. And now the client
>> throws an error:
>>
>> INFO: Interceptor has thrown exception, unwinding now
>> org.apache.cxf.binding.soap.SoapFault: Request does not contain
required
>>
>
>
>> Security header.
>> at
>>
>>
>
org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.handleMessage(WSS4JInInterceptor.java:150)
>
>> at
>>
>>
>
org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.handleMessage(WSS4JInInterceptor.java:60)
>
>> at
>>
>>
>
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
>
>> at
>> org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:395)
>> at
>>
>>
>
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1932)
>
>> at
>>
>>
>
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1790)
>
>> at
>> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
>> at
>> org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:576)
>> at
>>
>>
>
org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
>
>> at
>>
>>
>
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
>
>> at
>>
> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
>
>> at
>>
> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
>
>> at
>> org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
>> at
>> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135)
>>
>> I checked the code of WSS4JInInterceptor and I see wsResult == null,
>> because
>> wsResult =
>> secEngine.processSecurityHeader(doc.getSOAPPart(), actor, cbHandler,
>> reqData
>> .getSigCrypto(), reqData.getDecCrypto());
>> is null as well.
>>
>> I don't understand why the client calls this InInterceptor ???
>>
>> -Josef
>> BGS Beratungsgesellschaft
>> Software Systemplanung AG Niederlassung Rhein/Main
>> Robert-Koch-Straße 41
>> 55129 Mainz
>> Fon: +49 (0) 6131 / 914-0
>> Fax: +49 (0) 6131 / 914-400
>> www.bgs-ag.de Geschäftssitz Mainz
>> Registergericht
>> Amtsgericht Mainz
>> HRB 62 50
>> Aufsichtsratsvorsitzender
>> Klaus Hellwig
>> Vorstand
>> Hanspeter Gau
>> Hermann Kiefer
>> Nils Manegold
>>
>>
>>
>>
>
>
>
> BGS Beratungsgesellschaft
> Software Systemplanung AG
>
>
>
>
> Niederlassung Rhein/Main
> Robert-Koch-Straße 41
> 55129 Mainz
> Fon: +49 (0) 6131 / 914-0
> Fax: +49 (0) 6131 / 914-400
> www.bgs-ag.de
> Geschäftssitz Mainz
> Registergericht
> Amtsgericht Mainz
> HRB 62 50
>
> Aufsichtsratsvorsitzender
> Klaus Hellwig
> Vorstand
> Hanspeter Gau
> Hermann Kiefer
> Nils Manegold
>
>
>
BGS Beratungsgesellschaft
Software Systemplanung AG Niederlassung Rhein/Main
Robert-Koch-Straße 41
55129 Mainz
Fon: +49 (0) 6131 / 914-0
Fax: +49 (0) 6131 / 914-400
www.bgs-ag.de Geschäftssitz Mainz
Registergericht
Amtsgericht Mainz
HRB 62 50
Aufsichtsratsvorsitzender
Klaus Hellwig
Vorstand
Hanspeter Gau
Hermann Kiefer
Nils Manegold
Re: Antwort: Re: WS-Client throws Exception in WSS4JInInterceptor
Posted by Freeman Fang <fr...@gmail.com>.
Hi Josef,
You should add WSS4JOutInterceptor and SAAJOutInterceptor for your
server side as well.
Regards
Freeman
Josef.Eisele@bgs-ag.de wrote:
> Hi Freeman,
>
> no as I understand we did not add OutInterceptors on the ServerSide:
>
> We use EJB3.0 and the WSImpl class looks like:
>
> @Stateless
> @WebService(name="MyWS", serviceName="MyService", portName="ZielPort")
> @InInterceptors(interceptors={ myPath.WSSecurityInterceptor" })
> public class MyWSImpl implements MyWSInterface {
>
> The myPath.WSSecurityInterceptor class adds the Interceptors in the way:
>
> message.getInterceptorChain().add(new SAAJInInterceptor());
> ...
>
> Is this o.k.?
>
> -Josef
>
>
>
>
>
> Freeman Fang <fr...@gmail.com>
> 05.09.2008 11:01
> Bitte antworten an
> users@cxf.apache.org
>
>
> An
> users@cxf.apache.org
> Kopie
>
> Thema
> Re: WS-Client throws Exception in WSS4JInInterceptor
>
>
>
>
>
>
> One quick question, did you also add WSS4JOutInterceptor and
> SAAJOutInterceptor for your server side?
>
> Regards
> Freeman
>
> Josef.Eisele@bgs-ag.de wrote:
>
>> Hi,
>>
>> we use UsernameToken and Signature in our WS-Security Secenario.
>>
>> For the Client we add SAAJOutInterceptor (because of Apache CXF 2.0.x)
>>
> and
>
>> WSS4JOutInterceptor as additional OutInterceptors. ()
>> For the Server we add SAAJInInterceptor (because of Apache CXF 2.0.x),
>> WSS4JInInterceptor and ValidateUserTokenInterceptor(own Implementation)
>>
> as
>
>> InInterceptors.
>>
>> The client puts all necessary information into the request, as far as I
>> understand the data in my TCP/IP Monitor. The server processes the
>>
> Request
>
>> and I see no errors in WSSecurityEngine, WSS4jInInterceptor etc. The
>> server sends a HTTP/1.1 200 OK back to the client. And now the client
>> throws an error:
>>
>> INFO: Interceptor has thrown exception, unwinding now
>> org.apache.cxf.binding.soap.SoapFault: Request does not contain required
>>
>
>
>> Security header.
>> at
>>
>>
> org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.handleMessage(WSS4JInInterceptor.java:150)
>
>> at
>>
>>
> org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.handleMessage(WSS4JInInterceptor.java:60)
>
>> at
>>
>>
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
>
>> at
>> org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:395)
>> at
>>
>>
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1932)
>
>> at
>>
>>
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1790)
>
>> at
>> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
>> at
>> org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:576)
>> at
>>
>>
> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
>
>> at
>>
>>
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
>
>> at
>>
> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
>
>> at
>>
> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
>
>> at
>> org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
>> at
>> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135)
>>
>> I checked the code of WSS4JInInterceptor and I see wsResult == null,
>> because
>> wsResult =
>> secEngine.processSecurityHeader(doc.getSOAPPart(), actor, cbHandler,
>> reqData
>> .getSigCrypto(), reqData.getDecCrypto());
>> is null as well.
>>
>> I don't understand why the client calls this InInterceptor ???
>>
>> -Josef
>> BGS Beratungsgesellschaft
>> Software Systemplanung AG Niederlassung Rhein/Main
>> Robert-Koch-Straße 41
>> 55129 Mainz
>> Fon: +49 (0) 6131 / 914-0
>> Fax: +49 (0) 6131 / 914-400
>> www.bgs-ag.de Geschäftssitz Mainz
>> Registergericht
>> Amtsgericht Mainz
>> HRB 62 50
>> Aufsichtsratsvorsitzender
>> Klaus Hellwig
>> Vorstand
>> Hanspeter Gau
>> Hermann Kiefer
>> Nils Manegold
>>
>>
>>
>>
>
>
>
> BGS Beratungsgesellschaft
> Software Systemplanung AG
>
>
>
>
> Niederlassung Rhein/Main
> Robert-Koch-Straße 41
> 55129 Mainz
> Fon: +49 (0) 6131 / 914-0
> Fax: +49 (0) 6131 / 914-400
> www.bgs-ag.de
> Geschäftssitz Mainz
> Registergericht
> Amtsgericht Mainz
> HRB 62 50
>
> Aufsichtsratsvorsitzender
> Klaus Hellwig
> Vorstand
> Hanspeter Gau
> Hermann Kiefer
> Nils Manegold
>
>
>
Antwort: Re: WS-Client throws Exception in WSS4JInInterceptor
Posted by Jo...@bgs-ag.de.
Hi Freeman,
no as I understand we did not add OutInterceptors on the ServerSide:
We use EJB3.0 and the WSImpl class looks like:
@Stateless
@WebService(name="MyWS", serviceName="MyService", portName="ZielPort")
@InInterceptors(interceptors={ myPath.WSSecurityInterceptor" })
public class MyWSImpl implements MyWSInterface {
The myPath.WSSecurityInterceptor class adds the Interceptors in the way:
message.getInterceptorChain().add(new SAAJInInterceptor());
...
Is this o.k.?
-Josef
Freeman Fang <fr...@gmail.com>
05.09.2008 11:01
Bitte antworten an
users@cxf.apache.org
An
users@cxf.apache.org
Kopie
Thema
Re: WS-Client throws Exception in WSS4JInInterceptor
One quick question, did you also add WSS4JOutInterceptor and
SAAJOutInterceptor for your server side?
Regards
Freeman
Josef.Eisele@bgs-ag.de wrote:
> Hi,
>
> we use UsernameToken and Signature in our WS-Security Secenario.
>
> For the Client we add SAAJOutInterceptor (because of Apache CXF 2.0.x)
and
> WSS4JOutInterceptor as additional OutInterceptors. ()
> For the Server we add SAAJInInterceptor (because of Apache CXF 2.0.x),
> WSS4JInInterceptor and ValidateUserTokenInterceptor(own Implementation)
as
> InInterceptors.
>
> The client puts all necessary information into the request, as far as I
> understand the data in my TCP/IP Monitor. The server processes the
Request
> and I see no errors in WSSecurityEngine, WSS4jInInterceptor etc. The
> server sends a HTTP/1.1 200 OK back to the client. And now the client
> throws an error:
>
> INFO: Interceptor has thrown exception, unwinding now
> org.apache.cxf.binding.soap.SoapFault: Request does not contain required
> Security header.
> at
>
org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.handleMessage(WSS4JInInterceptor.java:150)
> at
>
org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.handleMessage(WSS4JInInterceptor.java:60)
> at
>
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
> at
> org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:395)
> at
>
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1932)
> at
>
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1790)
> at
> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
> at
> org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:576)
> at
>
org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
> at
>
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
> at
org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
> at
org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
> at
> org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
> at
> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135)
>
> I checked the code of WSS4JInInterceptor and I see wsResult == null,
> because
> wsResult =
> secEngine.processSecurityHeader(doc.getSOAPPart(), actor, cbHandler,
> reqData
> .getSigCrypto(), reqData.getDecCrypto());
> is null as well.
>
> I don't understand why the client calls this InInterceptor ???
>
> -Josef
> BGS Beratungsgesellschaft
> Software Systemplanung AG Niederlassung Rhein/Main
> Robert-Koch-Straße 41
> 55129 Mainz
> Fon: +49 (0) 6131 / 914-0
> Fax: +49 (0) 6131 / 914-400
> www.bgs-ag.de Geschäftssitz Mainz
> Registergericht
> Amtsgericht Mainz
> HRB 62 50
> Aufsichtsratsvorsitzender
> Klaus Hellwig
> Vorstand
> Hanspeter Gau
> Hermann Kiefer
> Nils Manegold
>
>
>
BGS Beratungsgesellschaft
Software Systemplanung AG
Niederlassung Rhein/Main
Robert-Koch-Straße 41
55129 Mainz
Fon: +49 (0) 6131 / 914-0
Fax: +49 (0) 6131 / 914-400
www.bgs-ag.de
Geschäftssitz Mainz
Registergericht
Amtsgericht Mainz
HRB 62 50
Aufsichtsratsvorsitzender
Klaus Hellwig
Vorstand
Hanspeter Gau
Hermann Kiefer
Nils Manegold