You are viewing a plain text version of this content. The canonical link for it is here.
Posted to httpclient-users@hc.apache.org by Prasad KVS <pk...@yahoo.com> on 2005/12/27 16:56:58 UTC

Authentication help

Hi,
When I tried to connect to a lotus domino server using
httpClient 3.0 to POST an xml file, I recieved
warnings:

2005/12/26 23:59:07:180 EST [WARN] HttpMethodDirector
- Required credentials not available for BASIC <any
realm>@camdev01.company.com:80
2005/12/26 23:59:07:180 EST [WARN] HttpMethodDirector
- Preemptive authentication requested but no default
credentials available

Then the response code is 200 with response body as
html for login page. 

But this was working when httpClient 2.0 was used. The
code snippet with both verisions 2 and 3 : 
/****************************/
String strXMLFilename = "c:\\corpdir.txt";
static final String username = "devtest02";
static final String password = "devtest02";
static final String urlString =
"http://camdev.company.name/...";
File input = new File(strXMLFilename);

  PostMethod post = new PostMethod(urlString);
  //   post.setRequestBody(new
FileInputStream(input)); //2.0    
 /*   if (input.length() < Integer.MAX_VALUE) {    
        
post.setRequestContentLength((int)input.length());
       } else {               
        
post.setRequestContentLength(EntityEnclosingMethod.CONTENT_LENGTH_CHUNKED);
       }  // 2.0
     */

     // 3.0  
    if (input.length() < Integer.MAX_VALUE) {       	
       post.setRequestEntity(new
InputStreamRequestEntity(new FileInputStream(input),
(int)input.length()));            
    } else {
       post.setContentChunked(true);
       post.setRequestEntity(new
InputStreamRequestEntity(new FileInputStream(input)));
     
    } // 3.0
    post.setRequestHeader("Content-type", "text/xml");
    post.setDoAuthentication(true);
        
    // Get HTTP client
    HttpClient httpclient = new HttpClient();
 //2.0
httpclient.getState().setAuthenticationPreemptive(true);
  

httpclient.getParams().setAuthenticationPreemptive(true);
//3.0
       
httpclient.getParams().setParameter("http.protocol.expect-continue",
new Boolean(true));
       
httpclient.getParams().setParameter("http.protocol.single-cookie-header",
new Boolean(true));
   Credentials defaultcreds = new
UsernamePasswordCredentials(username, password);
  // 2.0 httpclient.getState().setCredentials( null,
null, defaultcreds ); // 2.0
        
      // 3.0 
        httpclient.getState().setCredentials( new
AuthScope(urlString, 80, AuthScope.ANY_REALM),
defaultcreds );
      //3.0

    // Execute request
    int result = httpclient.executeMethod(post);
    System.out.println("Response status code: " +
result);
/***************************************/

In the debug mode, I could see the   httpState has
username and password set. Are there any other
parameters that need to be set? 

Thankyou,
Prasad. 



	
		
__________________________________ 
Yahoo! for Good - Make a difference this year. 
http://brand.yahoo.com/cybergivingweek2005/

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