Necesito implementar un cliente jax-ws.Política para firmar y cifrar
Esto es lo que la documentación del proveedor dicen acerca de la seguridad
Actualmente, se utiliza la versión de la especificación de SOAP Message Security 1.0 en http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0.pdf
Este estándar utiliza otros dos de la norma W3C:
XMLENC (http://www.w3.org/TR/2002/REC-xmlenc-core-20021210/)
y XMLDSIG (http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/)Para la firma, una "Referencia de SecurityToken" usando una "referencia" directa que especifica "URI" y "valueType" de X509 es obligatoria. Para el cifrado, también lo recomendamos, pero también admitimos en orden de preferencia una referencia a un keyIdentifier, un X509IssuerSerial o un keyName.
El bloque cifrado y firmado debe ser la etiqueta "cuerpo".
Recomendamos utilizar: "rsa-sha1" para la firma, "rsa-1_5" para clave de encriptación y "tripledes-cbc" para encriptar el cuerpo.
Así que se me ocurrió la siguiente política (generada a partir de netbeans). Pero ... no me parece correcto. Todavía no se puede acceder al servicio web, pero no estoy seguro de que coincidan las versiones de las especificaciones. Leo mucho sobre el tema, pero todavía estoy algo confundido. ¿Esta política se ve bien?
<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: no podía conseguirlo para enviar el mensaje esperado con wsit-todavía. Como ejemplo, al usar el asistente de Netbeans, no pude obtener un encabezado cifrado sin usar el direccionamiento. Se supone que es posible?
He pirateado algo con una antigua clase axis 1 y wss4j, funciona pero es feo y prefiero usar algo más a prueba de futuro.
¿Ayudaría una recompensa más grande? – ymajoros
No pude conseguir que envíe el mensaje esperado con wsit-yet. Como ejemplo, al usar el asistente de Netbeans, no pude obtener un encabezado cifrado sin usar el direccionamiento. Se supone que es posible? He pirateado algo con una vieja clase del eje 1 y wss4j, funciona pero es feo y prefiero usar algo más a prueba de futuro. – ymajoros
Esto es más de una pregunta de revisión de código que pertenece al sitio de revisión de código. – user1378730