Assinar XML com um certificado [RESOLVIDO]

Pessoal,

pesquisei e não encontrei aqui, mas alguém tem algum código ou componente que permita a assinatura de XMLs utilizando um certificado digital?

Cara, você pode fazer isso setando algumas propriedades do sistema.

java.protocol.handler.pkgs=com.sun.net.ssl.internal.www.protocol
javax.net.ssl.keyStoreType=PKCS12
javax.net.ssl.keyStore=C:\\assinatura.pfx
javax.net.ssl.keyStorePassword=senha

Você pode criar um arquivo properties e depois utilizá-lo para setar as propriedades:

Properties securityProperties; // carrega o arquivo properties
		
for (Object key : securityProperties.keySet()) {
   System.setProperty(key.toString(), securityProperties.getProperty(key.toString()));
}

As configurações do arquivo dependem do tipo de assinatura.

Falou.

Beleza, mas

System.setProperty(key.toString(), securityProperties.getProperty(key.toString()));  

Isso assina um XML? Sei que existe uma API no java 6 própria para isso, mas não encontrei exemplos concretos, somente trechos de códigos mal explicados…

[quote=DexterDF]Beleza, mas

System.setProperty(key.toString(), securityProperties.getProperty(key.toString()));  

Isso assina um XML? Sei que existe uma API no java 6 própria para isso, mas não encontrei exemplos concretos, somente trechos de códigos mal explicados…

[/quote]

Isso vai configurar todas as propriedades que estão no arquivo de propriedades como propriedades do sistema.

Em uma das propriedades vc informa o caminho do seu arquivo de assinatura:

javax.net.ssl.keyStore=C:\\assinatura.pfx

Essa é uma forma, mas vc pode encontrar mais informações aqui:

http://download.oracle.com/docs/cd/E17802_01/webservices/webservices/docs/2.0/tutorial/doc/

vou ver o link! Valeu meu brother!

Perfeito, resolvi o problema com o seguinte código anexo!