Comunicação WebService com Criptografia

0 respostas
T

Bom dia Pessoal.

Estou com um problema há alguns dias e não saio do lugar.

Fiz um cliente para um WebService de uma empresa parceira e esse cliente envia a requisição via POST, protocolo HTTPS, com um parametro chamado xml que contém o xml do meu request. O body do xml é criptografado utilizando RSA, e codificado em BASE64 e URLEncoder. O request tem a seguinte aparência:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE wsse SYSTEM "requestBody.dtd">
<wsse xmlns="http://www.w3.org/TR/xmlschema-1/">
<head>
<id>idDoCliente</id>
<encryption_method></encryption_method>
<signature></signature>
<digest>
<digest_method></digest_method>
<digest_value></digest_value>
</digest>
</head>
<body>
bodyCriptografado
</body>
</wsse>
Até aí tudo bem, está aparentemente tudo certo. Porém quando eu envio a requisição ao servidor, ele me retorna um erro na hora de descriptografar o Body. Mas aí é que vem o que não entendi ainda: quando eu envio a requisição, o servidor retorna esse erro. Porém, enviei o mesmo XML que estou mandando pra lá por email para o cara que desenvolveu o serviço, e ele conseguiu descriptografar. A única validação de cliente que é feita é através do ID do cliente e chaves pública e privada, e isso está tudo certo. Tentei inclusive criar um formulário JSP com um parametro xml com valor do meu xml e enviar diretamente para o servidor, com um botao submit mesmo, mas também não funcionou. Para enviar a requisição estou utilizando:
PostMethod method = new PostMethod(host);
method.addParameter("xml", xmlRequest);
String resposta = method.getResponseBodyAsString());
Para criptografar:
Cipher cipher = Cipher.getInstance("RSA");
cipher.init(Cipher.ENCRYPT_MODE, serverPublicKey);
byte[] cifrado = cipher.doFinal(xmlBody.getBytes("ISO-8859-1"));
BASE64Encoder be = new BASE64Encoder();
String codificado = be.encode(cifrado);
String urlEncoder = URLEncoder.encode(codificado, "UTF-8");

Alguém já passou por algo parecido ou tem idéia do que pode ser?

Valeu galera,
um Abraço

Criado 4 de março de 2010
Respostas 0
Participantes 1