Métodos de las partes firmadas utilizando la API WSSSignPart
Puede configurar la información de las partes firmadas para el enlace del generador utilizando la API de WSS. Los algoritmos incluyen los métodos de conversión y transformación.
Puede proteger la integridad del mensaje configurando las partes firmadas y la información de claves. La integridad hace referencia a la firma digital mientras que la confidencialidad hace referencia al cifrado. La integridad disminuye el riesgo de que se modifiquen los datos mientras estos se transmiten por la red.
Métodos
- Método de conversión
- Establece el método del algoritmo de conversión.
- Algoritmo de transformación
- Establece el método del algoritmo de transformación.
Algoritmos de conversión
El algoritmo del método de conversión se especifica dentro del elemento que se utiliza en el elemento. WebSphere Application Server admite los algoritmos preconfigurados siguientes:
Método de conversión | Descripción |
---|---|
WSSSignPart.SHA1 (el valor predeterminado) | Un URI del algoritmo de conversión, SHA1: http://www.w3.org/2000/09/xmldsig#sha1 |
WSSSignPart.SHA256 | Un URI del algoritmo de conversión, SHA256: http://www.w3.org/2001/04/xmlenc#sha256 |
WSSSignPart.SHA512 | Un URI del algoritmo de conversión, SHA256: http://www.w3.org/2001/04/xmlenc#sha512 |
Algoritmos de transformación
El algoritmo del método de transformación se especifica dentro del elemento que se utiliza en el elemento. WebSphere Application Server admite los algoritmos preconfigurados siguientes:
Método de conversión | Descripción |
---|---|
WSSSignPart.TRANSFORM_ENVELOPED_SIGNATURE | Un URI del algoritmo de transformación, firma de envoltura: http://www.w3.org/2000/09/xmldsig#enveloped-signature |
WSSSignPart.TRANSFORM_STRT10 | Un URI del algoritmo de transformación, STR-Transform: http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#STR-Transform |
WSSSignPart.EXC_C14N (el valor predeterminado) | Un URI del algoritmo de transformación, Exc-C14N: http://www.w3.org/2001/10/xml-exc-c14n# |
WSSSignPart.TRANSFORM_XPATH2_FILTER | Un URI del algoritmo de transformación, filtro XPath2: http://www.w3.org/2002/06/xmldsig-filter2 |
El algoritmo de transformación se especifica dentro del elemento <Transform> y especifica el algoritmo de transformación de la parte firmada.
- http://www.w3.org/TR/1999/REC-xpath-19991116
- http://www.w3.org/2002/07/decrypt#XML
El ejemplo siguiente proporciona el código de la API de WSS para especificar la firma y las partes firmadas, establecer la clave de firma y añadir el algoritmo de transformación STR-Transform como partes firmadas:
//obtener el contexto del mensaje
Object msgcontext = getMessageContext();
//generar la instancia de WSSFactory
WSSFactory factory = WSSFactory.getInstance();
//generar instancia WSSGenerationContext
WSSGenerationContext gencont = factory.newWSSGenerationContext();
//generar manejador de retorno de llamada
X509GenerateCallbackHandler callbackHandler = new
X509GenerateCallbackHandler(
"",
"dsig-sender.ks",
"jks",
"client".toCharArray(),
"soaprequester",
"client".toCharArray(),
"CN=SOAPRequester, OU=TRL, O=IBM, ST=Kanagawa, C=JP",
null);
//generar la señal de seguridad utilizada para la firma
SecurityToken token = factory.newSecurityToken(X509Token.class,
callbackHandler);
//generar instancia de WSSSignature
WSSSignature sig = factory.newWSSSignature(token);
//establecer la parte especificada por WSSSignPart
WSSSignPart sigPart = factory.newWSSSignPart();
//establecer la parte especificada por WSSSignPart
sigPart.setSignPart(WSSSignature.BODY);
//establecer el método de conversión que se ha de especificar mediante WSSSignPart
sigPart.setDigestMethod(WSSSignPart.SHA256);
//establecer el método de transformación que se ha de especificar mediante WSSSignPart
sigPart.addTransform(WSSSignPart.TRANSFORM_STRT10);
//establecer la parte especificada por WSSSignPart
sig.addSignPart(sigPart);
//añadir WSSSignature a WSSGenerationContext
gencont.add(sig);
//generar la cabecera de WS-Security
gencont.process(msgcontext);