CXF client NTLM Authentication Issue
-------------------------------------
Key: CXF-3185
URL: https://issues.apache.org/jira/browse/CXF-3185
Project: CXF
Issue Type: Bug
Affects Versions: 2.2.10
Environment: Java 6, CXF 2.2.10
Reporter: Amol Deshpande
Hi,
I have generated a cxf client using wsdl2java tool. This client is built to
consume the sharepoint webservice which requires NTLM authentication.
I was initially
On the link :
http://cxf.apache.org/docs/client-http-transport-including-ssl-support.html ,
under the NTLM authentication section, it is stated that - "On Java 6, NTLM
authentication is built into the Java runtime and you don't need to do anything
special" .
As such I just turned off chunking and try to connect to the webservice,
However I get a Server redirected too many times issue.
The code and the error are as given below:
************************************************************************************************************************************************************
Code
*************************************************************************************************************************************************************
SiteData ss = new SiteData(wsdlURL, SERVICE_NAME);
SiteDataSoap port = ss.getSiteDataSoap();
//Turn off chunking so that NTLM can occur
Client client = org.apache.cxf.frontend.ClientProxy.getClient(port);
HTTPConduit http = (HTTPConduit) client.getConduit();
HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy();
httpClientPolicy.setConnectionTimeout(36000);
httpClientPolicy.setAllowChunking(false);
http.setClient(httpClientPolicy);
System.out.println("Invoking getSite...");
javax.xml.ws.Holder<java.lang.Long> _getSite_getSiteResult = new
javax.xml.ws.Holder<java.lang.Long>();
javax.xml.ws.Holder<com.microsoft.schemas.sharepoint.soap.SSiteMetadata>
_getSite_sSiteMetadata = new
javax.xml.ws.Holder<com.microsoft.schemas.sharepoint.soap.SSiteMetadata>();
javax.xml.ws.Holder<com.microsoft.schemas.sharepoint.soap.ArrayOfSWebWithTime>
_getSite_vWebs = new
javax.xml.ws.Holder<com.microsoft.schemas.sharepoint.soap.ArrayOfSWebWithTime>();
javax.xml.ws.Holder<java.lang.String> _getSite_strUsers = new
javax.xml.ws.Holder<java.lang.String>();
javax.xml.ws.Holder<java.lang.String> _getSite_strGroups = new
javax.xml.ws.Holder<java.lang.String>();
javax.xml.ws.Holder<com.microsoft.schemas.sharepoint.soap.ArrayOfString>
_getSite_vGroups = new
javax.xml.ws.Holder<com.microsoft.schemas.sharepoint.soap.ArrayOfString>();
//Webservice call
port.getSite(_getSite_getSiteResult, _getSite_sSiteMetadata,
_getSite_vWebs, _getSite_strUsers, _getSite_strGroups, _getSite_vGroups);
**********************************************************************************************************************************************************************
Error Message
***********************************************************************************************************************************************************************
The error I get is as follows :
Dec 13, 2010 1:30:05 PM org.apache.cxf.phase.PhaseInterceptorChain
doDefaultLogging
WARNING: Interceptor for
{http://schemas.microsoft.com/sharepoint/soap/}SiteData#{http://schemas.microsoft.com/sharepoint/soap/}GetSite
has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: Could not send Message.
at
org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:64)
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:244)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:516)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:313)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:265)
at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
at
org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:124)
at $Proxy39.getSite(Unknown Source)
at
com.microsoft.schemas.sharepoint.soap.SiteDataSoap_SiteDataSoap_Client.main(SiteDataSoap_SiteDataSoap_Client.java:190)
Caused by: java.net.ProtocolException: ProtocolException invoking
http://corp.abc.com/_vti_bin/SiteData.asmx: Server redirected too many times
(20)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown
Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.mapException(HTTPConduit.java:2058)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:2043)
at
org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:639)
at
org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
... 8 more
Caused by: java.net.ProtocolException: Server redirected too many times (20)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown
Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection$6.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at
sun.net.www.protocol.http.HttpURLConnection.getChainedException(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown
Source)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:2250)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:2134)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1988)
... 11 more
Caused by: java.net.ProtocolException: Server redirected too many times (20)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown
Source)
at java.net.HttpURLConnection.getResponseCode(Unknown Source)
at
org.apache.cxf.transport.http.HTTPConduit.processRetransmit(HTTPConduit.java:1457)
at
org.apache.cxf.transport.http.HTTPConduit.access$600(HTTPConduit.java:146)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleRetransmits(HTTPConduit.java:2102)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:2129)
... 12 more
Exception in thread "main" javax.xml.ws.WebServiceException: Could not send
Message.
at
org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135)
at $Proxy39.getSite(Unknown Source)
at
com.microsoft.schemas.sharepoint.soap.SiteDataSoap_SiteDataSoap_Client.main(SiteDataSoap_SiteDataSoap_Client.java:190)
Caused by: java.net.ProtocolException: ProtocolException invoking
http://corp.abc.com/_vti_bin/SiteData.asmx: Server redirected too many times
(20)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown
Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.mapException(HTTPConduit.java:2058)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:2043)
at
org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:639)
at
org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:244)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:516)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:313)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:265)
at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
at
org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:124)
... 2 more
Caused by: java.net.ProtocolException: Server redirected too many times (20)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown
Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection$6.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at
sun.net.www.protocol.http.HttpURLConnection.getChainedException(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown
Source)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:2250)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:2134)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1988)
... 11 more
Caused by: java.net.ProtocolException: Server redirected too many times (20)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown
Source)
at java.net.HttpURLConnection.getResponseCode(Unknown Source)
at
org.apache.cxf.transport.http.HTTPConduit.processRetransmit(HTTPConduit.java:1457)
at
org.apache.cxf.transport.http.HTTPConduit.access$600(HTTPConduit.java:146)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleRetransmits(HTTPConduit.java:2102)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:2129)
... 12 more
Can you please help me with this?
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.