Login WSS4J no AXIS

0 respostas
V

Olá pessoal,

Estou tentado utlizar o AXIS para acessar um web service que necessita de autenticação. Sei que preciso ter o seguinte trecho de xml na minha mensagem:

<wsse:Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/07/secext"
	soapenv:mustUnderstand="true">
	<wsse:UsernameToken>
		<wsse:Username>usuario</wsse:Username>
		<wsse:Password Type="wsse:PasswordText">senha</wsse:Password>
	</wsse:UsernameToken>
</wsse:Security>

Estou utilizando o seguinte trecho de código para colocar os parametros na mensagem:

private void preparaAutenticacao(Call call)  {
		try {
	    	SOAPHeaderElement wsseSecurityToken = new SOAPHeaderElement(new QName("wsse", "Security"));
	    	wsseSecurityToken.addAttribute("xmlns", "wsse", "http://schemas.xmlsoap.org/ws/2002/07/secext");
	    	wsseSecurityToken.addAttribute("soapenv", "wsse", "http://schemas.xmlsoap.org/ws/2002/07/secext");
	    	wsseSecurityToken.setMustUnderstand(true);
	
	    	SOAPElement wsseUsernameToken= wsseSecurityToken.addChildElement("wsse","UserNameToken");
	    	
	    	SOAPElement wsseUserNameElement = wsseUsernameToken.addChildElement("wsse","Username");
	    	wsseUserNameElement.setValue("username_1");
	
	    	SOAPElement wssePasswordElement = wsseUsernameToken.addChildElement("wsse","Username");
	    	wssePasswordElement.setValue("password_1");
	    	call.addHeader(wsseSecurityToken);
		} catch (SOAPException e) {
			e.printStackTrace();
		}	
	}

Estou recebendo o seguinte retorno do web service:

WSDoAllReceiver: Request does not contain required Security header

Alguém sabe o jeito correto de se adicionar esses parametros ao xml no java?

Agradeço desde já.
Obrigado.

Criado 12 de agosto de 2007
Respostas 0
Participantes 1