shiro 拦截时序图

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判断是否登录。

原文地址:https://www.cnblogs.com/paxing/p/10539004.html