Or at least, could someone tell me how to add a custom interceptor after WSS4J interceptor to access the signing certificate of a wss signed soap message?
On Mon, Jul 18, 2011 at 1: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) > -- Jaime Hablutzel - 9-9956-3299 (tildes omitidas intencionalmente)
