Foros del Web » Programación para mayores de 30 ;) » Java »

cliente soap java

Estas en el tema de cliente soap java en el foro de Java en Foros del Web. Hola tengo lo siguiente : SOAPElement userName = userNameToken.addChildElement("Username", "wsse"); userName.addTextNode("usuario"); //set password SOAPElement password = userNameToken.addChildElement("Password", "wsse"); password.setAttribute("Type", "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest"); password.addTextNode("password"); Si utilizo el soapui ...
  #1 (permalink)  
Antiguo 25/01/2016, 11:38
 
Fecha de Ingreso: diciembre-2010
Mensajes: 459
Antigüedad: 13 años, 4 meses
Puntos: 21
cliente soap java

Hola tengo lo siguiente :

SOAPElement userName = userNameToken.addChildElement("Username", "wsse");
userName.addTextNode("usuario");

//set password
SOAPElement password = userNameToken.addChildElement("Password", "wsse");
password.setAttribute("Type", "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest");

password.addTextNode("password");

Si utilizo el soapui el header que me genera es este :
<wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"><wsse:UsernameToken wsu:Id="UsernameToken-4"><wsse:Username>usuario</wsse:Username><wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest">kpsi8lmUZy5Qk1yVepdD6SiJLCM=</wsse:Password><wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">EhY0Cfcr+zlRXRaLJYl+hw==</wsse:Nonce><wsu:Created>2016-01-25T16:19:35.198Z</wsu:Created></wsse:UsernameToken></wsse:Security></soapenv:Header>

En cambio mi cliente me genera :

<wsse:Security xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><wsse:UsernameToken wsu:Id="UsernameToken-4"><wsse:Username>usuario</wsse:Username><wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest">password</wsse:Password><wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary"></wsse:Nonce><wsu:Created xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"></wsu:Created></wsse:UsernameToken></wsse:Security>

si en vez de pasarle mi password le paso la que me genera el cliente soapui funciona, como ese cliente codificas la contraseña?

Un saludo
__________________
Oye los consejos de todo el mundo, y sigue el tuyo.
Si te han ayudado deja un karma y si no te han ayudado pero vez util la información tb deja un karma xD
Sirdaiz
  #2 (permalink)  
Antiguo 26/01/2016, 02:44
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 9 años, 8 meses
Puntos: 182
Respuesta: cliente soap java

Buenas,

EhY0Cfcr+zlRXRaLJYl+hw== es la codificacion en base64 de una cadena vacia.

Por favor, utiliza el Highlight la proxima vez. Con tanto namespace es imposible ver nada.



Un saludo
__________________
If to err is human, then programmers are the most human of us
  #3 (permalink)  
Antiguo 26/01/2016, 03:06
 
Fecha de Ingreso: diciembre-2010
Mensajes: 459
Antigüedad: 13 años, 4 meses
Puntos: 21
Respuesta: cliente soap java

Gracias por la respuesta, pero si mi contraseña es : "password" :

EL soapui me da la encriptación:

Digest => kpsi8lmUZy5Qk1yVepdD6SiJLCM
Base64Binary => EhY0Cfcr+zlRXRaLJYl+hw==

Si codifico password a base64 no me daría ese resultado, no se si lo compone concatenando el timestamp :s

Un saludo

Cita:
Iniciado por Profesor_Falken Ver Mensaje
Buenas,

EhY0Cfcr+zlRXRaLJYl+hw== es la codificacion en base64 de una cadena vacia.

Por favor, utiliza el Highlight la proxima vez. Con tanto namespace es imposible ver nada.



Un saludo
__________________
Oye los consejos de todo el mundo, y sigue el tuyo.
Si te han ayudado deja un karma y si no te han ayudado pero vez util la información tb deja un karma xD
Sirdaiz
  #4 (permalink)  
Antiguo 26/01/2016, 03:32
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 9 años, 8 meses
Puntos: 182
Respuesta: cliente soap java

Buenas,

Aqui tienes una explicacion :
http://www.herongyang.com/Web-Servic...st-String.html

Basicamente:
Password_Digest = Base64 ( SHA-1 ( nonce + created + password ) )

Un saludo
__________________
If to err is human, then programmers are the most human of us
  #5 (permalink)  
Antiguo 26/01/2016, 04:00
 
Fecha de Ingreso: diciembre-2010
Mensajes: 459
Antigüedad: 13 años, 4 meses
Puntos: 21
Respuesta: cliente soap java

Bine pues yo tengo codificada lo siguiente:

Base64Binary => EhY0Cfcr+zlRXRaLJYl+hw==

Por lo que

Código Java:
Ver original
  1. String pass = " EhY0Cfcr+zlRXRaLJYl+hw==";
  2. String str = StringUtils.newStringUtf8(Base64.decodeBase64(pass.getBytes("UTF-8")));

Pero su resultado es : 4 �+�9Q]�%�~�

Si intento :

Código Java:
Ver original
  1. String pass = " EhY0Cfcr+zlRXRaLJYl+hw==";
  2. String str = StringUtils.newStringUtf8(Base64.decodeBase64(pass));

su resultado es :
java.lang.NoSuchMethodError: org.apache.commons.codec.binary.Base64.decodeBase6 4(Ljava/lang/String;)[B
at TestCode.main(TestCode.java:22)

Uso la libreria :
import org.apache.commons.codec.binary.Base64;

Un saludo
__________________
Oye los consejos de todo el mundo, y sigue el tuyo.
Si te han ayudado deja un karma y si no te han ayudado pero vez util la información tb deja un karma xD
Sirdaiz
  #6 (permalink)  
Antiguo 26/01/2016, 10:16
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 9 años, 8 meses
Puntos: 182
Respuesta: cliente soap java

Buenas,

Estas utilizando para compilar una version diferente de la que usas en runtime.

Seguramente se solucionara si haces esto:

Cita:
String str = StringUtils.newStringUtf8(Base64.decodeBase64(pass .getBytes()));

Un saludo
__________________
If to err is human, then programmers are the most human of us
  #7 (permalink)  
Antiguo 26/01/2016, 10:27
 
Fecha de Ingreso: diciembre-2010
Mensajes: 459
Antigüedad: 13 años, 4 meses
Puntos: 21
Respuesta: cliente soap java

He probado de todo, incluso con webs online que me dan el mismo resultado que mi app en java

RESULTADO: 4 �+�9Q]�%�~�
Código Java:
Ver original
  1. public static void main(String[] args) {
  2.         String pass = "EhY0Cfcr+zlRXRaLJYl+hw==";
  3.        
  4.         try {
  5.             String str = StringUtils.newStringUtf8(Base64.decodeBase64(pass .getBytes()));
  6.             System.out.println("code: " + str);
  7.            
  8.         } catch (Exception e) {
  9.             e.printStackTrace();
  10.         }
  11.     }

Cita:
Iniciado por Profesor_Falken Ver Mensaje
Buenas,

Estas utilizando para compilar una version diferente de la que usas en runtime.

Seguramente se solucionara si haces esto:




Un saludo
__________________
Oye los consejos de todo el mundo, y sigue el tuyo.
Si te han ayudado deja un karma y si no te han ayudado pero vez util la información tb deja un karma xD
Sirdaiz

Etiquetas: cliente, soap
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:41.