2016-04-20 10 views
1

Ich arbeite an CXF-basierten Diensten und Clients. Und implementiert Benutzername Passwort Sicherheit auf der Serverseite mit Richtliniendatei in WSDL definiert. Hier ist die Konfiguration:Fehler: Benutzername Token Erstellt Richtlinie nicht erzwungen

<wsp:Policy wsu:Id="policy.Security" xmlns:wsp="http://www.w3.org/ns/ws-policy"> 
    <wsp:ExactlyOne> 
    <wsp:All> 
     <sp:SupportingTokens> 
      <wsp:Policy> 
       <sp:UsernameToken 
         sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/AlwaysToRecipient" 
        wsp:Optional="false" wsp:Ignorable="false"> 
        <wsp:Policy> 
         <sp:WssUsernameToken10 /> 
         <sp13:Created /> 
         <sp13:Nonce /> 
        </wsp:Policy> 
       </sp:UsernameToken> 
      </wsp:Policy> 
     </sp:SupportingTokens> 
    </wsp:All> 
    </wsp:ExactlyOne> 
</wsp:Policy> 

Client-Konfiguration:

<jaxws:client 
    xmlns:tns="http://ws.soa.com/service/offer/XYZ/" 
    name="XYZPort" address="${xyz.endPoint}" 
    serviceClass="com.soa.ws.service.offer.XYZ.XYZPortType" 
    wsdlLocation="${xyz.wsdlLocation}" serviceName="tns:xyzService" > 
    <jaxws:properties> 
     <entry key="ws-security.username" value="${xyz.auth.username}" /> 
     <entry key="ws-security.callback-handler" value-ref="xyzPasswordCallback" /> 
    </jaxws:properties> 
    <jaxws:inInterceptors> 
    <ref bean="logInBound" /> 
    </jaxws:inInterceptors> 
    <jaxws:outInterceptors> 
    <ref bean="logOutBound" />  
    </jaxws:outInterceptors> 
</jaxws:client> 

unten Fehler Empfangen auf den Versuch, den Dienst zu treffen:

Verursacht durch: javax.xml.ws.soap.SOAPFaultException: Diese Richtlinienalternativen können nicht erfüllt werden: {http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702} UsernameToken: Benutzername Token Erstellte Richtlinie nicht erzwungen bei org.apache.cxf.jaxws.JaxWsClientProxy.invoke (JaxWsClientProxy.java:157)

Kann jemand Anweisungen geben, wie man das löst?

+0

Sieht aus wie es erfordert wsse: erstellt und wsse: Nonce in der Seife Anfrage. Ich bin mir nicht sicher, wie ich sie bevölkern soll. – RSH

+0

Beide sind Anti-Replay-Angriffsmassnahmen. 'wsu: Created' ist ein Anforderungs-Zeitstempel und' wsse: Nonce' ist eine resquest-eindeutige ID. Ihr Format ist in der Dokumentation beschrieben: http://docs.oasis-open.org/ws-sx/ws-securitypolicy/ – Yuri

Antwort