2012/4/17 Philippe A. <futhar...@gmail.com>

> Hello,
>
> I am writing a web service and a corresponding client. If I put my
> username token inside a SignedEncryptedSupportingTokens assertion, the
> server will systematically produce an exception upon receiving requests.:
>
> org.apache.axis2.AxisFault: Unexpected signature
>         at
> org.apache.rampart.handler.RampartReceiver.setFaultCodeAndThrowAxisFault(RampartReceiver.java:180)
>         at
> org.apache.rampart.handler.RampartReceiver.invoke(RampartReceiver.java:99)
>         at org.apache.axis2.engine.Phase.invoke(Phase.java:318)
>         at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:254)
>         at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:160)
>         at
> org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:173)
>         at
> org.apache.axis2.transport.http.HTTPWorker.service(HTTPWorker.java:266)
>         at
> org.apache.axis2.transport.http.server.AxisHttpService.doService(AxisHttpService.java:281)
>         at
> org.apache.axis2.transport.http.server.AxisHttpService.handleRequest(AxisHttpService.java:187)
>         at
> org.apache.axis2.transport.http.server.HttpServiceProcessor.run(HttpServiceProcessor.java:82)
>         at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>         at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>         at java.lang.Thread.run(Thread.java:662)
> Caused by: org.apache.rampart.RampartException: Unexpected signature
>         at
> org.apache.rampart.PolicyBasedResultsValidator.validateEncrSig(PolicyBasedResultsValidator.java:226)
>         at
> org.apache.rampart.PolicyBasedResultsValidator.validate(PolicyBasedResultsValidator.java:132)
>         at org.apache.rampart.RampartEngine.process(RampartEngine.java:308)
>         at
> org.apache.rampart.handler.RampartReceiver.invoke(RampartReceiver.java:92)
>         ... 11 more
>
> Since Rampart seems to be always encrypting the username token, I decided
> to use SignedSupportingTokens for now. But I don't really like doing that
> as I feel my policy risks not producing the desired result if I change
> client technology.
>
> This is with rampart 1.5.2 + axis 1.5.6.
>

The ws-securitypolicy 1.2 standard seem to allow the username token to be
encrypted even if it is listed as a sp:SupportingToken.

760 When the UsernameToken is to be encrypted it SHOULD be listed as a
761 SignedEncryptedSupportingToken (Section 8.5),
EndorsingEncryptedSupportingToken (Section 8.6) or
762 SignedEndorsingEncryptedSupportingToken (Section 8.7).

3807 3. A wsse:UsernameToken may be encrypted when a transport binding is
not being used
3808 (Section 5.3.1).

However, I strongly believe that listing the username token under
sp:SignedEncryptedSupportingToken should not fault.

-- 
Philippe

Reply via email to