Hi Thom,
Yes, I got it. It looks like it contains just the initial request
that sets the cookies. Could you also add the second request? Also
it's possible to just include the headers in the log, the content is
not terrible useful, by setting:
System.setProperty("org.apache.commons.logging.simplelog.log.httpclient.wire.header",
"debug");
instead of
System.setProperty("org.apache.commons.logging.simplelog.log.httpclient.wire",
"debug");
Thanks,
Mike
On 9/7/05, Thom Hehl <[EMAIL PROTECTED]> wrote:
> Michael,
>
> I sent the wire log to you directly because it was too big to be sent to
> the list. Please let me know if you didn't get it.
>
> Thanks.
>
> Michael Becke wrote:
>
> >Hi Thom,
> >
> >Actually if you could send a wire log and describe the exact problem
> >that would be helpful.
> >
> ><http://jakarta.apache.org/commons/httpclient/logging.html>
> >
> >Thanks,
> >
> >Mike
> >
> >On 9/7/05, Thom Hehl <[EMAIL PROTECTED]> wrote:
> >
> >
> >>Here's what comes back in the headers of the first request. Is this helpful?
> >>
> >>*** Response ***
> >>Status Line: HTTP/1.1 200 OK
> >>Date: Wed, 07 Sep 2005 11:58:31 GMT
> >>Server: Apache/1.3.33 (Unix) mod_jk/1.2.8 Sun-ONE-ASP/4.0.0
> >>mod_auth_passthrough/1.8 mod_log_bytes/1.2 mod_bwlimited/1.4 PHP/4.3.11
> >>FrontPage/5.0.2.2635 mod_ssl/2.8.22 OpenSSL/0.9.7a
> >>Set-Cookie: id=bmedia; expires=Wed,14-Sep-2005 10:37:31 GMT;
> >>Set-Cookie: pw=solutions; expires=Wed,14-Sep-2005 10:37:31 GMT;
> >>Set-Cookie: listing_search=;
> >>Set-Cookie: listing_keyword=;
> >>Set-Cookie: listing_pagenum=1;
> >>Transfer-Encoding: chunked
> >>Content-Type: text/html
> >>
> >>
> >>Michael Becke wrote:
> >>
> >>
> >>
> >>>Hi Thom,
> >>>
> >>>The 2109 implementation uses the version of the cookies set by the
> >>>server. My guess is that the Set-Cookie header is setting the cookies
> >>>with version 0. This is what 2109 will send back.
> >>>
> >>>Mike
> >>>
> >>>On 9/7/05, Thom Hehl <[EMAIL PROTECTED]> wrote:
> >>>
> >>>
> >>>
> >>>
> >>>>OK, I think I'm beginning to understand what's going on with my cookie
> >>>>problem, but need some more guidance if anyone can help.
> >>>>
> >>>>Here is my sourcecode:
> >>>>
> >>>> /**
> >>>> * Constructor
> >>>> * @param base the base URL from which all CGI scripts will be relative
> >>>> * @param user user name to use for logging in
> >>>> * @param passwd password to use for logging in
> >>>> */
> >>>> public ItoolsRepublish(String base, String user, String passwd)
> >>>> {
> >>>> MyLog.setLevel(Level.DEBUG);
> >>>> MyLog.info("Constructor");
> >>>> if(MyLog.isDebugEnabled())
> >>>> {
> >>>> MyLog.debug("base:"+base);
> >>>> MyLog.debug("user:"+user);
> >>>> MyLog.debug("passwd:"+passwd);
> >>>> }
> >>>> //create a singular HttpClient object
> >>>> Client = new HttpClient();
> >>>>
> >>>> //establish a connection within 5 seconds
> >>>> Client.getHttpConnectionManager().
> >>>> getParams().setConnectionTimeout(TIMEOUT);
> >>>> Client.getHostConfiguration().setHost(base, 80, "http");
> >>>> Client.getParams().setCookiePolicy(CookiePolicy.RFC_2109);
> >>>>
> >>>> StringBuffer sb=new StringBuffer("http://");
> >>>> sb.append(base);
> >>>> sb.append(ADMIN);
> >>>>
> >>>> UrlBase=sb.toString();
> >>>> User=user;
> >>>> Password=passwd;
> >>>> }
> >>>>
> >>>> /**
> >>>> * process the admin script to re-publish the web pages
> >>>> * @throws heavyweight.Exception for a variety of problems
> >>>> */
> >>>> public void process()
> >>>> throws heavyweight.Exception,
> >>>> java.io.IOException
> >>>> {
> >>>> String response;
> >>>>
> >>>> // Prepare login parameters
> >>>> NameValuePair userid = new NameValuePair("id", User);
> >>>> NameValuePair password = new NameValuePair("pw", Password);
> >>>>
> >>>> //and login
> >>>> response=execute(UrlBase, new NameValuePair[] {userid, password});
> >>>> response=execute(UrlBase, new NameValuePair[] {
> >>>> new NameValuePair("setup_options_edit","1")});
> >>>>
> >>>> }
> >>>>
> >>>> /**
> >>>> * execute a method
> >>>> * @param url the url to be executed
> >>>> * @param parms a name value pair array of parameters to pass to the
> >>>> * script.
> >>>> * @return a string containing the HTML returned
> >>>> * @throws heavyweight.Exception for a variety of problems
> >>>> */
> >>>> private String execute(String url, NameValuePair[] parms)
> >>>> throws heavyweight.Exception
> >>>> {
> >>>> PostMethod method = new PostMethod(url);
> >>>>
> >>>> if(parms==null)
> >>>> {
> >>>> throw new IllegalArgumentException("Must pass paramters to
> >>>>execute (url, parms). For no parms, use execute(String)\n");
> >>>> }
> >>>> method.setRequestBody(parms);
> >>>>
> >>>> //execute the method
> >>>> String responseBody = null;
> >>>> int tries=0;
> >>>> boolean successful=false;
> >>>>
> >>>> do
> >>>> {
> >>>> try
> >>>> {
> >>>> Client.executeMethod(method);
> >>>> responseBody = method.getResponseBodyAsString();
> >>>> successful=true;
> >>>> } catch (HttpException he)
> >>>> {
> >>>> StringBuffer sb=new StringBuffer("Http error connecting
> >>>>to '");
> >>>> sb.append(url);
> >>>> sb.append("'\n");
> >>>> MyLog.error(sb.toString());
> >>>> MyLog.error(he.getMessage());
> >>>>
> >>>> if(++tries>RETRY_COUNT)
> >>>> {
> >>>> throw new heavyweight.Exception(sb.toString(), he);
> >>>> }
> >>>> } catch (IOException ioe)
> >>>> {
> >>>> StringBuffer sb=new StringBuffer("Unable to connect to '");
> >>>> sb.append(url);
> >>>> sb.append("'\n");
> >>>> MyLog.error(sb.toString());
> >>>> MyLog.error(ioe.getMessage());
> >>>>
> >>>> if(++tries>RETRY_COUNT)
> >>>> {
> >>>> throw new heavyweight.Exception(sb.toString(), ioe);
> >>>> }
> >>>> }
> >>>> } while(!successful);
> >>>>
> >>>> //write out the request headers
> >>>> System.out.println("*** Request ***");
> >>>> System.out.println("Request Path: " + method.getPath());
> >>>> System.out.println("Request Query: " + method.getQueryString());
> >>>> Header[] requestHeaders = method.getRequestHeaders();
> >>>> for (int i=0; i<requestHeaders.length; i++){
> >>>> System.out.print(requestHeaders[i]);
> >>>> }
> >>>>
> >>>> //write out the cookies
> >>>> if(MyLog.isDebugEnabled())
> >>>> {
> >>>> MyLog.debug("*** Cookies ***");
> >>>> for(Cookie ck:Client.getState().getCookies())
> >>>> {
> >>>> MyLog.debug(ck.toString());
> >>>> }
> >>>> }
> >>>>
> >>>> //write out the response headers
> >>>> System.out.println("*** Response ***");
> >>>> System.out.println("Status Line: " + method.getStatusLine());
> >>>> Header[] responseHeaders = method.getResponseHeaders();
> >>>> for (int i=0; i<responseHeaders.length; i++){
> >>>> System.out.print(responseHeaders[i]);
> >>>> }
> >>>>
> >>>> //write out the response body
> >>>> System.out.println("*** Response Body ***");
> >>>> System.out.println(responseBody);
> >>>>
> >>>> //clean up the connection resources
> >>>> method.releaseConnection();
> >>>>
> >>>> return responseBody;
> >>>> }
> >>>>
> >>>>Now the problem appears to be that my cookie doesn't make it from the
> >>>>first request for login into the second request to do something. I've
> >>>>been researching this and have maybe figured something out.
> >>>>
> >>>>As you can see in my source, I am using CookiePolicy.RFC_2109. I pulled
> >>>>the spec for this from http://www.ietf.org/rfc/rfc2109.txt which says:
> >>>>
> >>>> Version=version
> >>>> Required. The Version attribute, a decimal integer, identifies to
> >>>> which version of the state management specification the cookie
> >>>> conforms. For this specification, Version=1 applies.
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>But in my request header, when it sends the cookies back, it says:
> >>>>Cookie: $Version=0; id=bmedia
> >>>>Cookie: $Version=0; pw=solutions
> >>>>Cookie: $Version=0; listing_search=
> >>>>Cookie: $Version=0; listing_keyword=
> >>>>Cookie: $Version=0; listing_pagenum=1
> >>>>
> >>>>According to RFC_2109, shouldn't this be $Version=1? Could this be
> >>>>causing me to lose my login information on following attempts to access
> >>>>the web page?
> >>>>
> >>>>Please advise.
> >>>>
> >>>>Thanks.
> >>>>
> >>>>
> >>>>
> >>>>--
> >>>>"In every revolution, there is one man with a vision."--Jerome Bixby
> >>>>
> >>>>Thom Hehl
> >>>><A href="www.heavyweightsoftware.com"> www.heavyweightsoftware.com</A>
> >>>>
> >>>>
> >>>>---------------------------------------------------------------------
> >>>>To unsubscribe, e-mail: [EMAIL PROTECTED]
> >>>>For additional commands, e-mail: [EMAIL PROTECTED]
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>---------------------------------------------------------------------
> >>>To unsubscribe, e-mail: [EMAIL PROTECTED]
> >>>For additional commands, e-mail: [EMAIL PROTECTED]
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>--
> >>"In every revolution, there is one man with a vision."--Jerome Bixby
> >>
> >>Thom Hehl
> >><A href="www.heavyweightsoftware.com"> www.heavyweightsoftware.com</A>
> >>
> >>
> >>---------------------------------------------------------------------
> >>To unsubscribe, e-mail: [EMAIL PROTECTED]
> >>For additional commands, e-mail: [EMAIL PROTECTED]
> >>
> >>
> >>
> >>
> >
> >---------------------------------------------------------------------
> >To unsubscribe, e-mail: [EMAIL PROTECTED]
> >For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
> >
> >
>
>
> --
> "In every revolution, there is one man with a vision."--Jerome Bixby
>
> Thom Hehl
> <A href="www.heavyweightsoftware.com"> www.heavyweightsoftware.com</A>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]