Configuring HTTP basic authentication for JAX-RPC web services programmatically

You can configure HTTP basic authentication for Java™ API for XML-based RPC (JAX-RPC) web services by programmatically modifying HTTP properties.

Before you begin

This task is one of three ways that you can configure HTTP basic authentication. You can also configure HTTP basic authentication with an assembly tool or with the administrative console.

If you programmatically configure HTTP basic authentication, the properties are configured in the Stub or Call instance. If you choose to configure HTTP basic authentication with the administrative console or an assembly tool, the Web Services Security binding information is modified. The values that are set programmatically take precedence over the values defined in the binding.

About this task

The HTTP basic authentication that is discussed in this topic is orthogonal to WS-Security and is distinct from basic authentication that WS-Security supports. WS-Security supports basic authentication token, not HTTP basic authentication.

Configure HTTP basic authentication programmatically with the following steps.

Procedure

Set the properties in the Stub or Call instance for a Web service or a web service client.
You can set properties with the following constant names:
javax.xml.rpc.Call.USERNAME_PROPERTY
javax.xml.rpc.Call.PASSWORD_PROPERTY
javax.xml.rpc.Stub.USERNAME_PROPERTY
javax.xml.rpc.Stub.PASSWORD_PROPERTY

Example

The following code enables you to configure basic authentication programmatically:
Properties prop = new Properties(); 
InitialContext ctx = new InitialContext(prop); 
Service service = (Service)ctx.lookup("java:comp/env/service/StockQuoteService"); 
QName portQname = new QName("http://httpchannel.test.wsfvt.ws.ibm.com", "StockQuoteHttp"); 
StockQuote sq = (StockQuote)service.getPort(portQname, StockQuote.class); 
((javax.xml.rpc.Stub) sq)._setProperty(javax.xml.rpc.Stub.USERNAME_PROPERTY, "myUser");
((javax.xml.rpc.Stub) sq)._setProperty(javax.xml.rpc.Stub.PASSWORD_PROPERTY, "myPwd");