Tuesday 7 April 2009

Add username password jax-ws

I made a JAX-WS client of PAPI web services of Oracle BPM, this web service was secured using username token profile 1.1.


so all you gotta do is generale JAX-ws client (i use myeclipse for that)

Call the client from where ever you want by:

PapiWebService_Service papiService= new PapiWebService_Service();
PapiWebService papiPort=papiService.getPapiWebServicePort();

addUsernameTokenProfile(papiPort);




-------------------------------------------------------------------------------------------


private static void addUsernameTokenProfile(PapiWebService papiWebServicePort)
throws SOAPException {
try {
SOAPFactory soapFactory = SOAPFactory.newInstance();
QName securityQName = new QName(SECURITY_NAMESPACE, "Security");
SOAPElement security = soapFactory.createElement(securityQName);
QName tokenQName = new QName(SECURITY_NAMESPACE, "UsernameToken");
SOAPElement token = soapFactory.createElement(tokenQName);
QName userQName = new QName(SECURITY_NAMESPACE, "Username");
SOAPElement username = soapFactory.createElement(userQName);
username.addTextNode("3Support");//your username
QName passwordQName = new QName(SECURITY_NAMESPACE, "Password");
SOAPElement password = soapFactory.createElement(passwordQName);
password.addTextNode("3Support");//your password
token.addChildElement(username);
token.addChildElement(password);
security.addChildElement(token);
Header header = Headers.create(security);
((WSBindingProvider) papiWebServicePort).setOutboundHeaders(header);
} catch (SOAPException e) {
System.out.println("Could not configure Username Token Profile authentication");
e.printStackTrace();
}
}




---------------------------------
also i search and i found some fourms suggesting WSBindingProvider, but that didnt work for me



When i didnt set the username i was getting following error:
WSP0075: Policy assertion "{http://www.bea.com/wls90/security/policy}Identity" was evaluated as "UNKNOWN"

No comments: