Is there a reason you have two PolicyReferences? > <wsp:PolicyReference URI="#policy"></wsp:PolicyReference> > <wsp:PolicyReference URI="#policy"></wsp:PolicyReference>
Try removing one. If this doesn't work then try moving the PolicyReference to the binding element as Xilai suggested. Colm. On Thu, Apr 25, 2013 at 6:54 AM, XiLai Dai <[email protected]> wrote: > Could you try adding <wsp:PolicyReference> to the <wsdl:binding> element > in the WSDL file? And what your callback handler class looks like? > > Regards. > Xilai > -----Original Message----- > From: simonlmartin [mailto:[email protected]] > Sent: Thursday, April 25, 2013 6:11 AM > To: [email protected] > Subject: Plain text password ws-policy > > Hi, > > I have been trying for a few days to get a WS-POLICY to function in my cxf > code. I am using version 2.7.4 of cxf and have attached the policy using an > annotation to my java first code. I want to support a username and plain > text password and have implemented a validator which subclasses > UsernameTokenValidator in order to authorize the user. This code is called > and seems to work but I always get an error saying "These policy > alternatives can not be satisfied: > { > http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702}SupportingTokens > {http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702}UsernameToken" > > The policy I am using is one which I found in one of the cxf tests and I > have pasted it below along with the generated wsdl. I have also pasted my > SOAP request that I am using to test and the response I am receiving from > cxf. > > I'd appreciate any help that anyone can give me. > > Thanks, > > Simon. > ------------------------ws-policy------------------------------ > <?xml version="1.0" encoding="UTF-8" ?> > <wsp:Policy wsu:Id="policy" xmlns:wsp="http://www.w3.org/ns/ws-policy" > > xmlns:wsu=" > http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd > " > xmlns:sp=" > http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702"> > <sp:SupportingTokens> > <wsp:Policy> > <sp:UsernameToken > > sp:IncludeToken=" > http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/AlwaysToRecipient > "> > <wsp:Policy/> > </sp:UsernameToken> > </wsp:Policy> > </sp:SupportingTokens> > </wsp:Policy> > > > ------------------------WSDL Generated------------------------ > > <?xml version="1.0" ?><wsdl:definitions > xmlns:xsd="http://www.w3.org/2001/XMLSchema" > xmlns:wsp="http://www.w3.org/ns/ws-policy" > xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" > xmlns:tns="http://test.example.com/semanticServices" > xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" > xmlns:ns1="http://schemas.xmlsoap.org/soap/http" > name="semanticServicesIcdUpdateService" > targetNamespace="http://test.example.com/semanticServices"> > <wsdl:types> > <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" > xmlns:tns="http://test.example.com/semanticServices" > xmlns:ns0="http://icdupdateservice.ontology" > attributeFormDefault="qualified" elementFormDefault="qualified" > targetNamespace="http://test.example.com/semanticServices"> > <xsd:import namespace="http://icdupdateservice.ontology"></xsd:import> > <xsd:complexType name="ArrayOfString"> > <xsd:sequence> > <xsd:element maxOccurs="unbounded" minOccurs="0" name="string" > nillable="true" type="xsd:string"></xsd:element> > </xsd:sequence> > </xsd:complexType> > <xsd:element name="updateICD" type="tns:updateICD"></xsd:element> > <xsd:complexType name="updateICD"> > <xsd:sequence> > <xsd:element minOccurs="0" name="ICDUpdateServiceRequest" > type="ns0:ArrayOfICDUpdateServiceRequest"></xsd:element> > </xsd:sequence> > </xsd:complexType> > <xsd:element name="updateICDResponse" > type="tns:updateICDResponse"></xsd:element> > <xsd:complexType name="updateICDResponse"> > <xsd:sequence> > <xsd:element minOccurs="0" name="updateICDResponse" > type="ns0:ArrayOfICDUpdateServiceResponse"></xsd:element> > </xsd:sequence> > </xsd:complexType> > </xsd:schema> > <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" > xmlns:tns="http://icdupdateservice.ontology" > xmlns:ns1="http://test.example.com/semanticServices" > xmlns:ns0="http://jastor.rdf.opentest.org" > attributeFormDefault="qualified" > elementFormDefault="qualified" > targetNamespace="http://icdupdateservice.ontology"> > <xsd:import > namespace="http://test.example.com/semanticServices"></xsd:import> > <xsd:import namespace="http://jastor.rdf.opentest.org"></xsd:import> > <xsd:complexType name="ArrayOfICDUpdateServiceRequest"> > <xsd:sequence> > <xsd:element maxOccurs="unbounded" minOccurs="0" > name="ICDUpdateServiceRequest" nillable="true" > type="tns:ICDUpdateServiceRequest"></xsd:element> > </xsd:sequence> > </xsd:complexType> > <xsd:complexType name="ICDUpdateServiceResponse"> > <xsd:complexContent> > <xsd:extension base="ns0:Thing"> > <xsd:sequence> > <xsd:element minOccurs="0" name="failureMessage" > type="xsd:string"></xsd:element> > <xsd:element minOccurs="0" name="icdIdentifier" > type="xsd:string"></xsd:element> > <xsd:element minOccurs="0" name="updateStatus" > type="xsd:boolean"></xsd:element> > </xsd:sequence> > </xsd:extension> > </xsd:complexContent> > </xsd:complexType> > <xsd:complexType name="ICDUpdateServiceRequest"> > <xsd:complexContent> > <xsd:extension base="ns0:Thing"> > <xsd:sequence> > <xsd:element minOccurs="0" name="applicationName" > type="xsd:string"></xsd:element> > <xsd:element minOccurs="0" name="businessObject" > type="ns1:ArrayOfString"></xsd:element> > <xsd:element minOccurs="0" name="icdIdentifier" > type="xsd:string"></xsd:element> > <xsd:element minOccurs="0" name="interfacePurpose" > type="xsd:string"></xsd:element> > <xsd:element minOccurs="0" name="userID" > type="xsd:string"></xsd:element> > </xsd:sequence> > </xsd:extension> > </xsd:complexContent> > </xsd:complexType> > <xsd:complexType name="ArrayOfICDUpdateServiceResponse"> > <xsd:sequence> > <xsd:element maxOccurs="unbounded" minOccurs="0" > name="ICDUpdateServiceResponse" nillable="true" > type="tns:ICDUpdateServiceResponse"></xsd:element> > </xsd:sequence> > </xsd:complexType> > </xsd:schema> > <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" > xmlns:tns="http://jastor.rdf.opentest.org" > xmlns:ns0="http://rdf.opentest.org" attributeFormDefault="qualified" > elementFormDefault="qualified" > targetNamespace="http://jastor.rdf.opentest.org"> > <xsd:import namespace="http://rdf.opentest.org"></xsd:import> > <xsd:complexType name="Thing"> > <xsd:sequence> > <xsd:element minOccurs="0" name="URI" nillable="true" > type="xsd:string"></xsd:element> > <xsd:element minOccurs="0" name="typeURI" nillable="true" > type="ns0:URI"></xsd:element> > </xsd:sequence> > </xsd:complexType> > </xsd:schema> > <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" > xmlns:tns="http://rdf.opentest.org" attributeFormDefault="qualified" > elementFormDefault="qualified" targetNamespace="http://rdf.opentest.org"> > <xsd:complexType name="URI"> > <xsd:sequence> > <xsd:element minOccurs="0" name="localName" nillable="true" > type="xsd:string"></xsd:element> > <xsd:element minOccurs="0" name="namespace" nillable="true" > type="xsd:string"></xsd:element> > </xsd:sequence> > </xsd:complexType> > </xsd:schema> > </wsdl:types> > <wsdl:message name="updateICDResponse"> > <wsdl:part element="tns:updateICDResponse" name="parameters"> > </wsdl:part> > </wsdl:message> > <wsdl:message name="updateICD"> > <wsdl:part element="tns:updateICD" name="parameters"> > </wsdl:part> > </wsdl:message> > <wsdl:portType name="IcdUpdate"> > <wsdl:operation name="updateICD"> > <wsdl:input message="tns:updateICD" name="updateICD"> > </wsdl:input> > <wsdl:output message="tns:updateICDResponse" > name="updateICDResponse"> > </wsdl:output> > </wsdl:operation> > </wsdl:portType> > <wsdl:binding name="semanticServicesIcdUpdateServiceSoapBinding" > type="tns:IcdUpdate"> > <soap:binding style="document" > transport="http://schemas.xmlsoap.org/soap/http"></soap:binding> > <wsdl:operation name="updateICD"> > <soap:operation soapAction="" style="document"></soap:operation> > <wsdl:input name="updateICD"> > <soap:body use="literal"></soap:body> > </wsdl:input> > <wsdl:output name="updateICDResponse"> > <soap:body use="literal"></soap:body> > </wsdl:output> > </wsdl:operation> > </wsdl:binding> > <wsdl:service name="semanticServicesIcdUpdateService"> > <wsdl:port binding="tns:semanticServicesIcdUpdateServiceSoapBinding" > name="IcdUpdatePort"> > <soap:address > location="http://127.0.0.1/ws-soap/ICDUpdateService/ICDUpdateService > "></soap:address> > </wsdl:port> > <wsp:PolicyReference URI="#policy"></wsp:PolicyReference> > <wsp:PolicyReference URI="#policy"></wsp:PolicyReference> > </wsdl:service> > <wsp:Policy > xmlns:wsu=" > http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd > " > xmlns:wsp="http://www.w3.org/ns/ws-policy" > xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702" > wsu:Id="policy"> > <sp:SupportingTokens> > <wsp:Policy> > <sp:UsernameToken > sp:IncludeToken=" > http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/AlwaysToRecipient > "> > <wsp:Policy></wsp:Policy> > </sp:UsernameToken> > </wsp:Policy> > </sp:SupportingTokens> > </wsp:Policy> > </wsdl:definitions> > > ----------------------SOAP request------------------------------------- > <soapenv:Envelope xmlns:icd="http://icdupdateservice.ontology" > xmlns:jas="http://jastor.rdf.opentest.org" > xmlns:rdf="http://rdf.opentest.org" > xmlns:sem="http://test.example.com/semanticServices" > xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> > <soapenv:Header><wsse:Security soapenv:mustUnderstand="1" > xmlns:wsse=" > http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd > " > xmlns:wsu=" > http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd > "><wsse:UsernameToken > > wsu:Id="UsernameToken-1"><wsse:Username>sysadmin</wsse:Username><wsse:Password > Type=" > http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText > ">123</wsse:Password><wsse:Nonce > EncodingType=" > http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary > ">StjeeU9EtncKrAnc3wsXxA==</wsse:Nonce><wsu:Created>2013-04-24T21:50:40.770Z</wsu:Created></wsse:UsernameToken></wsse:Security></soapenv:Header> > <soapenv:Body> > <sem:updateICD> > > <sem:ICDUpdateServiceRequest> > > <icd:ICDUpdateServiceRequest> > <icd:applicationName>test</icd:applicationName> > > <icd:businessObject> > > <sem:string>test bo</sem:string> > </icd:businessObject> > > > <icd:icdIdentifier> > http://test.example.com/CCS/HumanActor/d47767f4-26b6-4b7b-9f1e-a83303e2157f > </icd:icdIdentifier> > > <icd:interfacePurpose>aie</icd:interfacePurpose> > > <icd:userID>lee</icd:userID> > </icd:ICDUpdateServiceRequest> > </sem:ICDUpdateServiceRequest> > </sem:updateICD> > </soapenv:Body> > </soapenv:Envelope> > > --------------------------------SOAP > response-------------------------------------------- > <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://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702}SupportingTokens > {http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702}UsernameToken > </faultstring> > </soap:Fault> > </soap:Body> > </soap:Envelope> > > > > > > -- > View this message in context: > http://cxf.547215.n5.nabble.com/Plain-text-password-ws-policy-tp5726729.html > Sent from the cxf-user mailing list archive at Nabble.com. > -- Colm O hEigeartaigh Talend Community Coder http://coders.talend.com
