OAuth 2.0实现分布式认证授权-资源微服务实现用户鉴权拦截

Posted 健康平安的活着

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OAuth 2.0实现分布式认证授权-资源微服务实现用户鉴权拦截相关的知识,希望对你有一定的参考价值。

一 微服务用户鉴权拦截

当微服务收到明文 token 时,应该怎么鉴权拦截呢?自己实现一个 fifilter ?自己解析明文 token ,自己定义一套资源访问策略?
能不能适配 Spring Security 呢,是不是突然想起了前面我们实现的 Spring Security 基于 token 认证例子。咱们还拿 统一用户服务作为网关下游微服务,对它进行改造 ,增加微服务用户鉴权拦截功能

二 操作

2.1 在资源order服务中进行修改

2.2 Spring Security配置

开启方法保护,并增加 Spring 配置策略,除了 /login 方法不受保护 ( 统一认证要调用 ) ,其他资源全部需要认证才能访 问。

 

2.3 定义fifilter拦截token,并形成Spring SecurityAuthentication对象  

解析token,将信息进行存储到Spring SecurityAuthentication

1.解析token
2.新建并填充authentication
3.将authentication保存进安全上下文
剩下的事儿就交给 Spring Security 好了。

 

经过上边的过虑 器,资源 服务中就可以方便到的获取用户的身份信息:
UserDTO user = (UserDTO) SecurityContextHolder.getContext().getAuthentication().getPrincipal();

以上是关于OAuth 2.0实现分布式认证授权-资源微服务实现用户鉴权拦截的主要内容,如果未能解决你的问题,请参考以下文章

OAuth 2.0实现分布式认证授权

OAuth 2.0实现分布式认证授权-授权的验证配置

OAuth 2.0实现分布式认证授权-网关搭建

OAuth 2.0实现分布式认证授权-jwt的配置

OAuth 2.0实现分布式认证授权-jwt令牌和普通令牌的区别

OAuth 2.0实现分布式认证授权-认证服务器配置