You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Shripad Gokhale <sh...@amdocs.com> on 2008/07/31 07:39:49 UTC

Username token implemetation

Hi,

 

I am trying to implement user name token with Axis 1.4 and WSS4J on
server side. Where can I get a good reference material or tutorial about
the changes that are required? Some of the links I found of google
provide only partial information.

 

Thanks

Shripad


This message and the information contained herein is proprietary and confidential and subject to the Amdocs policy statement,
you may review at http://www.amdocs.com/email_disclaimer.asp

RE: Username token implemetation

Posted by Shripad Gokhale <sh...@amdocs.com>.
Thanks

The change suggested by you seems to be for the SOAP Client. I want some guide about the changes that should be done on SOAP server and also if what changes are needed in the WSDD files.

 

From: Robert Wierschke [mailto:wierob83@googlemail.com] 
Sent: Thursday, July 31, 2008 12:33 PM
To: axis-user@ws.apache.org
Subject: Re: Username token implemetation

 

Hi,

unfortunately there is no real documentation.

You could add a Username Toke without wss4j within a handler:

 OMFactory factory = OMAbstractFactory.getOMFactory();
OMNamespace wssNamespace = new OMNamespaceImpl(
     "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd", "wss");
     
SOAPHeaderBlock securityHeader = envelope.getHeader().addHeaderBlock("Security", wssNamespace);

OMElement username = factory.createOMElement("Username", wssNamespace);
username.setText("TopsyCretts");
        
OMElement password = factory.createOMElement("password", wssNamespace);
password.setText("42");
      
OMElement usernameToken = factory.createOMElement("UsernameToken", wssNamespace);
usernameToken.addChild(username);
usernameToken.addChild(password);
securityHeader.addChild(usernameToken);

Using wss4j:

String username = "TopsyCretts";
        String password = "42";

WSSecUsernameToken builder =
      new WSSecUsernameToken();
builder.setPasswordType(WSConstants.PASSWORD_DIGEST);
builder.setUserInfo(username, password);
WSSecHeader securityHeader = new WSSecHeader();
securityHeader.insertSecurityHeader( doc);
        
builder.build(doc, securityHeader);

This only works with the SOAP as a W3C Document (and not with AXIOM) so you need to convert the envelope first. After inserting the Security header you need to create a new SOAPEnvelope object and set this to the message context.

SOAPEnvelope secureEnvelope = Util.createSoapEnvelopeFromDOM(soapDocument);
messageContext.setEnvelope(secureEnvelope);

regards
robert

2008/7/31 Shripad Gokhale <sh...@amdocs.com>

Hi,

 

I am trying to implement user name token with Axis 1.4 and WSS4J on server side. Where can I get a good reference material or tutorial about the changes that are required? Some of the links I found of google provide only partial information.

 

Thanks

Shripad

This message and the information contained herein is proprietary and confidential and subject to the Amdocs policy statement,
you may review at http://www.amdocs.com/email_disclaimer.asp

 


Re: Username token implemetation

Posted by Robert Wierschke <wi...@googlemail.com>.
Hi,

unfortunately there is no real documentation.

You could add a Username Toke without wss4j within a handler:

 OMFactory factory = OMAbstractFactory.getOMFactory();
OMNamespace wssNamespace = new OMNamespaceImpl(
     "
http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd",
"wss");

SOAPHeaderBlock securityHeader =
envelope.getHeader().addHeaderBlock("Security", wssNamespace);

OMElement username = factory.createOMElement("Username", wssNamespace);
username.setText("TopsyCretts");

OMElement password = factory.createOMElement("password", wssNamespace);
password.setText("42");

OMElement usernameToken = factory.createOMElement("UsernameToken",
wssNamespace);
usernameToken.addChild(username);
usernameToken.addChild(password);
securityHeader.addChild(usernameToken);

Using wss4j:

String username = "TopsyCretts";
        String password = "42";

WSSecUsernameToken builder =
      new WSSecUsernameToken();
builder.setPasswordType(WSConstants.PASSWORD_DIGEST);
builder.setUserInfo(username, password);
WSSecHeader securityHeader = new WSSecHeader();
securityHeader.insertSecurityHeader( doc);

builder.build(doc, securityHeader);

This only works with the SOAP as a W3C Document (and not with AXIOM) so you
need to convert the envelope first. After inserting the Security header you
need to create a new SOAPEnvelope object and set this to the message
context.

SOAPEnvelope secureEnvelope = Util.createSoapEnvelopeFromDOM(soapDocument);
messageContext.setEnvelope(secureEnvelope);

regards
robert

2008/7/31 Shripad Gokhale <sh...@amdocs.com>

>  Hi,
>
>
>
> I am trying to implement user name token with Axis 1.4 and WSS4J on server
> side. Where can I get a good reference material or tutorial about the
> changes that are required? Some of the links I found of google provide only
> partial information.
>
>
>
> Thanks
>
> Shripad
>
> This message and the information contained herein is proprietary and confidential and subject to the Amdocs policy statement,
> you may review at http://www.amdocs.com/email_disclaimer.asp
>
>