security + oauth2 + jwt + gateway 实现统一身份认证和鉴权(基础)

security + oauth2 + jwt + gateway 实现统一身份认证和鉴权(基础),第1张

12 认证服务器依赖

13 配置文件 applicationyml

14 认证服务器配置(核心类AuthorizationServerConfigurerAdapter)

认证服务器配置类必须继承AuthorizationServerConfigurerAdapter类

141 内存存储token方案

142 配置Spring Security的安全认证

143 自定义ClientDetailsService实现类

144 相关实体类

15 gateway 网关

151 pom依赖

152 applicationyml配置文件

153 security安全配置

154 gateway全局过滤器

155 其他类

16 资源服务器

161 依赖配置

162 资源服务器配置

继承ResourceServerConfigurerAdapter类

安全配置继承WebSecurityConfigurerAdapter

163 token过滤器

获取从网关处转发的token,填充到认证的安全上下文中,实现身份权限识别

22 安全配置

23 其他配置

24 身份信息过滤

token和session都可以用来做身份验证,而session用多了,对服务器的压力是很大的。

这里主要是生成一个uuid作为账户的身份令牌,用来校验用户是否登录。

项目里有用MyBatis-Plus,先简单说下MyBatis-Plus的配置,如果是用Mybatis之类的可以直接跳过这些配置

maven依赖相应的包

配置文件:

mybatis-plus配置

用户 实体类

用户Token

@Data 是lombok插件的注解,自动生成get、set、toString等

注意如果用了MyBatis-Plus创建的实体类必须加@TableName注解,否则会报错,当然你也得去建相应的表

配置一个自定以注解:@Login, 只要加了这个注解的就会校验用户的Token。

@LoginUser 用来获取用户信息,需要的话可以配置,也可以忽视的。

用户登录的时候给当前用户生成或修改token

controller

service

生成token createToken(long id),登出的时候调expireToken(long userId) 使当前用户的token失效时间设置为当前时间

当然还需要配置一个拦截器,拦截只要加了@Login注解的方法就会校验用户的token

拦截器:

@LoginUser 获取用户信息

WebMvcConfigurer

需要注意的是/ 不可以设置为/demo/ ,/demo 为context-path 否则会使拦截器失效

异常处理器

在swagger配置里添加securitySchemes 可以在swagger页面设置header

访问接口没有设置token的时候

获取token

将其复制粘贴到

话不多说,先上图:

分析一波:

其实不管微信或者QQ大体上都是使用这种OAuth2的基本流程:

OAuth2 在服务提供者上可分为两类:

注:这两者有时候可能存在同一个应用程序中(即SOA架构)。在Spring OAuth中可以简便的将其分配到两个应用中(即微服务),而且可多个资源获取服务共享一个授权认证服务。

主要的 *** 作:

分析一波:

1) 第一步 *** 作

注:其中 client_id和 client_secret都是授权服务器发送给第三方应用的,如:微信等一系列授权,在其平台上注册,获取其appid和secret同样道理(个人理解为账号密码)。

既然是账号秘密,总不能以get请求,也太不安全了。因此,OAuth2要求该请求必须是POST请求,同时,还必须时>

有一个url:/api/,对应这个URL的请求都需要登录之后才有权限可以访问,现在需要做的是在不登录的时候,在url的参数后带上一个 token,通过解密这个token关联一个用户并进行登录,然后在请求对应的url。

请教下这个应该如何去配置security,大概的实现思路是怎么样的。

项目地址: >

教程: Spring Cloud下基于OAUTH2认证授权的实现

Spring cloud微服务实战——基于OAUTH20统一认证授权的微服务基础架构

Spring Cloud OAuth2(一) 搭建授权服务

>

以上就是关于security + oauth2 + jwt + gateway 实现统一身份认证和鉴权(基础)全部的内容,包括:security + oauth2 + jwt + gateway 实现统一身份认证和鉴权(基础)、token-身份令牌的应用,判断用户是否登录、Spring security OAuth2 深入解析等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9391816.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存