shiro源代码分析

登录入口:

Subject subject = SecurityUtils.getSubject();
UsernamePasswordToken token = new UsernamePasswordToken(userModel.getId() + "", rsaDecryptPwd);
subject.login(token);

权限入口:

Subject subject = SecurityUtils.getSubject();
UsernamePasswordToken token = new UsernamePasswordToken(userModel.getId() + "", rsaDecryptPwd);
subject.checkRoles();

流程

  1. 请求进入shiroConfig中的url拦截
  2. 里面自定义了过滤器JwtFilter
  3. 在JwtFilter中,手动进行shiro登录,传入token信息
  4. 经过源代码分析,login方法验证token调用了ShiroRealm中的doGetAuthenticationInfo,进行token的验证
  5. 验证通过之后,将获取到的user信息,封装进当前线程的shiro认证信息中
  6. 然后调用了ShiroRealm中的doGetAuthorizationInfo,进行权限和角色的处理
  7. 最终完成验证

最近两天没有时间,等有时间,将完整分析过程贴上来,未完待续。。。

你可能感兴趣的:(java,框架)