Devo implementare un client jax-ws.Politica per la firma e la crittografia
Ecco ciò che la documentazione del provider dicono di sicurezza
Attualmente, usiamo la versione specifica di SOAP Message Security 1.0 a http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0.pdf
Questo standard utilizza altri due dalla norma W3C:
XMLENC (http://www.w3.org/TR/2002/REC-xmlenc-core-20021210/)
e XMLDSIG (http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/)Per la firma, un "SecurityTokenReference" che utilizza un riferimento diretto " " che specifica "URI" e "valueType" di X509 è obbligatorio. Per la codifica , lo consigliamo anche noi, ma supportiamo anche in ordine di preferenza un riferimento a keyIdentifier, a X509IssuerSerial oa keyName.
Il blocco cifrato e firmato deve essere il tag "corpo".
Si consiglia di utilizzare: "rsa-sha1" per firma, "rsa-1_5" per chiave di crittografia e "tripledes-cbc" per la crittografia del corpo.
Quindi mi è venuta in mente la seguente politica (generata da netbeans). Ma ... non sembra giusto per me. Il servizio web non è ancora raggiungibile, ma non sono sicuro che le versioni specifiche corrispondano. Leggo molto sull'argomento, ma sono ancora un po 'confuso. Questa politica sembra ok?
<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: non ho potuto farlo per inviare il messaggio previsto con WSIT-ancora. Ad esempio, utilizzando la procedura guidata Netbeans, non sono riuscito a ottenere un'intestazione crittografata senza utilizzare l'indirizzamento. Dovrebbe essere possibile?
Ho hackerato qualcosa con una vecchia classe axis 1 e wss4j, funziona ma è brutto e preferirei usare qualcosa di più a prova di futuro.
Sarebbe un aiuto di taglia più grande? – ymajoros
Non riuscivo a ottenere che inviasse il messaggio previsto con wsit-yet. Ad esempio, utilizzando la procedura guidata Netbeans, non sono riuscito a ottenere un'intestazione crittografata senza utilizzare l'indirizzamento. Dovrebbe essere possibile? Ho hackerato qualcosa con una vecchia classe di assi 1 e wss4j, funziona ma è brutto e preferirei usare qualcosa di più a prova di futuro. – ymajoros
Questa è più una domanda di revisione del codice che appartiene al sito di revisione del codice. – user1378730