org.apache.shiro.mgt
Class RealmSecurityManager

java.lang.Object
  extended by org.apache.shiro.mgt.CachingSecurityManager
      extended by org.apache.shiro.mgt.RealmSecurityManager
All Implemented Interfaces:
Authenticator, Authorizer, CacheManagerAware, SecurityManager, SessionManager, Destroyable
Direct Known Subclasses:
AuthenticatingSecurityManager

public abstract class RealmSecurityManager
extends CachingSecurityManager

Shiro support of a SecurityManager class hierarchy based around a collection of Realms. All actual SecurityManager method implementations are left to subclasses.

Since:
0.9

Constructor Summary
RealmSecurityManager()
          Default no-arg constructor.
 
Method Summary
protected  void afterCacheManagerSet()
          Simply calls applyCacheManagerToRealms() to allow the newly set CacheManager to be propagated to the internal collection of Realm that would need to use it.
protected  void afterRealmsSet()
           
protected  void applyCacheManagerToRealms()
          Sets the internal CacheManager on any internal configured Realms that implement the CacheManagerAware interface.
 void destroy()
          Destroys the cacheManager via LifecycleUtils.destroy.
 Collection<Realm> getRealms()
          Returns the Realms managed by this SecurityManager instance.
 void setRealm(Realm realm)
          Convenience method for applications using a single realm that merely wraps the realm in a list and then invokes the setRealms(java.util.Collection) method.
 void setRealms(Collection<Realm> realms)
          Sets the realms managed by this SecurityManager instance.
 
Methods inherited from class org.apache.shiro.mgt.CachingSecurityManager
getCacheManager, setCacheManager
 
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.mgt.SecurityManager
createSubject, login, logout
 
Methods inherited from interface org.apache.shiro.authc.Authenticator
authenticate
 
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.session.mgt.SessionManager
getSession, start
 

Constructor Detail

RealmSecurityManager

public RealmSecurityManager()
Default no-arg constructor.

Method Detail

setRealm

public void setRealm(Realm realm)
Convenience method for applications using a single realm that merely wraps the realm in a list and then invokes the setRealms(java.util.Collection) method.

Parameters:
realm - the realm to set for a single-realm application.
Since:
0.2

setRealms

public void setRealms(Collection<Realm> realms)
Sets the realms managed by this SecurityManager instance.

Parameters:
realms - the realms managed by this SecurityManager instance.
Throws:
IllegalArgumentException - if the realms collection is null or empty.

afterRealmsSet

protected void afterRealmsSet()

getRealms

public Collection<Realm> getRealms()
Returns the Realms managed by this SecurityManager instance.

Returns:
the Realms managed by this SecurityManager instance.

applyCacheManagerToRealms

protected void applyCacheManagerToRealms()
Sets the internal CacheManager on any internal configured Realms that implement the CacheManagerAware interface.

This method is called after setting a cacheManager on this securityManager via the setCacheManager method to allow it to be propagated down to all the internal Realms that would need to use it.

It is also called after setting one or more realms via the setRealm or setRealms methods to allow these newly available realms to be given the cache manager already in use.


afterCacheManagerSet

protected void afterCacheManagerSet()
Simply calls applyCacheManagerToRealms() to allow the newly set CacheManager to be propagated to the internal collection of Realm that would need to use it.

Overrides:
afterCacheManagerSet in class CachingSecurityManager

destroy

public void destroy()
Description copied from class: CachingSecurityManager
Destroys the cacheManager via LifecycleUtils.destroy.

Specified by:
destroy in interface Destroyable
Overrides:
destroy in class CachingSecurityManager


Copyright © 2004-2012 The Apache Software Foundation. All Rights Reserved.