Thanks much. I swapped calls 1 & 3, it works just fine.

----- Original Message ----
From: Pid <[EMAIL PROTECTED]>
To: Tomcat Users List <users@tomcat.apache.org>
Sent: Sunday, February 3, 2008 3:33:35 PM
Subject: Re: j_security_check

The second POST should still occur, but it should occur after the 
initial GET is recovered after authentication.

Your confusion is that you are seeing the 1st GET, when you expect 
(incorrectly) the POST.

When you make the first request, you are not authenticated, which causes 
the 401 & the requirement for auth.  However, when you *do* successfully 
complete auth, you are then directed to the result of the initial 
request - which is a GET, with no params.

As Konstantin also explained, your first request could be the POST, 
complete with params, as that is where you will end up, after auth.


p



Ashok Venkat wrote:
> Thanks for the detailed explanation, as you mentioned it seems that the 
> second request is being ignored ,but i am not clear how come the original 
> request is matching with the second request? The original is GET and the 
> second one is POST? does tomcat compare just the URL strings?
> 
> 
> ----- Original Message ----
> From: Konstantin Kolinko <[EMAIL PROTECTED]>
> To: Tomcat Users List <users@tomcat.apache.org>
> Sent: Sunday, February 3, 2008 9:39:41 AM
> Subject: Re: j_security_check
> 
> You do
> 
> 1) GET call
>>            int_result = httpClient.executeMethod( getMethod );
> The server caches your request and returns html page that contains the
> login form.
> 
> 2) POST call
>>            postMethod = new PostMethod( 
>> "https://localhost:8444/j_security_check"; );
>>            int_result = httpClient.executeMethod( postMethod );
> You imitate posting the login form. If the credentials are OK, tomcat answers
> with a redirect to the original requested address (1).
> 
> response.sendRedirect(response.encodeRedirectURL(requestURI));
> 
> 3) When the next request comes, its url is compared against the one
> that was requested at the first time. If there is a match, the
> _original_ request is restored and processed, but the current one is
> ignored.
> 
> Thus your second POST is ignored and a cached copy of the first GET is
> used instead.
> 
> You may want to look in the sources of
> org.apache.catalina.authenticator.FormAuthenticator that does the
> trick.
> 
> It is by design. I do not know what was wrong with 5.0 that your code
> was working there.
> 
> You should change your code so that all the information be included
> with the first call to TestServlet.
> 
> And the second call to the TestServlet can be changed to be a simple
> GET, with no parameters. Or may be you can throw it away at all, if
> you set "postMethod.setFollowRedirects(true);" on your post to
> j_security_check.
> 
> ---------------------------------------------------------------------
> To start a new topic, e-mail: users@tomcat.apache.org
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 
>      
> ____________________________________________________________________________________
> Looking for last minute shopping deals?  
> Find them fast with Yahoo! Search.  
> http://tools.search.yahoo.com/newsearch/category.php?category=shopping


---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


      
____________________________________________________________________________________
Never miss a thing.  Make Yahoo your home page. 
http://www.yahoo.com/r/hs

Reply via email to