Ich muss einen Jax-WS-Client implementieren. HierRichtlinie zum Signieren und Verschlüsseln
ist, was die Anbieter docs sagen über Sicherheit
Derzeit nutzen wir die SOAP Message Security Version 1.0-Spezifikation bei http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0.pdf
Dieser Standard verwendet zwei anderen von W3C Norm:
XMLENC (http://www.w3.org/TR/2002/REC-xmlenc-core-20021210/)
und XMLDSIG (http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/)Für die Unterschrift, Eine "SecurityTokenReference" mit einer direkten "Referenz", die "URI" und "valueType" von X509 angibt, ist obligatorisch. Für die Verschlüsselung, empfehlen wir es auch, aber wir unterstützen auch in der Reihenfolge Präferenz eine Referenz zu einem keyIdentifier, einem X509IssuerSerial oder keyName.
Der verschlüsselte und signierte Block muss das "body" -Tag sein.
Wir empfehlen zu verwenden: "rsa-sha1" für die Signatur, "rsa-1_5" für Verschlüsselungsschlüssel und "tripledes-cbc" für die Verschlüsselung des Körpers.
So kam ich mit folgenden Politik (aus Netbeans generiert). Aber ... es sieht nicht richtig für mich aus. Der Webservice ist noch nicht erreichbar, aber ich bin nicht sicher, ob die Spezifikationsversionen übereinstimmen. Ich lese viel zu diesem Thema, aber ich bin immer noch etwas verwirrt. Sieht diese Richtlinie in Ordnung aus?
<wsp1:Policy wsu:Id="ListeOperationsPeriodeSoapBindingSoapPolicy">
<wsp1:ExactlyOne>
<wsp1:All>
<sp:TransportBinding>
<wsp1:Policy>
<sp:TransportToken>
<wsp1:Policy>
<sp:HttpsToken RequireClientCertificate="false"/>
</wsp1:Policy>
</sp:TransportToken>
<sp:Layout>
<wsp1:Policy>
<sp:Lax/>
</wsp1:Policy>
</sp:Layout>
<sp:AlgorithmSuite>
<wsp1:Policy>
<sp:TripleDesRsa15/>
</wsp1:Policy>
</sp:AlgorithmSuite>
</wsp1:Policy>
</sp:TransportBinding>
<sp:Wss10/>
<sp:EndorsingSupportingTokens>
<wsp1:Policy>
<sp:X509Token sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysToRecipient">
<wsp1:Policy>
<sp:WssX509V3Token10/>
</wsp1:Policy>
</sp:X509Token>
</wsp1:Policy>
</sp:EndorsingSupportingTokens>
</wsp1:All>
</wsp1:ExactlyOne>
</wsp1:Policy>
<wsp:Policy wsu:Id="ListeOperationsPeriodeSoapBindingSoap_perform_Input_Policy">
<wsp:ExactlyOne>
<wsp:All>
<sp1:SignedEncryptedSupportingTokens>
<wsp:Policy>
<sp1:X509Token sp1:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/AlwaysToRecipient">
<wsp:Policy>
<sp1:WssX509V3Token10/>
</wsp:Policy>
</sp1:X509Token>
</wsp:Policy>
</sp1:SignedEncryptedSupportingTokens>
</wsp:All>
</wsp:ExactlyOne>
</wsp:Policy>
EDIT: ich es nicht die erwartete Nachricht mit WSIT-noch schicken konnte. Als Beispiel konnte ich mithilfe des Netbeans-Assistenten keine verschlüsselte Kopfzeile abrufen, ohne die Adressierung zu verwenden. Soll es möglich sein?
Ich hackte etwas mit einer alten Achse 1 Klasse und wss4j, es funktioniert, aber es ist hässlich und ich würde eher etwas zukunftssicherer verwenden.
Würde eine größere Prämie helfen? – ymajoros
Ich konnte es nicht bekommen, die erwartete Nachricht mit wsit-yon zu senden. Als Beispiel konnte ich mithilfe des Netbeans-Assistenten keine verschlüsselte Kopfzeile abrufen, ohne die Adressierung zu verwenden. Soll es möglich sein? Ich habe etwas mit einer alten Achse 1 Klasse und wss4j gehackt, es funktioniert, aber es ist hässlich und ich würde lieber etwas zukunftssicherer verwenden. – ymajoros
Dies ist eher eine Codeüberprüfungsfrage, die auf der Codeüberprüfungsseite gehört. – user1378730