-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Rop,
On 12/21/12 4:01 PM, rop wrote:
> I got the responsibility of maintaining a legacy web-application
> running on Tomcat 5.5.36 and using the *j_security_check* feature
> for user-authentication.

Obligatory warning: Tomcat 5.5.x is no longer supported. You will
likely get better help, feedback, results, etc. by upgrading. Most web
applications can be migrated to later versions (Tomcat 7.0.x is
current) with little adjustment.

Moving on...

To be clear, you're talking about using FORM authentication, right?

> One problem scenario I am looking into:
> 
> When you first start the browser and logon to the application,
> everything works OK....
> 
> The application receives the username from
> *request.getRemoteUser()* and looks up user-roles in config-tables,
> for exactly what each user is allowed to do in the GUI.

Technically, Tomcat uses role-based authorization for URL-patterns.
Whatever you do in the GUI is up to you.

> *The problem is* when a user leaves the application inactive for
> an extended time (not clear yet exactly how long, but more than an
> hour) and then submits a form.

In this case, the HttpSession has expired and the user is no longer
authenticated.

> It now appears that tomcat may have discarded the
> authentication-info, because of time-out I guess, and
> *request.getRemoteUser()* will return *null *, which result in a
> broken GUI-display.

Since Tomcat does not control your UI, this is your application's fault.

> I would expect (prefer) Tomcat, in this case to request the 
> login-credentials anew, before accessing the application, but for
> some reason it does not.

If you have a <security-constraint> with an <auth-constraint> on the
URL(s) you are serving, then Tomcat *will* request the user's
credentials anew. I suspect you have a simple "login" screen that is
protected and nothing else is.

> For info, the *web.xml* under *{TOMCAT_HOME}/config* has 
> ...<session-timeout>240</session-timeout>...

That is likely a mistake on your (or someone else at your
organization's) part.

> while the *web.xml* in the application WAR-file has no
> session-timeout specified at all.

This is the proper place for a web application's session timeout to be
set.

> What do I need to do to get Tomcat to always ask for
> login-credentials again, when needed, and make sure
> *request.getRemoteUser()* is never null when calling the
> application?

Please post an example URL to your web application that results in a
"broken GUI" after the session times-out.

Also, post all <security-constraint> elements (and their children)
from your WEB-INF/web.xml file. Feel free to sanitize and/or anonymize
them as necessary (but consistently: if you say that you are
requesting /foo/bar and your constraint is on /bar/baz then we're
going to tell you that's the problem).

- -chris
-----BEGIN PGP SIGNATURE-----
Version: GnuPG/MacGPG2 v2.0.17 (Darwin)
Comment: GPGTools - http://gpgtools.org
Comment: Using GnuPG with undefined - http://www.enigmail.net/

iEYEAREIAAYFAlDU474ACgkQ9CaO5/Lv0PBHTwCdF+G0v+l9+T1Ht2tjoe4RJiB1
1zgAni2Px6X/nddHKiDfKxEF8Il30Yg9
=Aykg
-----END PGP SIGNATURE-----

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to