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]
>
>

Reply via email to