Package org.apache.shiro.mgt
Class AuthenticatingSecurityManager
- java.lang.Object
-
- org.apache.shiro.mgt.CachingSecurityManager
-
- org.apache.shiro.mgt.RealmSecurityManager
-
- org.apache.shiro.mgt.AuthenticatingSecurityManager
-
- All Implemented Interfaces:
Authenticator
,Authorizer
,org.apache.shiro.cache.CacheManagerAware
,org.apache.shiro.event.EventBusAware
,SecurityManager
,SessionManager
,org.apache.shiro.util.Destroyable
- Direct Known Subclasses:
AuthorizingSecurityManager
public abstract class AuthenticatingSecurityManager extends RealmSecurityManager
Shiro support of aSecurityManager
class hierarchy that delegates all authentication operations to a wrappedAuthenticator
instance. That is, this class implements all the Authenticator methods in theSecurityManager
interface, but in reality, those methods are merely passthrough calls to the underlying 'real' Authenticator instance.All other SecurityManager (authorization, session, etc) methods are left to be implemented by subclasses.
In keeping with the other classes in this hierarchy and Shiro's desire to minimize configuration whenever possible, suitable default instances for all dependencies are created upon instantiation.
- Since:
- 0.9
-
-
Constructor Summary
Constructors Constructor Description AuthenticatingSecurityManager()
Default no-arg constructor that initializes its internalauthenticator
instance to aModularRealmAuthenticator
.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
afterRealmsSet()
Passes on therealms
to the internal delegateAuthenticator
instance so that it may use them during authentication attempts.AuthenticationInfo
authenticate(AuthenticationToken token)
Delegates to the wrappedAuthenticator
for authentication.void
destroy()
Destroys thecacheManager
viaLifecycleUtils.destroy
.Authenticator
getAuthenticator()
Returns the delegateAuthenticator
instance that this SecurityManager uses to perform all authentication operations.void
setAuthenticator(Authenticator authenticator)
Sets the delegateAuthenticator
instance that this SecurityManager uses to perform all authentication operations.-
Methods inherited from class org.apache.shiro.mgt.RealmSecurityManager
afterCacheManagerSet, afterEventBusSet, applyCacheManagerToRealms, applyEventBusToRealms, getRealms, setRealm, setRealms
-
Methods inherited from class org.apache.shiro.mgt.CachingSecurityManager
applyEventBusToCacheManager, getCacheManager, getEventBus, setCacheManager, setEventBus
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.shiro.authz.Authorizer
checkPermission, checkPermission, checkPermissions, checkPermissions, checkRole, checkRoles, checkRoles, hasAllRoles, hasRole, hasRoles, isPermitted, isPermitted, isPermitted, isPermitted, isPermittedAll, isPermittedAll
-
Methods inherited from interface org.apache.shiro.mgt.SecurityManager
createSubject, login, logout
-
Methods inherited from interface org.apache.shiro.session.mgt.SessionManager
getSession, start
-
-
-
-
Constructor Detail
-
AuthenticatingSecurityManager
public AuthenticatingSecurityManager()
Default no-arg constructor that initializes its internalauthenticator
instance to aModularRealmAuthenticator
.
-
-
Method Detail
-
getAuthenticator
public Authenticator getAuthenticator()
Returns the delegateAuthenticator
instance that this SecurityManager uses to perform all authentication operations. Unless overridden by thesetAuthenticator
, the default instance is aModularRealmAuthenticator
.- Returns:
- the delegate
Authenticator
instance that this SecurityManager uses to perform all authentication operations.
-
setAuthenticator
public void setAuthenticator(Authenticator authenticator) throws IllegalArgumentException
Sets the delegateAuthenticator
instance that this SecurityManager uses to perform all authentication operations. Unless overridden by this method, the default instance is aModularRealmAuthenticator
.- Parameters:
authenticator
- the delegateAuthenticator
instance that this SecurityManager will use to perform all authentication operations.- Throws:
IllegalArgumentException
- if the argument isnull
.
-
afterRealmsSet
protected void afterRealmsSet()
Passes on therealms
to the internal delegateAuthenticator
instance so that it may use them during authentication attempts.- Overrides:
afterRealmsSet
in classRealmSecurityManager
-
authenticate
public AuthenticationInfo authenticate(AuthenticationToken token) throws AuthenticationException
Delegates to the wrappedAuthenticator
for authentication.- Parameters:
token
- any representation of a user's principals and credentials submitted during an authentication attempt.- Returns:
- the AuthenticationInfo representing the authenticating user's account data.
- Throws:
AuthenticationException
- if there is any problem during the authentication process. See the specific exceptions listed below to as examples of what could happen in order to accurately handle these problems and to notify the user in an appropriate manner why the authentication attempt failed. Realize an implementation of this interface may or may not throw those listed or may throw other AuthenticationExceptions, but the list shows the most common ones.- See Also:
ExpiredCredentialsException
,IncorrectCredentialsException
,ExcessiveAttemptsException
,LockedAccountException
,ConcurrentAccessException
,UnknownAccountException
-
destroy
public void destroy()
Description copied from class:CachingSecurityManager
Destroys thecacheManager
viaLifecycleUtils.destroy
.- Specified by:
destroy
in interfaceorg.apache.shiro.util.Destroyable
- Overrides:
destroy
in classRealmSecurityManager
-
-