1、ShiroFilterFactoryBean(shiroFilter的入口)
2、shiro拦截的内容
(1)默认的拦截器(url拦截)
认证相关的拦截器
授权相关的拦截器
(2)方法拦截
@RequiresAuthentication 表示当前 Subject 已经通过 login 进行了身份验证;即 Subject.isAuthenticated() 返回 true。
@RequiresUser 表示当前 Subject 已经身份验证或者通过记住我登录的。
@RequiresGuest 表示当前 Subject 没有身份验证或通过记住我登录过,即是游客身份。
@RequiresRoles(value={“admin”, “user”}, logical= Logical.AND) 表示当前 Subject 需要角色 admin 和 user。
@RequiresPermissions (value={“user:a”, “user:b”}, logical= Logical.OR) 表示当前 Subject 需要权限 user:a 或 user:b。
(3)标签拦截
(4)代码拦截
3、sessionManager
DefaultSessionManager:DefaultSecurityManager使用的默认实现,用于JavaSE环境;
ServletContainerSessionManager:DefaultWebSecurityManager使用的默认实现,用于Web环境,其直接使用Servlet容器的会话;
DefaultWebSessionManager:用于Web环境的实现,可以替代ServletContainerSessionManager,自己维护着会话,直接废弃了Servlet容器的会话管理。这一点与spring-session的功能是一致的。