基于OAuth的权限授予机制

spring security 为啥需要redis spring security redis token_redis

什么是认证

spring security 为啥需要redis spring security redis token_redis_02

什么是会话

spring security 为啥需要redis spring security redis token_redis_03

什么是授权

spring security 为啥需要redis spring security redis token_spring_04

spring security 为啥需要redis spring security redis token_服务器_05

底层为framework上面为Spring Security组成的组件

spring security 为啥需要redis spring security redis token_跳转页面_06

client为用户

resource owner为商家

autorization为选择的登录方式

1.发送请求,返回2.选择登陆方式,返回token3.拿着token访问商家

spring security 为啥需要redis spring security redis token_服务器_07


spring security 为啥需要redis spring security redis token_服务器_08


spring security 为啥需要redis spring security redis token_redis_09

spring security 为啥需要redis spring security redis token_spring_10

如何架构

1.配置pom.xml

spring security 为啥需要redis spring security redis token_服务器_11

运行项目

spring security 为啥需要redis spring security redis token_跳转页面_12

主体代码

spring security 为啥需要redis spring security redis token_spring_13


此处clientid

spring security 为啥需要redis spring security redis token_服务器_14

此处定义使用何种方式登录,以及他的作用域以及跳转页面

spring security 为啥需要redis spring security redis token_服务器_15


spring security 为啥需要redis spring security redis token_redis_16

spring security 为啥需要redis spring security redis token_服务器_17

配置信息:接口 redis 视图解析器

spring security 为啥需要redis spring security redis token_跳转页面_18

账号密码是否匹配

spring security 为啥需要redis spring security redis token_redis_19

通过redisConnectionFactory进行连接,将数据放入redis

spring security 为啥需要redis spring security redis token_redis_20


输入网址之后输入账号密码

spring security 为啥需要redis spring security redis token_跳转页面_21

spring security 为啥需要redis spring security redis token_跳转页面_22


跳转到指定页面拿到授权码后校验token,有效期过了后刷新token

spring security 为啥需要redis spring security redis token_服务器_23


spring security 为啥需要redis spring security redis token_redis_24

spring security 为啥需要redis spring security redis token_spring_25

认证过程

spring security 为啥需要redis spring security redis token_redis_26

JWT

spring security 为啥需要redis spring security redis token_服务器_27

客户端想要访问资源服务器,通过网关,授权服务器是可以带着token过来的

无状态化:服务器中不需要保存session。因此可以无限扩展服务器。

spring security 为啥需要redis spring security redis token_spring_28

交互流程

spring security 为啥需要redis spring security redis token_服务器_29


配置

配置key和盐值

spring security 为啥需要redis spring security redis token_服务器_30

设置令牌有效期以及刷新token有效期

spring security 为啥需要redis spring security redis token_服务器_31

校验token,由service进行校验

spring security 为啥需要redis spring security redis token_spring_32

spring security 为啥需要redis spring security redis token_redis_33