Hi Jaime,

What version of CXF are you using? There is a better way to do this
than via a CXF interceptor from CXF 2.4.0 onwards. Trust validation is
done by WSS4J via the SignatureTrustValidator, which is given the
certificate used to verify the signature, and verifies trust via the
CertPath API. You can simply plug your own Validator implementation in
here instead. See this blog entry for more details:

http://coheigea.blogspot.com/2011/06/custom-token-validation-in-apache-cxf.html

Colm.

On Mon, Jul 18, 2011 at 7:30 PM, Jaime Hablutzel Egoavil
<[email protected]> wrote:
> Hi I have a web service exposed with cxf with this wsdl:
>
> <?xml version='1.0' encoding='UTF-8'?><wsdl:
> definitions name="CXFLibraryImplService" targetNamespace="
> http://service2.ws.service.kprtech.com/"; xmlns:ns1="
> http://cxf.apache.org/bindings/xformat"; xmlns:soap="
> http://schemas.xmlsoap.org/wsdl/soap/"; xmlns:tns="
> http://service2.ws.service.kprtech.com/"; xmlns:wsdl="
> http://schemas.xmlsoap.org/wsdl/"; xmlns:xsd="
> http://www.w3.org/2001/XMLSchema";>
>  <wsdl:types>
> <xs:schema elementFormDefault="unqualified" targetNamespace="
> http://service2.ws.service.kprtech.com/"; version="1.0" xmlns:ns1="
> http://cxf.apache.org/bindings/xformat"; xmlns:soap="
> http://schemas.xmlsoap.org/wsdl/soap/"; xmlns:tns="
> http://service2.ws.service.kprtech.com/"; xmlns:wsdl="
> http://schemas.xmlsoap.org/wsdl/"; xmlns:xs="http://www.w3.org/2001/XMLSchema";
> xmlns:xsd="http://www.w3.org/2001/XMLSchema";>
> <xs:element name="sayHello" type="tns:sayHello" />
> <xs:element name="sayHelloResponse" type="tns:sayHelloResponse" />
> <xs:complexType name="sayHello">
> <xs:sequence>
> <xs:element minOccurs="0" name="arg0" type="xs:string" />
> </xs:sequence>
> </xs:complexType>
> <xs:complexType name="sayHelloResponse">
> <xs:sequence>
> <xs:element minOccurs="0" name="return" type="xs:string" />
> </xs:sequence>
> </xs:complexType>
> </xs:schema>
>  </wsdl:types>
>  <wsdl:message name="sayHello">
>    <wsdl:part element="tns:sayHello" name="parameters">
>    </wsdl:part>
>  </wsdl:message>
>  <wsdl:message name="sayHelloResponse">
>    <wsdl:part element="tns:sayHelloResponse" name="parameters">
>    </wsdl:part>
>  </wsdl:message>
>  <wsdl:portType name="Library">
>    <wsdl:operation name="sayHello">
>      <wsdl:input message="tns:sayHello" name="sayHello">
>    </wsdl:input>
>      <wsdl:output message="tns:sayHelloResponse" name="sayHelloResponse">
>    </wsdl:output>
>    </wsdl:operation>
>  </wsdl:portType>
>  <wsdl:binding name="CXFLibraryImplServiceSoapBinding" type="tns:Library">
>    <wsp:PolicyReference URI="#SignEncr" xmlns:wsp="
> http://schemas.xmlsoap.org/ws/2004/09/policy"; />
>    <soap:binding style="document" transport="
> http://schemas.xmlsoap.org/soap/http"; />
>    <wsdl:operation name="sayHello">
>      <soap:operation soapAction="" style="document" />
>      <wsdl:input name="sayHello">
>        <soap:body use="literal" />
>      </wsdl:input>
>      <wsdl:output name="sayHelloResponse">
>        <soap:body use="literal" />
>      </wsdl:output>
>    </wsdl:operation>
>  </wsdl:binding>
>  <wsdl:service name="CXFLibraryImplService">
>    <wsdl:port binding="tns:CXFLibraryImplServiceSoapBinding"
> name="CXFLibraryImplPort">
>      <soap:address location="
> http://localhost:8888/domicilios/services/service2"; />
>    </wsdl:port>
>  </wsdl:service>
>    <wsp:Policy wsu:Id="SignEncr" 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
> ">
>
>    <wsp:ExactlyOne>
>      <wsp:All>
>        <sp:AsymmetricBinding xmlns:sp="
> http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702";>
>          <wsp:Policy>
>            <sp:InitiatorToken>
>              <wsp:Policy>
>                <sp:X509Token sp:IncludeToken="
> http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/AlwaysToRecipient
> ">
>                  <wsp:Policy>
>                    <sp:RequireThumbprintReference />
>                      <sp:WssX509V1Token10 />
>                  </wsp:Policy>
>                </sp:X509Token>
>              </wsp:Policy>
>            </sp:InitiatorToken>
>            <sp:RecipientToken>
>              <wsp:Policy>
>                <sp:X509Token sp:IncludeToken="
> http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/Never
> ">
>                  <wsp:Policy>
>                    <sp:RequireThumbprintReference />
>                          <sp:WssX509V3Token10 />
>                  </wsp:Policy>
>                </sp:X509Token>
>              </wsp:Policy>
>            </sp:RecipientToken>
>            <sp:AlgorithmSuite>
>              <wsp:Policy>
>                <sp:TripleDesRsa15 />
>              </wsp:Policy>
>            </sp:AlgorithmSuite>
>            <sp:Layout>
>              <wsp:Policy>
>                <sp:Strict />
>              </wsp:Policy>
>            </sp:Layout>
>            <sp:IncludeTimestamp />
>            <sp:OnlySignEntireHeadersAndBody />
>          </wsp:Policy>
>        </sp:AsymmetricBinding>
>          <sp:Wss10 xmlns:sp="
> http://schemas.xmlsoap.org/ws/2005/07/securitypolicy";>
>                <wsp:Policy>
>                    <sp:MustSupportRefKeyIdentifier />
>                    <sp:MustSupportRefIssuerSerial />
>                </wsp:Policy>
>            </sp:Wss10>
>        <sp:SignedParts xmlns:sp="
> http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702";>
>          <sp:Body />
>        </sp:SignedParts>
>
>      </wsp:All>
>    </wsp:ExactlyOne>
>  </wsp:Policy>
> </wsdl:definitions>
>
>
> And I want to be able to get the certificate in a custom intereceptor to be
> able to pass it to spring security session context.
> Another thing I want is to be able to override the default behaviour of cxf
> trying to validate the certPath, because I want to do this by my own because
> certificate aren't in a .jsk keystore but in a database.
>
> I have read that I need a second interceptor, but how to set an interceptor
> and give it lower precedence??
>
> Thanks.
>
>
>
> --
> Jaime Hablutzel - 9-9956-3299
>
> (tildes omitidas intencionalmente)
>



-- 
Colm O hEigeartaigh

http://coheigea.blogspot.com/
Talend - http://www.talend.com

Reply via email to