/  6
 
How to configure Axis2 to support Basic, NTLM and Proxy authentication?
Submitted on June 12, 2006 - 04:19. Story :
Axis2 > Java Apache Axis2 has inbuilt support for Basic, NTLM and Proxy authentication via commons-httpclient-3.0. Basicand NTLM use preemptive authentication scheme of commons-httpclient.Configuration for Proxy Authentication It has to be noted that Proxy Authentication via httpclient is availableonly with HTTP 1.0 version. Configuration for Proxy Authentication is available at deployment time (axis2.xml)or runtime.1. Proxy Authentication at Deployment time In Axis2.xml, user will be able to find the following entry:
<transportSender name="http"class="org.apache.axis2.transport.http.CommonsHTTPTransportSender"><parameter name="PROTOCOL"locked="false">HTTP/1.1</parameter><parameter name="Transfer-Encoding"locked="false">chunked</parameter></transportSender>
To enable proxy authentication:
<transportSender name="http"class="org.apache.axis2.transport.http.CommonsHTTPTransportSender"><parameter name="PROTOCOL"locked="false">HTTP/1.0</parameter><parameter name="PROXY" proxy_host="proxy_host_name"proxy_port="proxy_host_port"locked="true>userName:domain:passWord</parameter></transportSender>
2. Proxy Authenticaion at Runtime. In client or stub:
HttpTransportProperties.ProxyProperties proxyProperties = newHttpTransportProperties().new ProxyProperties();
 
proxyProperties.setProxyHostName("axis2");proxyProperties.setProxyPort(9762);proxyproperties.setDomain("axis2/anon");proxyproperties.setPassWord("passwd");proxyproperties.setUserName("usernm");//in order to makesure that we use HTTP 1.0options.setProperty(MessageContextConstants.HTTP_PROTOCOL_VERSION,HTTPConstants.HEADER_PROTOCOL_10);options.setProperty(org.apache.axis2.transport.http.HTTPConstants.PROXY,proxyProperties);
Basic and NTLM Authentication Axis2 uses commons-httpclient's preemptive authentication scheme tosupport Basic and NTLM Authentication.1. To Enable Basic Authentication
HttpTransportProperties.BasicAuthentication basicAuthentication =new HttpTransportProperties().new BasicAuthentication();basicAuthentication.setUsername("axis2");basicAuthentication.setPassword("axis2");options.setProperty(org.apache.axis2.transport.http.HTTPConstants.BASIC_AUTHENTICATION,basicAuthentication);
2. To Enable NTLM Authentication
HttpTransportProperties.NTLMAuthentication ntlmAuthentication =new HttpTransportProperties().new NTLMAuthentication();ntlmAuthentication.setUsername("axis2");ntlmAuthentication.setPassword("axis2");ntlmAuthentication.setHost("axis2");ntlmAuthentication.setPort(9443);ntlmAuthentication.setRealm("someRealm"); options.setProperty(
 
org.apache.axis2.transport.http.HTTPConstants.NTLM_AUTHENTICATION,ntlmAuthentication);
try
{Service1StubspServer=
new
Service1Stub("http://test001:9998/Service.asmx");// NTLM AuthenticationList<String> authScheme =
new
ArrayList<String>();authScheme.add(HttpTransportProperties.Authenticator.
NTLM 
);HttpTransportProperties.Authenticator ntlm = 
new
HttpTransportProperties.Authenticator();ntlm.setAuthSchemes(authScheme);ntlm.setUsername("administrator");ntlm.setPassword("1");ntlm.setHost("test001");ntlm.setPort(9998);ntlm.setDomain("sps2007");Options options =spServer._getServiceClient().getOptions();options.setProperty(HTTPConstants.
AUTHENTICATE 
, ntlm);spServer._getServiceClient().setOptions(options);}
catch
(AxisFault e) {e.printStackTrace();}// Base Authentication//HttpTransportProperties.Authenticator authenticator = newHttpTransportProperties.Authenticator();//List<String> authScheme = new ArrayList<String>();//authScheme.add(HttpTransportProperties.Authenticator.BASIC);//authenticator.setAuthSchemes(authScheme);//authenticator.setUsername("administrator");

Share & Embed

More from this user

Add a Comment

Characters: ...