Hi Ben,  (welcome back :)

Great, the isAuthenticated() is the exact key we need to determine
this particular even, irrespective of the cache.
I also agree that it should not be in the AuthenticationProviders...

Ben,  I created a JIRA entry for this (SEC-50), you can assign to me
if you want.

Cheers,
Mark

On 8/21/05, Ben Alex <[EMAIL PROTECTED]> wrote:
> Mark St.Godard wrote:
> 
> >The HttpSessionContextIntegrationFilter should be able to set some
> >sort of indicator that this is the first logon attempt since it
> >generates a new SecurityContext....   however this wouldnt work for
> >remote client authentication?
> >
> IMHO we should modify all event-aware AuthenticationProviders to publish
> an event on every occasion an authentication is processed, irrespective
> of the cache usage or not. There are three reasons for this:
> 
> 1. The Authentication.getDetails() *should* provide some sort of
> identifier (typically a WebAuthenticationDetails, which offers the
> HttpSession ID in most cases) and this identifier can be used by the
> ApplicationListener to determine what and when to log.
> 
> 2. Recent changes to Authentication and AbstractSecurityInterceptor have
> changed the semantics of Authentication.isAuthenticated():
> 
>    /**
>     * Used to indicate to <code>AbstractSecurityInterceptor</code>
> whether it
>     * should present the authentication token to the
>     * <code>AuthenticationManager</code>. Typically an
>     * <code>AuthenticationManager</code> (or, more often, one of its
>     * <code>AuthenticationProvider</code>s) will return an immutable
>     * authentication token after successful authentication, in which case
>     * that token can safely return <code>true</code> to this method.
>     * Returning <code>true</code> will improve performance, as calling the
>     * <code>AuthenticationManager</code> for every request will no
> longer be
>     * necessary.
>     *
>     * <p>
>     * For security reasons, implementations of this interface should be
> very
>     * careful about returning <code>true</code> to this method unless they
>     * are either immutable, or have some way of ensuring the properties
> have
>     * not been changed since original creation.
>     * </p>
>     *
>     * @return true if the token has been authenticated and the
>     *         <code>AbstractSecurityInterceptor</code> does not need to
>     *         represent the token for re-authentication to the
>     *         <code>AuthenticationManager</code>
>     */
>    public boolean isAuthenticated();
> 
> As such, a DaoAuthenticationProvider (or any other
> AuthenticationProvider for that matter) will only be called when a user
> is genuinely not authenticated - or the use has changed the
> AbstractSecurityInterceptor.alwaysReauthenticate property to false.
> 
> 3. Most authentication processing filters (certainly those use for CAS,
> AuthenticationProcessingFilter/form-based, remember-me, X509) now
> publish an InteractiveAuthenticationSuccessEvent when a user logs in.
> 
> I would welcome other opinions on this, but it seems we now have a more
> comprehensive solution to application event messages than putting then
> into AuthenticationProviders.
> 
> Cheers
> Ben
> 
> 
> 
> -------------------------------------------------------
> SF.Net email is Sponsored by the Better Software Conference & EXPO
> September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
> Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
> Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
> _______________________________________________
> Home: http://acegisecurity.sourceforge.net
> Acegisecurity-developer mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/acegisecurity-developer
>


-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
_______________________________________________
Home: http://acegisecurity.sourceforge.net
Acegisecurity-developer mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/acegisecurity-developer

Reply via email to