Wsse:Security Dúvida sobre autenticação em Web Service (Axis 1.4)

2 respostas
Fierodd

Boa tarde!

Estou tentando desenvolver um Web Service utilizando o Apache Axis 1.4 (versão utilizada na empresa), segui os tutoriais que encontrei e consegui gerar o serviço.

Ainda não consegui fazer um client que funcione, utilizei o WSDL2Java para gerar as classes e fiz a chamada ao serviço, porém sempre recebo a seguinte mensagem “Não foi possível obter o elemento wsse:Security”

AxisFault
 faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.generalException
 faultSubcode: 
 faultString: Não foi possível obter o elemento wsse:Security
 faultActor: 
 faultNode: 
 faultDetail: 
	{http://xml.apache.org/axis/}hostname:aj0198080

Não foi possível obter o elemento wsse:Security

Gostaria de um exemplo ou tutorial que pudesse me direcionar nesse caso.

Obrigado!

2 Respostas

Fierodd

Tentei setar alguns parametros, porém ainda sem sucesso.

((Stub) service)._setProperty(WSHandlerConstants.ACTION, WSHandlerConstants.USERNAME_TOKEN);
((Stub) service)._setProperty(UsernameToken.PASSWORD_TYPE, WSConstants.PASSWORD_TEXT);
((Stub) service)._setProperty(WSHandlerConstants.USER, "nac:00100");
((Stub) service)._setProperty(WSHandlerConstants.PW_CALLBACK_REF, new FaturamentoNacTest());

Estou utilizando Username token como mecanismo de autenticação.

Fierodd

Boa tarde senhores, consegui realizar a autenticação da seguinte forma.

O mecanismo user token utiliza o header do envelope soap para informar o usuário e senha e eles podem ser setados dessa forma.

private static String SECURITY_NAMESPACE =
		"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd";
	private static String SECURITY_ELEMENT = "Security";

        ...

	SOAPHeaderElement header = new SOAPHeaderElement(SECURITY_NAMESPACE, SECURITY_ELEMENT);
	SOAPElement node = header.addChildElement("UsernameToken");
	SOAPElement usernameNode = node.addChildElement("Username");
	usernameNode.setValue("usuario");
	SOAPElement passwordNode = node.addChildElement("Password");
	passwordNode.setValue("senha");
	Stub stub = (Stub) service;
	stub.setHeader(header);
Criado 18 de fevereiro de 2010
Ultima resposta 4 de mar. de 2010
Respostas 2
Participantes 1