一 总结
1.1 分布式Oatuh认证授权流程图
1.案例流程描述
1.API 网关在认证授权体系里主要负责两件事:
( 1 ) 作为OAuth2.0的资源服务器角色,实现接入方权限拦截。
( 2 ) 令牌解析并转发当前登录用户信息(明文token)给微服务,
2.微服务拿到明文token( 明文 token 中包含登录用户的身份和权限信息 ) 后也需要做两件事:
( 1 ) 用户授权拦截(看当前用户是否有权访问该资源)
( 2 ) 将用户信息存储进当前线程上下文(有利于后续业务逻辑随时获取当前用户信息)
原文链接:https://blog.csdn.net/u011066470/article/details/120089909
2.架构图
1.4 代码地址
https://github.com/quanxianguanli-springsecurity/spt-ds-oauth-server.git
1.代码地址
https://gitee.com/jurf-liu/spring-security-project.git
2.视频地址
3.资料地址
1.3 知识点汇总:
1.4 spring security采用Api方法
二 完整总结测试
2.1 流程描述
应用名称 | 端口 |
eureka | 53000 |
网关 | 53010 |
order资源服务 | 53021 |
uaa认证服务 | 53020 |
2.2 启动服务
1.先启动eureka,gateway,order,uaa,如下图所示:
1.erureka启动
2.网关启动
3.资源服务启动
4.认证授权服务启动
2.3 使用密码模式获取token
使用密码模式,通过网关访问认证服务器获取token:
http://localhost:53010/uaa/oauth/token
方式:post
请求类型: x-www-form-urlencoded
2.4 使用密码模式验证token
http://localhost:53020/uaa/oauth/check_token
方式:post
请求类型: x-www-form-urlencoded
2.5 通过网关访问资源
访问地址:http://localhost:53010/order/r1
方式:post
请求类型: x-www-form-urlencoded
在headers中设置
Authorization 为 token 前面获取token的值,复制到此处。
三 用户信息扩展的获取
3.1 用户信息扩展的获取
目前jwt令牌存储了用户的身份信息、权限信息,网关将token明文化转发给微服务使用,目前用户身份信息仅包括 了用户的账号,微服务还需要用户的ID、手机号等重要信息。
JWT令牌中扩展用户信息的方案:
1.在uaa认证时候,放入完整的信息。从数据库查询到user,将整体user转成json存入userDetails对象。
2.资源服务中的过虑器负责 从header中解析json-token,从中即可拿网关放入的用户身份信息,部
3.使用获取