DefaultWebSecurityManager类主要定义了设置subjectDao,获取会话模式,设置会话模式,设置会话管理器,是否是http会话模式等操作,它继承了DefaultSecurityManager类,实现了WebSecurityManager接口,现对其解析如下:
1.WebSecurityManager接口
可以参考WebSecurityManager接口源码解析,里面只有一个方法,定义了是否http会话模式。
2.DefaultSecurityManager类
可以参考DefaultSecurityManager类源码解析,里面主要定义了登录,创建subject,登出等操作。
3.DefaultWebSecurityManager类
3.1.数据属性
public static final String HTTP_SESSION_MODE = "http";//http会话模式
public static final String NATIVE_SESSION_MODE = "native";//本地会话模式
private String sessionMode;//会话模式
3.2.构造方法
public DefaultWebSecurityManager() {
super();
((DefaultSubjectDAO) this.subjectDAO).setSessionStorageEvaluator(new DefaultWebSessionStorageEvaluator());
this.sessionMode = HTTP_SESSION_MODE;
setSubjectFactory(new DefaultWebSubjectFactory());
setRememberMeManager(new CookieRememberMeManager());
setSessionManager(new ServletContainerSessionManager());
}
3.3.构造方法
public DefaultWebSecurityManager(Realm singleRealm) {
this();
setRealm(singleRealm);
}
3.4.构造方法
public DefaultWebSecurityManager(Collection<Realm> realms) {
this();
setRealms(realms);
}
3.5.构造subject上下文
protected SubjectContext createSubjectContext() {
return new