CXF does not support "SecureConversationTokens" when they are defined as a
"SupportingToken" with no accompanying security binding. If the sole
use-case of your service is just to check that the SecurityContextToken is
in the security header of the request, then it is pretty easy to write your
own CXF interceptor to check this and assert the appropriate policies.

Colm.

On Thu, Oct 23, 2014 at 2:16 PM, Christofer Steingrefer <
[email protected]> wrote:

> Hey,
>
> i have some problems, hope you can help me.
>
> I'm trying to implement my Business Service with cxf, but have some
> problems with policies.
>
> This is the policy definition from my wsdl:
> <wsp:Policy wsu:Id="AuthSecurityPolicy">
>         <wsp:ExactlyOne>
>             <wsp:All>
>                 <sp:SupportingTokens>
>                     <wsp:Policy>
>                         <sp:SecureConversationToken
>                             sp:IncludeToken="
>
> http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysToRecipient
> ">
>                             <sp:Issuer>
>                                 <wsa:Address>http://localhost:8080/STS
> </wsa:Address>
>                             </sp:Issuer>
>                         </sp:SecureConversationToken>
>                     </wsp:Policy>
>                 </sp:SupportingTokens>
>             </wsp:All>
>         </wsp:ExactlyOne>
>     </wsp:Policy>
>
> and this is my Soap-Request:
> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/
> "
> xmlns:doub="http://www.example.org/schema/DoubleIt";>
>    <soapenv:Header>
> <wsse:Security xmlns:wsse="
>
> http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd
> ">
> <wsc:SecurityContextToken wsu:Id="sctId-C369774BE974CD565514139821204088"
> xmlns:wsc="http://schemas.xmlsoap.org/ws/2005/02/sc"; xmlns:wsu="
>
> http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd
> ">
>
> <wsc:Identifier>bipro:C369774BE974CD565514139821204087</wsc:Identifier>
>           </wsc:SecurityContextToken>
> </wsse:Security>
>    </soapenv:Header>
>    <soapenv:Body>
> ..................
>    </soapenv:Body>
> </soapenv:Envelope>
>
> I always get a Soap-Fault back:
> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";>
>    <soap:Body>
>       <soap:Fault>
>          <faultcode>soap:Server</faultcode>
>          <faultstring>These policy alternatives can not be satisfied:
> {
>
> http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysToRecipient}SupportingTokens
> {
>
> http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysToRecipient}SecureConversationToken
> </faultstring>
>       </soap:Fault>
>    </soap:Body>
> </soap:Envelope>
>
> Do you know why?
> I'm using cxf with version 2.7.11.
>
> Thanks,
> Chris
>



-- 
Colm O hEigeartaigh

Talend Community Coder
http://coders.talend.com

Reply via email to