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 <[EMAIL PROTECTED]> 
05.09.2008 16:34
Bitte antworten an
[email protected]


An
[email protected]
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

[EMAIL PROTECTED] 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 <[EMAIL PROTECTED]> 
> 05.09.2008 11:31
> Bitte antworten an
> [email protected]
>
>
> An
> [email protected]
> 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
>
> [EMAIL PROTECTED] 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 <[EMAIL PROTECTED]> 
>> 05.09.2008 11:01
>> Bitte antworten an
>> [email protected]
>>
>>
>> An
>> [email protected]
>> 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
>>
>> [EMAIL PROTECTED] 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 

  

Reply via email to