My namespaces look like:

xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy";
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd";
xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy";



On Tue, Oct 23, 2012 at 1:12 PM, Jason Pell <[email protected]> wrote:
> Hi,
>
> I am debugging 2.7.1 trunk to try and figure out why my
> RequireClientCertificate="true" appears to be ignored.
>
> My policy looks like:
>
> <wsp:Policy wsu:Id="SslWithUsernamePasswordToken">
>                 <wsp:ExactlyOne>
>                         <wsp:All>
>                                 <sp:TransportBinding>
>                                         <wsp:Policy>
>                                                 <sp:TransportToken>
>                                                         <wsp:Policy>
>                                                                 
> <sp:HttpsToken RequireClientCertificate="true" />
>                                                         </wsp:Policy>
>                                                 </sp:TransportToken>
>                                                 <sp:AlgorithmSuite>
>                                                         <wsp:Policy>
>                                                                 <sp:Basic256 
> />
>                                                         </wsp:Policy>
>                                                 </sp:AlgorithmSuite>
>
>                                                 <sp:IncludeTimestamp />
>                                         </wsp:Policy>
>                                 </sp:TransportBinding>
>
>                         </wsp:All>
>                 </wsp:ExactlyOne>
>         </wsp:Policy>
>
> I can see in the HttpsTokenInInterceptor that because there is no
> client token, the AssertionInfo is not being asserted, which I assumes
> means
> it should raise a policy error.
>
> However in the TransportBindingPolicyValidator it overrides this and
> actually sets the AssertionInfo that was not asserted to true!
>
> If I disable the second line, I get an exception because no client
> certificate is present.
>
> Index: 
> src/main/java/org/apache/cxf/ws/security/wss4j/policyvalidators/TransportBindingPolicyValidator.java
> ===================================================================
> --- 
> src/main/java/org/apache/cxf/ws/security/wss4j/policyvalidators/TransportBindingPolicyValidator.java
>         (revision
> 1400641)
> +++ 
> src/main/java/org/apache/cxf/ws/security/wss4j/policyvalidators/TransportBindingPolicyValidator.java
>         (working
> copy)
> @@ -68,7 +68,7 @@
>              // HttpsToken is validated by the HttpsTokenInterceptorProvider
>              if (binding.getTransportToken() != null) {
>                  assertPolicy(aim, binding.getTransportToken());
> -                assertPolicy(aim, binding.getTransportToken().getToken());
> +            //    assertPolicy(aim, binding.getTransportToken().getToken());
>              }
>
>              // Check the AlgorithmSuite
>
> This is obviously not a complete patch, but it does I hope prove that
> there is an issue with client cert validation.  I shall open up a jira
> for this, but I don't feel confident enough to try and
> provide a patch without guidance as this is definately an area I am
> not very familiar with.

Reply via email to