Hi Martin,

First off, thanks for taking the time to respond.

If you look at my original post, you'll notice that I quoted the same part
of the documentation.  The problem was that although the doc asserts that
Tomcat does cache Basic Auth credentials, we tested this by viewing LDAP
logs and we observed that Tomcat authenticated every request against our
LDAP server.

I believe the doc is incorrect in stating that Tomcat caches Basic Auth
credentials.  The browser automatically caches the Basic Auth credentials
for a site/realm and automatically sends them via the Authorization header
on every subsequent request to the same site/realm.  This is great for the
user but it still resulted in our LDAP server getting hammered.

Apache HTTP Server on the other hand has a configuration setting where you
can do server-side caching of Basic Auth credentials for a period of time.
The browser still sends the Authorization header on each subsequent request,
but as long as Apache recognizes the Base64 encoded username:password within
that period of time, Apache assumes the user is still valid and doesn't
check with LDAP.  Once we configured Apache to cache Basic Auth credentials
on the server side, we observed that we only had one LDAP entry per user
(caused by the first non-cached authentication).

Does what I said make sense?  It's possible that we had a Tomcat
configuration error but we couldn't find any additional information on Basic
Auth caching other than the doc section both you and I have now quoted.

Thanks again.

On 4/29/07, Martin Gainty <[EMAIL PROTECTED]> wrote:

Hello Bill

http://tomcat.apache.org/tomcat-5.5-doc/realm-howto.html
"Once a user has been authenticated, the user (and his or her associated
roles) are cached within Tomcat for the duration of the user's login. (For
FORM-based authentication, that means until the session times out or is
invalidated; for BASIC authentication, that means until the user closes
their browser)"

I concur to look at authentication from another source such as Apache if
you're looking for BASIC auth beyond the session's timeout or is
invalidated
(including user close of Browser)

Does this conform to your understanding?

Thx,
Martin
This email message and any files transmitted with it contain confidential
information intended only for the person(s) to whom this email message is
addressed.  If you have received this email message in error, please
notify
the sender immediately by telephone or email and destroy the original
message without making a copy.  Thank you.

----- Original Message -----
From: "Bill Higgins" <[EMAIL PROTECTED]>
To: <users@tomcat.apache.org>
Sent: Sunday, April 29, 2007 8:44 PM
Subject: Re: caching principals within Tomcat using Basic Auth and LDAP


> FYI, we ended up finding a solution to the problem above, but it
required
> us
> to use Apache HTTP Server rather than Tomcat to secure the URLs and
cache
> the Basic Auth credentials (since Tomcat apparently cannot do so) and
> configure Tomcat to respect the other component as the trusted source of
> principal information.
>
> In detail:
>
>   - remove all security constraints from our Tomcat webapp's web.xmlfile
>   - install Apache HTTP Server to front Tomcat and configure Apache to
>   secure the same paths that Tomcat had previously secured
>   - configure Apache to cache Basic Auth credentials for 10 minutes at a
>   time
>   - configure Tomcat so that when you call
>   HttpServletRequest#getRemoteUser(), Tomcat gets the info from Apache
>   (this is invisible to the calling code)
>
> --
>
> - Bill
>


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




--

- Bill

Reply via email to