Ich wollte Nonce und Created Element in WSSE Security Header mit CXF injizieren.cxf Einstellung Nonce und erstellt in SOAP wsse Header
<soapenv:Header>
<wsse:Security 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-6">
<wsse:Username>==Username==</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">==Password==</wsse:Password>
<wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">===EncodeString===</wsse:Nonce>
<wsu:Created>2016-05-20T10:51:24.795Z</wsu:Created>
</wsse:UsernameToken>
</wsse:Security>
</soapenv:Header>
Ich verwende org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor Klasse, um die CXF Header zu füllen. Aber das füllt nur wsse: Benutzername und wsse: Passwort. Ich wollte wsse: Nonce und wsse: Erstellt auch in meinem Header. Welchen Ansatz sollte ich verwenden, um Elemente in meinem Security-Header zu füllen?
Unten ist der Code, den ich diese aufzufüllen bin mit,
Map<String, Object> properties = new HashMap<String, Object>();
properties.put(WSHandlerConstants.ACTION, "UsernameToken");
properties.put(WSHandlerConstants.USER, "userName-Text");
properties.put(WSHandlerConstants.PASSWORD_TYPE, "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText");
properties.put(WSHandlerConstants.MUST_UNDERSTAND, "true");
properties.put(WSHandlerConstants.PW_CALLBACK_REF, new CustomWSPasswordCallback(passwordText));
WSS4JOutInterceptor wss4jOutInterceptor = new WSS4JOutInterceptor();
wss4jOutInterceptor.setProperties(properties);
ich Ihre Hilfe zu schätzen wissen.
Danke, Ashish Mishra
Vielen Dank für Ihre Antwort. Mein WSS4J <2.0 also oben hat bei mir nicht funktioniert. Aber dein Vorschlag hilft mir, die Dinge herauszufinden. Ich schreibe meine Antwort wie folgt. Vielen Dank! –