|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.acegisecurity.AbstractAuthenticationManager
org.acegisecurity.providers.ProviderManager
public class ProviderManager
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 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 AbstractAuthenticationFailureEvent
and provides its constructor.
ConcurrentSessionController
Field Summary | |
---|---|
protected MessageSourceAccessor |
messages
|
Constructor Summary | |
---|---|
ProviderManager()
|
Method Summary | |
---|---|
void |
afterPropertiesSet()
|
protected void |
doAddExtraDefaultExceptionMappings(Properties exceptionMappings)
Provided so subclasses can add extra exception mappings during startup if no exception mappings are injected by the IoC container. |
Authentication |
doAuthentication(Authentication authentication)
Attempts to authenticate the passed Authentication object. |
List |
getProviders()
|
ConcurrentSessionController |
getSessionController()
The configured ConcurrentSessionController is returned or the NullConcurrentSessionController if a specific one has not been set. |
void |
setApplicationEventPublisher(ApplicationEventPublisher applicationEventPublisher)
|
void |
setMessageSource(MessageSource messageSource)
|
void |
setProviders(List newList)
Sets the AuthenticationProvider objects to be used for authentication. |
void |
setSessionController(ConcurrentSessionController sessionController)
Set the ConcurrentSessionController to be used for limiting user's sessions. |
Methods inherited from class org.acegisecurity.AbstractAuthenticationManager |
---|
authenticate |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected MessageSourceAccessor messages
Constructor Detail |
---|
public ProviderManager()
Method Detail |
---|
public void afterPropertiesSet() throws Exception
afterPropertiesSet
in interface InitializingBean
Exception
protected void doAddExtraDefaultExceptionMappings(Properties exceptionMappings)
exceptionMappings
- the properties object, which already has entries in itpublic Authentication doAuthentication(Authentication authentication) throws AuthenticationException
Authentication
object.The list of AuthenticationProvider
s will be successively tried until an AuthenticationProvider
indicates it
is capable of authenticating the type of Authentication
object passed. Authentication will then
be attempted with that AuthenticationProvider
.
If more than one AuthenticationProvider
supports the passed Authentication
object, only the first AuthenticationProvider
tried will determine the result. No subsequent
AuthenticationProvider
s will be tried.
doAuthentication
in class AbstractAuthenticationManager
authentication
- the authentication request object.
AuthenticationException
- if authentication fails.public List getProviders()
public ConcurrentSessionController getSessionController()
ConcurrentSessionController
is returned or the NullConcurrentSessionController
if a specific one has not been set.
ConcurrentSessionController
instancepublic void setApplicationEventPublisher(ApplicationEventPublisher applicationEventPublisher)
setApplicationEventPublisher
in interface ApplicationEventPublisherAware
public void setMessageSource(MessageSource messageSource)
setMessageSource
in interface MessageSourceAware
public void setProviders(List newList)
AuthenticationProvider
objects to be used for authentication.
newList
-
IllegalArgumentException
- DOCUMENT ME!public void setSessionController(ConcurrentSessionController sessionController)
ConcurrentSessionController
to be used for limiting user's sessions. The NullConcurrentSessionController
is used by default
sessionController
- ConcurrentSessionController
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |