Ola,
Estou tentando fazer a comunicação segura usando a especificação WS-Security com um Webservice criado com o Metro.
Preciso criptografar apenas algumas partes da minha mensagem Soap, mas não estou conseguindo.
Estou definindo o elemento que quero criptografar por XPath:
<wsp:Policy wsu:Id="PessoaServicePortBinding_obterDadosUsuario_Output_Policy">
<wsp:ExactlyOne>
<wsp:All>
<sp:EncryptedElements>
<sp:XPath xmlns:ns2="http://unimed.com.br/webservice">
/S:Envelope/S:Body/ns2:obterDadosUsuarioResponse
</sp:XPath>
</sp:EncryptedElements>
</wsp:All>
</wsp:ExactlyOne>
</wsp:Policy>
Se tento criptografar alguma parte do namespace soap (como heades ou body) ele funciona, mas se tento criptografar algum elemento de meu proprio namespace ele emite essa mensagem:
failed to get Message Parts of using XPath targettype
javax.xml.transform.TransformerException: Prefix must resolve to a namespace: ns2
Iniciei o serviço em debug e verifiquei o ponto onde ocorre o erro. Existe um map com os namespaces registrados (nao sei onde é carregado) e meu namespace nao esta no map, tentei setar o namespace no client e no servico em todos os lugares possiveis mas sem resultado…
Alguem ja teve esse problema?
Estou usando JBoss 4.2.3 e Metro 1.3.1