0_springboot_shiro_jwt_多端认证鉴权_前言

1. 场景

现在对于企业级Java后端应用SpringBoot是标配了,而且大多都是前后端分离的形式。实际项目中,遇到了一个后端服务,需要为多个端点提供服务,比如:管理后台,微信小程序,移动端App(andorid, ios),桌面客户端等等。正常情况下可以为每一个端提供一套后端服务,但有很多端多数情况下有相同的业务逻辑,为了开发方便,索性就将所有端点的访问都集中到一套后端应用中。生产环境下,将后端一集群方式部署,所有端的请求都先通过 API网关,API网关再将请求路由到后端应用上。

那么现在的问题是:每个端认证,鉴权的方式都不一样。比如客户端用户,小程序用户与管理后台用户会存放到不同的表中,登录的方式也有多种多样,如:账号密码登录,Emai登录,微信扫码授权登录,手机号+验证码登录,指纹识别登录等等。有些端使用有状态的会话管理,有些端需要使用无状态的会话管理,需要用一个后端服务来应付所有端的需要。

2. 实现思路

Apache Shiro是一个强大的Java安全框架,执行身份验证、授权、密码和会话管理。使用Shiro相对简单,因为开源,所以很容易对Shiro进行改造,达到我们想要的目标。

服务端与各个客户端之间全部统一使用无状态的会话管理,将Shiro中token 替换成 JWT(Json Web Token) , 实现无状态的会话管理。这需要对Shiro进行扩展。

要扩展Shiro就必须先了解它的概念和内部运行机制,也需要对JWT有所了解。本系列会分成多个章节一步一步实现最终想要的效果。每个章节会由浅入深讲解概念,用代码来理解运行机制。甚至会有一些源码的分析。

相关推荐
硬件人某某某5 分钟前
Java基于SSM框架的社区团购系统小程序设计与实现(附源码,文档,部署)
java·开发语言·社区团购小程序·团购小程序·java社区团购小程序
程序员徐师兄6 分钟前
Java 基于 SpringBoot 的校园外卖点餐平台微信小程序(附源码,部署,文档)
java·spring boot·微信小程序·校园外卖点餐·外卖点餐小程序·校园外卖点餐小程序
chengpei14723 分钟前
chrome游览器JSON Formatter插件无效问题排查,FastJsonHttpMessageConverter导致Content-Type返回不正确
java·前端·chrome·spring boot·json
Quantum&Coder24 分钟前
Objective-C语言的计算机基础
开发语言·后端·golang
五味香25 分钟前
Java学习,List 元素替换
android·java·开发语言·python·学习·golang·kotlin
Joeysoda28 分钟前
Java数据结构 (从0构建链表(LinkedList))
java·linux·开发语言·数据结构·windows·链表·1024程序员节
扫地僧00931 分钟前
(Java版本)基于JAVA的网络通讯系统设计与实现-毕业设计
java·开发语言
天乐敲代码32 分钟前
JAVASE入门九脚-集合框架ArrayList,LinkedList,HashSet,TreeSet,迭代
java·开发语言·算法
Q_27437851091 小时前
springboot基于微信小程序的周边游小程序
spring boot·微信小程序·小程序
endcy20161 小时前
IoTDB结合Mybatis使用示例(增删查改自定义sql等)
java·mybatis·iotdb