Métodos de Partes Assinadas que Utilizam a WSSSignPart API
É possível configurar as informações sobre partes assinadas para a ligação do gerador que utiliza a WSS API. Os algoritmos incluem os métodos de compilação e transformação.
É possível proteger a integridade da mensagem configurando as informações chave e de partes assinadas. A integridade refere-se à assinatura digital, enquanto que a confidencialidade refere-se à criptografia. A integridade diminui o risco de modificação de dados quando você transmite dados pela rede.
Métodos
- Método de Compilação
- Configura o método do algoritmo de compilação.
- Algoritmo de Transformação
- Configura o método do algoritmo de transformação.
Algoritmos de Compilação
O algoritmo do método de compilação especificado no elemento é utilizado no elemento. O WebSphere Application Server suporta os seguintes algoritmos pré-configurados:
Método de Compilação | Description |
---|---|
WSSSignPart.SHA1 (o valor padrão) | Um URI do algoritmo de compilação, SHA1: http://www.w3.org/2000/09/xmldsig#sha1 |
WSSSignPart.SHA256 | Um URI do algoritmo de compilação, SHA256: http://www.w3.org/2001/04/xmlenc#sha256 |
WSSSignPart.SHA512 | Um URI do algoritmo de compilação, SHA256: http://www.w3.org/2001/04/xmlenc#sha512 |
Algoritmos de Transformação
O algoritmo do método de transformação especificado no elemento é utilizado no elemento. O WebSphere Application Server suporta os seguintes algoritmos pré-configurados:
Método de Compilação | Description |
---|---|
WSSSignPart.TRANSFORM_ENVELOPED_SIGNATURE | Um URI do algoritmo de transformação, assinatura envelopada: http://www.w3.org/2000/09/xmldsig#enveloped-signature |
WSSSignPart.TRANSFORM_STRT10 | Um URI do algoritmo de transformação, STR-Transform: http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#STR-Transform |
WSSSignPart.TRANSFORM_EXC_C14N (o valor padrão) | Um URI do algoritmo de transformação, Exc-C14N: http://www.w3.org/2001/10/xml-exc-c14n# |
WSSSignPart.TRANSFORM_XPATH2_FILTER | Um URI do algoritmo de transformação, filtro XPath2: http://www.w3.org/2002/06/xmldsig-filter2 |
O algoritmo de transformação é especificado dentro do elemento <Transform> e especifica o algoritmo de transformação para a parte assinada.
- http://www.w3.org/TR/1999/REC-xpath-19991116
- http://www.w3.org/2002/07/decrypt#XML
O exemplo a seguir fornece o código de amostra da WSS API para especificar a assinatura e as partes assinadas, configurando a chave de assinatura e incluindo o algoritmo de transformação STR-Transform como partes assinadas:
//obter o contexto da mensagem
Object msgcontext = getMessageContext();
//gerar a instância do WSSFactory
WSSFactory factory = WSSFactory.getInstance();
//gerar a instância do WSSGenerationContext
WSSGenerationContext gencont = factory.newWSSGenerationContext();
//gerar o manipulador de retorno de chamada
X509GenerateCallbackHandler callbackHandler = new
X509GenerateCallbackHandler(
"",
"dsig-sender.ks",
"jks",
"client".toCharArray(),
"soaprequester",
"client".toCharArray(),
"CN=SOAPRequester, OU=TRL, O=IBM, ST=Kanagawa, C=JP",
null);
//gerar o token de segurança utilizado para a assinatura
SecurityToken token = factory.newSecurityToken(X509Token.class,
callbackHandler);
//gerar a instância do WSSSignature
WSSSignature sig = factory.newWSSSignature(token);
//configurar a parte especificada por WSSSignPart
WSSSignPart sigPart = factory.newWSSSignPart();
//configurar a parte especificada por WSSSignPart
sigPart.setSignPart(WSSSignature.BODY);
//configura o método de compilação especificado por WSSSignPart
sigPart.setDigestMethod(WSSSignPart.SHA256);
//configura o método de transformação especificado por WSSSignPart
sigPart.addTransform(WSSSignPart.TRANSFORM_STRT10);
//configurar a parte especificada por WSSSignPart
sig.addSignPart(sigPart);
//incluir WSSSignature no WSSGenerationContext
gencont.add(sig);
//gerar o cabeçalho WS-Security
gencont.process(msgcontext);