Spring Boot整合Shiro实现前后端分离

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring Boot整合Shiro实现前后端分离相关的知识,希望对你有一定的参考价值。

参考技术A

  Apache Shiro是Java的一个安全框架。功能强大,使用简单的Java安全框架,它为开发人员提供一个直观而全面的认证,授权,加密及会话管理的解决方案。
  Shiro基本功能点如下所示:

  Shiro工作流程如下所示:

  Shiro内部架构如下所示:

  本文实现源码如下,欢迎Star和Fork。

  实现思路:用户登录时生成token信息,设置过期时间,使用Redis存储。前端调用接口时将token作为参数传给服务端,服务端根据token信息认证用户。

  自定义AuthFilter过滤器,继承AuthenticatingFilter重写createToken、isAccessAllowed、onAccessDenied、onLoginFailure方法。
  AuthenticatingFilte类executeLogin方法如下所示:

  用户登录时删除旧Token信息,重新生成Token信息,退出登录时删除Token信息。 使用Redis存储Token信息时,同时存储已用户ID为键,Token为值和已Token为键、用户ID为值的信息

  整体实现流程图如下所示, 图源来自参考链接一,侵删

  实现思路:自定义ModularRealmAuthenticator管理多Realm,结合自定义认证Token关联不同的Realm。

  SecurityManager和ModularRealmAuthenticator配置如下:

  自定义认证Token,重写getCredentials方法, 根据loginType返回不同的比较对象

  普通登陆Realm认证逻辑如下所示:

  Token关联的Realm认证逻辑如下所示:

  自定义ModularRealmAuthenticator,管理多Realm,实现逻辑如下所示:

  用户登录,返回生成的token信息:

  用户携带token信息查询文章( 有对应权限 ):

  用户携带token信息删除用户( 无权限 ):

  用户携带token信息退出登录:

  用户退出登录后携带原token信息删除用户:

以上是关于Spring Boot整合Shiro实现前后端分离的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot + Shiro 实现前后端分离权限控制

Spring Boot + Vue + Shiro 实现前后端分离权限控制

Spring Boot + Vue + Shiro 实现前后端分离权限控制

Spring Boot + Vue + Shiro 实现前后端分离,写得太好了!

spring boot整合jwt 实现前后端分离登录认证及授权

SpringBoot+Shiro框架整合实现前后端分离的权限管理基础Demo