shiro学习01-用户以及登录-Subject类

网站的用户在shiro中用subject表示,使用的默认类是WebDelegatingSubject,是DelegatingSubject的子类,这个WebDelegatingSubject里面含有很多很多的参数:

·PrincipalCollection:主键(或者标记的集合),

·authenticated:是否校验过,

·Host登录的ip

·session:当前的session(经过shiro封装的)

·request:发起的请求

·response:就是平时的response

· SecurityManagerspring中配置的securityManager

Subject的生命周期:每一次访问时都会创建一个新的subject,然后创建shiro封装后的session(封装的HttpSession),然后将这个新创建的subject绑定到ThreadContext上,然后通过securityUtils中在程序的任何地方调用getSubject时都会返回同一个subject,也就是本次请求创建的那个。由于之前存放在HttpSession中的信息还会存在,所以不会丢失信息。Subject获得httpSession的办法最终还是调用的request.getSession(true),也就是根据sessionID来获取session的。

 

每一次创建完成subject都会讲subject的属性存放到session中去,存放的只有两个一个是principal,一个是是否校验成功。

 

猜你喜欢

转载自suichangkele.iteye.com/blog/2276876