You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Daniel Kulp (JIRA)" <ji...@apache.org> on 2011/08/31 22:46:10 UTC

[jira] [Updated] (CXF-3185) CXF client NTLM Authentication Issue

     [ https://issues.apache.org/jira/browse/CXF-3185?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Daniel Kulp updated CXF-3185:
-----------------------------

    Fix Version/s: NeedMoreInfo


Any chance you can retest this with CXF 2.4.2?   There has been a lot of work in the http stuff that may have already fixed this.   Also try setting the BindingProvider.USERNAME_PROPERTY and PASSWORD_PROPERTY on the request context to see if that helps.



> 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
>             Fix For: NeedMoreInfo
>
>
> 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.
For more information on JIRA, see: http://www.atlassian.com/software/jira