Class CachingRealm

    • Constructor Summary

      Constructors 
      Constructor Description
      CachingRealm()
      Default no-argument constructor that defaults cachingEnabled (for general caching) to true and sets a default name based on the class name.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected void afterCacheManagerSet()
      Template method that may be implemented by subclasses should they wish to react to a CacheManager instance being set on the realm instance via the setCacheManager(org.apache.shiro.cache.CacheManager) mutator.
      protected void clearCache​(PrincipalCollection principals)
      Clears out any cached data associated with the specified account identity/identities.
      protected void doClearCache​(PrincipalCollection principals)
      This implementation does nothing - it is a template to be overridden by subclasses if necessary.
      protected getAvailablePrincipal​(PrincipalCollection principals)
      A utility method for subclasses that returns the first available principal of interest to this particular realm.
      org.apache.shiro.cache.CacheManager getCacheManager()
      Returns the CacheManager used for data caching to reduce EIS round trips, or null if caching is disabled.
      getName()
      Returns the (application-unique) name assigned to this Realm.
      boolean isCachingEnabled()
      Returns true if caching should be used if a CacheManager has been configured, false otherwise.
      void onLogout​(PrincipalCollection principals)
      If caching is enabled, this will clear any cached data associated with the specified account identity.
      void setCacheManager​(org.apache.shiro.cache.CacheManager cacheManager)
      Sets the CacheManager to be used for data caching to reduce EIS round trips.
      void setCachingEnabled​(boolean cachingEnabled)
      Sets whether or not caching should be used if a CacheManager has been configured.
      void  name)  
      • Methods inherited from class java.lang.

        , , , , , , , , , ,
    • Constructor Detail

      • CachingRealm

        public CachingRealm()
        Default no-argument constructor that defaults cachingEnabled (for general caching) to true and sets a default name based on the class name.

        Note that while in general, caching may be enabled by default, subclasses have control over if specific caching is enabled.

    • Method Detail

      • getCacheManager

        public org.apache.shiro.cache.CacheManager getCacheManager()
        Returns the CacheManager used for data caching to reduce EIS round trips, or null if caching is disabled.
        Returns:
        the CacheManager used for data caching to reduce EIS round trips, or null if caching is disabled.
      • setCacheManager

        public void setCacheManager​(org.apache.shiro.cache.CacheManager cacheManager)
        Sets the CacheManager to be used for data caching to reduce EIS round trips.

        This property is null by default, indicating that caching is turned off.

        Specified by:
        setCacheManager in interface org.apache.shiro.cache.CacheManagerAware
        Parameters:
        cacheManager - the CacheManager to use for data caching, or null to disable caching.
      • isCachingEnabled

        public boolean isCachingEnabled()
        Returns true if caching should be used if a CacheManager has been configured, false otherwise.

        The default value is true since the large majority of Realms will benefit from caching if a CacheManager has been configured. However, memory-only realms should set this value to false since they would manage account data in memory already lookups would already be as efficient as possible.

        Returns:
        true if caching will be globally enabled if a CacheManager has been configured, false otherwise
      • setCachingEnabled

        public void setCachingEnabled​(boolean cachingEnabled)
        Sets whether or not caching should be used if a CacheManager has been configured.
        Parameters:
        cachingEnabled - whether or not to globally enable caching for this realm.
      • getName

        public  getName()
        Description copied from interface: Realm
        Returns the (application-unique) name assigned to this Realm. All realms configured for a single application must have a unique name.
        Specified by:
        getName in interface Realm
        Returns:
        the (application-unique) name assigned to this Realm.
      • setName

        public void setName​( name)
        Specified by:
        setName in interface org.apache.shiro.util.Nameable
      • afterCacheManagerSet

        protected void afterCacheManagerSet()
        Template method that may be implemented by subclasses should they wish to react to a CacheManager instance being set on the realm instance via the setCacheManager(org.apache.shiro.cache.CacheManager) mutator.
      • clearCache

        protected void clearCache​(PrincipalCollection principals)
        Clears out any cached data associated with the specified account identity/identities.

        This implementation will return quietly if the principals argument is null or empty. Otherwise it delegates to doClearCache(org.apache.shiro.subject.PrincipalCollection).

        Parameters:
        principals - the principals of the account for which to clear any cached data.
        Since:
        1.2
      • doClearCache

        protected void doClearCache​(PrincipalCollection principals)
        This implementation does nothing - it is a template to be overridden by subclasses if necessary.
        Parameters:
        principals - principals the principals of the account for which to clear any cached data.
        Since:
        1.2
      • getAvailablePrincipal

        protected  getAvailablePrincipal​(PrincipalCollection principals)
        A utility method for subclasses that returns the first available principal of interest to this particular realm. The heuristic used to acquire the principal is as follows:
        • Attempt to get this particular Realm's 'primary' principal in the PrincipalCollection via a principals.fromRealm(getName()) call.
        • If the previous call does not result in any principals, attempt to get the overall 'primary' principal from the PrincipalCollection via PrincipalCollection.getPrimaryPrincipal().
        • If there are no principals from that call (or the PrincipalCollection argument was null to begin with), return null
        Parameters:
        principals - the PrincipalCollection holding all principals (from all realms) associated with a single Subject.
        Returns:
        the 'primary' principal attributed to this particular realm, or the fallback 'master' principal if it exists, or if not null.
        Since:
        1.2