shiro 集成 web
- 1、第一个过滤器-AbstractShiroFilter
subject 是后续动作的主体。
首先构造 subject:- WebSubject
- DefaultSecurityManager
- CasSubjectFactory
- DefaultWebSubjectFactory
- DefaultSubjectContext 判断 subject 是否登录字段
- 通过session判断
- 2、其他过滤
获取 subject之后,通过
executeChain(request, response,chain);
进行后续过滤
其中比较重要的是 PathMatchingFilter 过滤器,判断是否有权限(首先会判断是否登录,org.apache.shiro.web.filter.AccessControlFilter#onPreHandle 判断是否登录)
分为两个方法:onAccessAllow 和 onAccessDeny。如果subject已经登录,则不走登录;否则重新构造subject ,去server判断是否登录。