You've probably got it fixed by now but...
I think all you need to do is add this before executing the post:
authPost.setFollowRedirects(true);

As memory serves, I think it only follows up to a set maximum number of redirects (in an attempt to prevent infinite loops). It's been a while since I dug around the HttpClient code so I can't remember if that value is configurable.

HTH,

Jon

Chris Ward wrote:

Tomcat-Users
(Cc:Matt/Adam),


I've just tried doing a redirect to j_security_check using the commons package "org.apache.commons.httpclient".

The error I get from the code is

[INFO] HttpMethodBase - -Redirect requested but followRedirects is
disabled
statusCode : 302

Any clues given my code below (which is more than a bit similar to
Matt's ;o) )



- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - -


static private final String authURL = "j_security_check";

<snip>


HttpClient client = new HttpClient(); client.getHostConfiguration().setHost(
request.getServerName(),
request.getServerPort(),
request.getScheme()
);
PostMethod authPost = new PostMethod( request.getContextPath() +
"/" + authURL );
NameValuePair user = new NameValuePair( "j_username", username
);
NameValuePair pass = new NameValuePair( "j_password", password
);
authPost.setRequestBody( new NameValuePair[] { user, pass } );
client.executeMethod(authPost);
authPost.releaseConnection();
int statusCode = authPost.getStatusCode();


- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - -


I'm think I've either got the authURL wrong or I need to do something
in web.xml.

Any light cast on this would be great.

Many thanks as always,
Chris



It's standard container managed security stuff - I first invoke a protected URL - in index.jsp - I redirect to mainMenu.do - and *.do is protected. Based on security constraints in web.xml, I'm presented with a form-login-page "login.jsp" - rather than having action="j_security_check" in this form, I have action="/security/authorize" - which is mapped to my own LoginServlet. In the LoginServlet, I encrypt the password (optionally based on an init-parameter), set some cookies and do an HTTP Post to j_security_check. Works on Tomcat 4-5 and Resin 3.x.

Matt

On Dec 3, 2003, at 4:21 PM, Adam Hardy wrote:


Matt,
are you really managing to post a form to j_security_check without
invoking it first, or is that some sort of black magic

you've cooked


up?

Or have I just misunderstood what Chris said?

Adam

On 12/03/2003 09:24 PM Matt Raible wrote:

Chris,
I found your post at
http://www.mail-archive.com/tomcat-user%40jakarta.apache.org/ msg111700.html and I'm cc'ing the list in case anyone else is interested in this info (I'm not subscribed).
I've actually improved the "Remember Me" feature a fair

amount since


I posted to the Tomcat User list. The sendRedirect

works, however,


it (in some browsers) puts the URL (with password) into

the address


bar. This isn't a big deal IMO since it's the user that

just logged


in and they don't mind seeing their own passwords.

However, the URL


tends to show up in server log files which can be a

security hole.


Because of this, I changed to using an HTTP Post with Jakarta Common's HttpClient. I also moved my form-login-page and form-error-page into a "security" folder and then set my

cookies for


the /appname/security path rather than / - this makes it so the user/pass cookies are more secure and can only be retrieved when logging in, rather than for any URL in the site.
That being said, I've updated one of my sample apps with these changes and you can download it if you'd like:
http://raibledesigns.com/wiki/Wiki.jsp?page=AppFuse
Here's my updated LoginServlet that does an Http Post instead of a Get:
http://tinyurl.com/xl80
HTH,
Matt
On Dec 3, 2003, at 12:52 PM, Chris Ward wrote:


Hi Matt,

Sorry for sending unsolicited email but I've been looking

at some of


your postings to Tomcat-User and wondered if I could ask

a couple of


questions. I've tried posting to list but had no response from anyone there.

Specifically, it's regarding your "remember me" login stuff. If this is a pain feel free to ignore this email.


Best regards Chris

p.s. My question the list was under the subject
"servlet sendRedirect() to j_security_check problem"


--
struts 1.1 + tomcat 5.0.14 + java 1.4.2
Linux 2.4.20 RH9


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



Reply via email to