Thanks a lot Srivatsan. I already tried suggested code and get following exception.
Exception in thread "main" java.io.IOException: Server returned HTTP response code: 500 for URL: https://wkqasv0304/cw_common/servlet/PingCaSServlet?request=init at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1313) at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:234) at ntlmtest01.NtlmTest01.getAuthenticatedResponse(NtlmTest01.java:51) at ntlmtest01.NtlmTest01.main(NtlmTest01.java:29) Note that I am using IIS 6/Tomcat 6 as Web Server. IIS is set for "Integrated Windows Authentication". Everything works fine if I change to "Basic Windows authentication". I tried using Apache HttpClient samples too and same result (Error 500). Don't know how to debug. If I use same URL in browsers; works fine. Thanks again. Milind Kadam On Wed, Nov 16, 2011 at 11:01 AM, Srivatsan <[email protected]>wrote: > > Milind - I am yet to try the option suggested by Oleg. However, got it > working with the code given in the link - > http://www.muneebahmad.com/index.php/archives/127 > > Regards, > Srivatsan > > > mkjee wrote: > > > > > > Hi Srivatsan, > > > > I have a similar issue where URL works fine via browser but fails from > > JAVA client when web server is IIS with NTLM authentication. Did you find > > any solution for this problem? > > > > Thanks in advance, > > Milind > > > > > > > > > > Srivatsan wrote: > >> > >> Have a similar issue. With the code below - authentication is > >> unsuccessful when using the credentials of a local user. By local user, > >> the domain name / realm is the host itself. However, authentication is > >> successful with the same credentials when accessed from browser. > >> > >> DefaultHttpClient httpclient = new DefaultHttpClient(); > >> List<String> authpref = new ArrayList<String>(); > >> authpref.add(AuthPolicy.NTLM); > >> > httpclient.getParams().setParameter(AuthPNames.TARGET_AUTH_PREF, > >> authpref); > >> NTCredentials creds = new NTCredentials("uid", "pwd", > "ip", "domain"); > >> > httpclient.getCredentialsProvider().setCredentials(AuthScope.ANY, > >> creds); > >> HttpHost target = new HttpHost(<IP>, 80, "http"); > >> // Make sure the same context is used to execute logically > related > >> requests > >> HttpContext localContext = new BasicHttpContext(); > >> // Execute a cheap method first. This will trigger NTLM > authentication > >> HttpGet httpget = new HttpGet(<URL>); > >> HttpResponse response; > >> try { > >> response = httpclient.execute(target, httpget, > localContext); > >> System.out.println("Status Code:" + > >> response1.getStatusLine().getStatusCode()); > >> BufferedReader isr = new BufferedReader (new > >> InputStreamReader(response.getEntity().getContent())); > >> while (isr.readLine() != null) { > >> System.out.println("Content is: ********" > + isr.readLine()); > >> } > >> HttpEntity entity = response1.getEntity(); > >> EntityUtils.consume(entity); > >> } catch (ClientProtocolException e) { > >> // TODO Auto-generated catch block > >> e.printStackTrace(); > >> } catch (IOException e) { > >> // TODO Auto-generated catch block > >> e.printStackTrace(); > >> } > >> > >> Added the HTTP wire log. > >> http://old.nabble.com/file/p32819071/localuser-nabble.txt > >> localuser-nabble.txt > >> > >> Any pointers, please? > >> > >> Thanks, > >> Srivatsan > >> > >> > >> olegk wrote: > >>> > >>> On Sun, 2011-04-17 at 20:03 +0530, Dilshan Edirisuriya wrote: > >>>> Hi , > >>>> > >>>> I have a web page that need to access with NTLM authentication on my > >>>> local > >>>> machine and i can see the expected behavior with Web browsers. But > when > >>>> I > >>>> try to access same page using HTTPClient 4.1 I'm getting following > >>>> exception. > >>>> > >>>> > >>>> Apr 17, 2011 7:18:23 PM > >>>> org.apache.http.client.protocol.RequestTargetAuthentication process > >>>> SEVERE: Authentication error: Invalid name provided (Mechanism level: > >>>> Could > >>>> not load configuration file C:\Windows\krb5.ini (The system cannot > find > >>>> the > >>>> file specified)) > >>>> Status :: HTTP/1.1 401 Unauthorized > >>>> > >>>> > >>> > >>> Dilshan > >>> > >>> HttpClient chooses SPNEGO/kerberos auth scheme over NTLM per default in > >>> case the server supports both, as SPNEGO/kerberos is considered > somewhat > >>> more secure than NTLM. > >>> > >>> You can alter the order of preferred auth schemes by using > >>> 'http.auth.target-scheme-pref' or 'http.auth.proxy-scheme-pref' > >>> parameters: > >>> > >>> > http://hc.apache.org/httpcomponents-client-ga/tutorial/html/authentication.html#d4e869 > >>> > >>> Just a general remark: when troubleshooting problems with HttpClient a > >>> wire / context log of the HTTP session exhibiting the problem helps a > >>> great deal. > >>> > >>> Oleg > >>> > >>> > >>>> This is my sample code and it exactly same as example given in here > >>>> > http://hc.apache.org/httpcomponents-client-ga/tutorial/html/authentication.html#ntlm > >>>> > >>>> DefaultHttpClient httpclient = new DefaultHttpClient(); > >>>> > >>>> NTCredentials creds = new NTCredentials("user", "pwd", > "machin-name", > >>>> "machin-name"); > >>>> httpclient.getCredentialsProvider().setCredentials(AuthScope.ANY, > >>>> creds); > >>>> > >>>> Host target = new HttpHost("localhost", 9090, "http"); > >>>> HttpContext localContext = new BasicHttpContext(); > >>>> > >>>> // Execute a cheap method first. This will trigger NTLM authentication > >>>> HttpGet httpget = new HttpGet("/hello1"); > >>>> HttpResponse response = httpclient.execute(target, httpget, > >>>> localContext); > >>>> HttpEntity entity = response.getEntity(); > >>>> System.out.println(" Status :: "+ response.getStatusLine()); > >>>> > >>>> > >>>> Further analyzing i found there is no 'Authorization:" header in > >>>> outgoing > >>>> messages where this header is available with browser access. Please > >>>> note > >>>> that I used same name/password/Domain for browser access too. > >>>> > >>>> Appreciate for any help to resolve this ? > >>>> > >>>> Thank you , > >>>> > >>>> Dilshan > >>> > >>> > >>> > >>> --------------------------------------------------------------------- > >>> To unsubscribe, e-mail: [email protected] > >>> For additional commands, e-mail: [email protected] > >>> > >>> > >>> > >> > >> > > > > > > -- > View this message in context: > http://old.nabble.com/Issues-accessing-NTLM-server-using-HTTPClient-4.1-tp31417743p32855631.html > Sent from the HttpClient-User mailing list archive at Nabble.com. > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > >
