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 实现前后端分离,写得太好了!