| Iterates an
Authentication request through a list of
AuthenticationProvider s.
Can optionally be configured with a
ConcurrentSessionController to limit the number of sessions a user can
have.
AuthenticationProvider s are tried in order until one provides a non-null response.
A non-null response indicates the provider had authority to decide on the authentication request and no further
providers are tried. If an AuthenticationException is thrown by a provider, it is retained until
subsequent providers are tried. If a subsequent provider successfully authenticates the request, the earlier
authentication exception is disregarded and the successful authentication will be used. If no subsequent provider
provides a non-null response, or a new AuthenticationException , the last
AuthenticationException received will be used. If no provider returns a non-null response, or indicates
it can even process an Authentication , the ProviderManager will throw a
ProviderNotFoundException .
If a valid Authentication is returned by an AuthenticationProvider , the
ProviderManager will publish an
org.acegisecurity.event.authentication.AuthenticationSuccessEvent . If an AuthenticationException is
detected, the final AuthenticationException thrown will be used to publish an appropriate failure
event. By default ProviderManager maps common exceptions to events, but this can be fine-tuned by
providing a new exceptionMappings java.util.Properties object. In the properties object,
each of the keys represent the fully qualified classname of the exception, and each of the values represent the
name of an event class which subclasses
org.acegisecurity.event.authentication.AbstractAuthenticationFailureEvent and provides its constructor.
See Also: ConcurrentSessionController |