hc-httpclient-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Patricia Goldweic" <pgoldw...@northwestern.edu>
Subject RE: any suggestions as to what could be wrong here?
Date Wed, 24 Jun 2009 15:32:10 GMT
I think that you were right, Oleg. The problem was that while doing the
connection within B itself, the hostname was including a port number, and
not otherwise :-(. Thanks so much for helping debug this!
-Patricia

> -----Original Message-----
> From: Oleg Kalnichevski [mailto:olegk@apache.org] 
> Sent: Wednesday, June 24, 2009 9:48 AM
> To: HttpClient User Discussion
> Subject: Re: any suggestions as to what could be wrong here?
> 
> On Wed, Jun 24, 2009 at 09:45:10AM -0500, Patricia Goldweic wrote:
> > I'm afraid I AM using the hostname already - as extracted with
> > URL.getHost()- (my use of "mydomain" in my code below was actually 
> > misleading).
> > Essentially, I have no trouble using the exact same 
> code/credentials 
> > to communicate from server A to server B, but it fails only when 
> > communicate from B to itself (that is, from one servlet in 
> B, to another servlet in B).
> > -Patricia
> > 
> 
> I still suspect credentials cannot be found because the 
> hostname of host B and that of the AuthScope do not match.
> 
> Oleg
>  
> > 
> > > -----Original Message-----
> > > From: Oleg Kalnichevski [mailto:olegk@apache.org]
> > > Sent: Wednesday, June 24, 2009 7:47 AM
> > > To: HttpClient User Discussion
> > > Subject: Re: any suggestions as to what could be wrong here?
> > > 
> > > On Mon, Jun 22, 2009 at 05:12:11PM -0500, Patricia Goldweic wrote:
> > > > Hi,
> > > > I've (very) recently started using httpclient (3.1) in 
> my Java app. 
> > > > I've successfully been able to make connections from a
> > > program running
> > > > on server A to another program (servlet) running on server
> > > B, where B
> > > > uses Tomcat as the servlet container, and DIGEST 
> authentication is 
> > > > used to authenticate between A and B.
> > > > Now, here is the problem: within server B, I need to make
> > > another http
> > > > request to a different servlet running also on B, in 
> the same web 
> > > > application as A. I used exactly the same code to create the 
> > > > Httpclient instance, set credentials, and execute a 
> GetMethod that 
> > > > does what I need on that second servlet on B, that what
> > > I've used for
> > > > connections between A and B.
> > > > However, when this new httpclient connection is created and
> > > run within
> > > > B, I get  a 'No credentials available for DIGEST: '<REALM
> > > NAME>&<DOMAIN NAME>'.
> > > > One thing to note (perhaps): on the web application on 
> B, the http 
> > > > client instances are created within a background thread
> > > that is part
> > > > of the web application.
> > > >  
> > > > Does anybody have any suggestions as to what could be 
> causing this 
> > > > credentials issue? (BTW, I'm printing out my own debugging
> > > statements
> > > > when I set the credentials in the httpclient instance, right 
> > > > before the call to executeMethod).
> > > > My code is as follows:
> > > >  
> > > > private HttpClient getHttpClient() {
> > > >     HttpClient client = new HttpClient();
> > > >     List<String> authPrefs = new ArrayList<String>(1);
> > > >     authPrefs.add(AuthPolicy.DIGEST);
> > > >     
> > > > client.getParams().setParameter(AuthPolicy.AUTH_SCHEME_PRIORITY,
> > > > authPrefs);
> > > >     client.getState().setCredentials(new 
> AuthScope("mydomain", -1,
> > > 
> > > Patricia,
> > > 
> > > The first parameter of AuthScope is expected to be a 
> hostname, not a 
> > > domain name.
> > > 
> > > Hope this helps
> > > 
> > > Oleg
> > > 
> > > 
> > > > "myrealm"), new UsernamePasswordCredentials("myaccount",
> > > "mypassword")));
> > > >     return client;
> > > > }
> > > >  
> > > > And I'm using it as follows :
> > > >  
> > > > HttpClient client = getHttpClient(); GetMethod get = new 
> > > > GetMethod("someurlWithinB"); get.setDoAuthentication(true); int 
> > > > responseCode = 0; String responseString = null; try {
> > > >     responseCode = client.executeMethod(get);
> > > >     ... (here I check the response code and find '401' )
> > > >     } catch (Exception) 
> > > >     ...
> > > > }
> > > >  
> > > >  
> > > > -Patricia
> > > 
> > > 
> --------------------------------------------------------------------
> > > - To unsubscribe, e-mail: 
> httpclient-users-unsubscribe@hc.apache.org
> > > For additional commands, e-mail: 
> httpclient-users-help@hc.apache.org
> > > 
> > 
> > 
> > 
> > 
> ---------------------------------------------------------------------
> > To unsubscribe, e-mail: httpclient-users-unsubscribe@hc.apache.org
> > For additional commands, e-mail: httpclient-users-help@hc.apache.org
> > 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: httpclient-users-unsubscribe@hc.apache.org
> For additional commands, e-mail: httpclient-users-help@hc.apache.org
> 



---------------------------------------------------------------------
To unsubscribe, e-mail: httpclient-users-unsubscribe@hc.apache.org
For additional commands, e-mail: httpclient-users-help@hc.apache.org


Mime
View raw message