CachingSecurityManager抽象类实现了SecurityManager,Destroyable,CacheManagerAware这三个接口,先对此进行解析:
1.SecurityManager接口
此接口包含了对subject的操作,以及认证,授权,会话管理,此内容在SecurityManager源码解析中有解释。
2.Destroyable接口
2.1.注销方法
void destroy() throws Exception;
3.CacheManagerAware接口
3.1.设置缓存管理器
void setCacheManager(CacheManager cacheManager);
4.CachingSecurityManager抽象类
4.1.静态数据
private CacheManager cacheManager;//缓存管理器
4.2.构造方法
public CachingSecurityManager() {}
4.3.获取缓存管理器
public CacheManager getCacheManager() {return cacheManager;}
4.4.设置缓存管理器(覆盖了CacheManagerAware中定义的方法,设置cacheManager,并调用了之后调用的方法afterCacheManagerSet())
public void setCacheManager(CacheManager cacheManager) {
this.cacheManager = cacheManager;
afterCacheManagerSet();
}
4.5.设置缓存管理器之后调用的方法(protected方法,内部使用)
protected void afterCacheManagerSet() {}
4.6.注销方法(生命周期注销完缓存管理器,并将缓存管理器设置为空)
public void destroy() {
LifecycleUtils.destroy(getCacheManager());
this.cacheManager = null;
}