public abstract class SessionsSecurityManager extends AuthorizingSecurityManager
SecurityManager class hierarchy that delegates all
session operations to a wrapped
SessionManager instance. That is, this class implements the methods in the
SessionManager interface, but in reality, those methods are merely passthrough calls to the underlying 'real'
SessionManager instance.
The remaining
SecurityManager methods not implemented by this class or its parents 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 will be created upon instantiation.
| Constructor and Description |
|---|
SessionsSecurityManager()
Default no-arg constructor, internally creates a suitable default
SessionManager delegate instance.
|
| Modifier and Type | Method and Description |
|---|---|
protected void |
afterCacheManagerSet()
Calls
super.afterCacheManagerSet() and then immediately calls
applyCacheManagerToSessionManager() to ensure the
CacheManager is applied to the SessionManager as necessary.
|
protected void |
afterSessionManagerSet()
|
protected void |
applyCacheManagerToSessionManager()
Ensures the internal delegate
SessionManager is injected with the newly set
CacheManager so it may use it for its internal caching needs.
|
void |
destroy()
Destroys the
cacheManager via
LifecycleUtils.destroy.
|
Session |
getSession(SessionKey
Retrieves the session corresponding to the specified contextual data (such as a session ID if applicable), or
null if no Session could be found.
|
SessionManager |
getSessionManager()
Returns this security manager's internal delegate
SessionManager.
|
void |
setSessionManager(SessionManager
Sets the underlying delegate
SessionManager instance that will be used to support this implementation's
SessionManager method calls.
|
Session |
start(SessionContext
Starts a new session based on the specified contextual initialization data, which can be used by the underlying implementation to determine how exactly to create the internal Session instance.
|
afterRealmsSet, checkPermission, checkPermission, checkPermissions, checkPermissions, checkRole, checkRoles, checkRoles, getAuthorizer, hasAllRoles, hasRole, hasRoles, isPermitted, isPermitted, isPermitted, isPermitted, isPermittedAll, isPermittedAll, setAuthorizerauthenticate, getAuthenticator, setAuthenticatorapplyCacheManagerToRealms, getRealms, setRealm, setRealmsgetCacheManager, setCacheManagerclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitcreateSubject, login, logoutpublic SessionsSecurityManager()
SessionManager delegate instance.
public void setSessionManager(SessionManagersessionManager)
SessionManager instance that will be used to support this implementation's
SessionManager method calls.
This
SecurityManager implementation does not provide logic to support the inherited
SessionManager interface, but instead delegates these calls to an internal
SessionManager instance.
If a
SessionManager instance is not set, a default one will be automatically created and initialized appropriately for the the existing runtime environment.
sessionManager - delegate instance to use to support this manager's
SessionManager method calls.
protected void afterSessionManagerSet()
public SessionManagergetSessionManager()
SessionManager.
SessionManager.
setSessionManager
protected void afterCacheManagerSet()
super.afterCacheManagerSet() and then immediately calls
applyCacheManagerToSessionManager() to ensure the
CacheManager is applied to the SessionManager as necessary.
protected void applyCacheManagerToSessionManager()
SessionManager is injected with the newly set
CacheManager so it may use it for its internal caching needs.
Note: This implementation only injects the CacheManager into the SessionManager if the SessionManager instance implements the
CacheManagerAware interface.
public Sessionstart(SessionContext context) throws AuthorizationException
SessionManager
SessionFactory which could use the context to construct the internal Session instance in a specific manner. This allows pluggable
Session creation logic by simply injecting a
SessionFactory into the
SessionManager instance.
context - the contextual initialization data that can be used by the implementation or underlying
SessionFactory when instantiating the internal
Session instance.
AuthorizationException
SessionFactory.createSession(SessionContext)
public SessiongetSession(SessionKey key) throws SessionException
SessionManager
null if no Session could be found. If a session is found but invalid (stopped or expired), a
SessionException will be thrown.
key - the Session key to use to look-up the Session
Session instance corresponding to the given lookup key or
null if no session could be acquired.
SessionException - if a session was found but it was invalid (stopped/expired).
public void destroy()
CachingSecurityManager
cacheManager via
LifecycleUtils.destroy.