Spring Security OAuth2.0(25):分布式系统授权-拓展用户信息 本章代码已分享至Gitee:https://gitee.com/lengcz/distributed-security01.git扩展用户信息目前jwt令牌存储了用户的身份信息权限信息网关将token明文转换后转发给微服务使用目前用户身份信息仅包括了用户的账号微服务还能需要用户的ID手机号等重要信息。所以本案例将扩展用户信息的思路和方法满足微服务使用用户信息的需求。下面分析JWT令牌中扩展用户信息的方案。在认证阶段DaoAuthenticationProvider会调用UserDetailService查询用户信息这里是可以获取到齐全的用户信息的。由于JWT令牌中用户身份信息来源于UserDetails中仅定义了username为用户的身份信息这里有两个思路第一是可以扩展UserDetails使之包括更多的自定义属性第二也可以扩展username的内容比如存入json数据内容作为username的内容。相比较而言方案二比较简单不破坏UserDetails的结构这里采用方案二。修改UserDetailService从数据库查询到User将整体user转成json存入userDetails对象。StringprincipalJSON.toJSONString(user);//身份信息UserDetailsuserDetailsUser.withUsername(principal).password(user.getPassword()).authorities(permissionArr).build();重新申请令牌后访问r1资源可以看到原来的username就是存入的json格式的用户信息。修改TokenAuthenticationFilter 将UAA存入的用户信息转换为UserDTO即可。此时再次访问r1资源查看可以看到UserDTO的其他字段已经有信息了。

相关新闻

最新新闻

SpringCloud微服务架构演进与Eureka、Ribbon深度解析

SpringCloud微服务架构演进与Eureka、Ribbon深度解析

1. SpringCloud框架的演变历程SpringCloud作为Java生态中微服务架构的事实标准,其发展历程映射了整个分布式系统的技术演进。2014年Netflix开源套件与Spring的整合标志着第一代SpringCloud的诞生,Eureka作为服务注册中心的代表,与Ribbon负载均…

2026/7/19 20:22:42
嵌入式GPMC时序配置:从原理到实践,解决存储接口调试难题

嵌入式GPMC时序配置:从原理到实践,解决存储接口调试难题

1. GPMC时序配置的核心价值与挑战 在嵌入式系统硬件开发中,处理器与外部存储设备(如NOR Flash、SRAM、PSRAM、NAND Flash)之间的“对话”能否顺畅,很大程度上取决于接口时序的精准控制。通用内存控制器(General-Purpos…

2026/7/19 20:22:42
数据科学家真实成长路径:从数据搬运工到问题定义者

数据科学家真实成长路径:从数据搬运工到问题定义者

1. 这不是“速成指南”,而是一份数据科学家真实成长路径的复盘笔记我带过37个转行学员,亲手筛过2100份数据科学方向的简历,也曾在凌晨三点改完第14版模型上线文档后盯着监控面板发呆——数据科学家这个头衔背后,没有PPT里闪亮的“…

2026/7/19 20:22:42
永远不可能在出发前就知道哪条路是对的

永远不可能在出发前就知道哪条路是对的

**这句话,是你今天最重的一句。**“走下去比选择更重要”意味着你已经不再执着于“选对路”了。你接受了一个更底层的事实:**你永远不可能在出发前就知道哪条路是对的。**你说“很多时候我们并不知道去哪”,这不是迷茫,这是你对自…

2026/7/19 20:22:42
C++继承机制深度解析:从内存布局到虚拟继承实战

C++继承机制深度解析:从内存布局到虚拟继承实战

1. 项目概述:为什么C的继承值得深挖? 如果你写过一段时间的C,尤其是接触过稍微复杂点的项目,大概率会对“继承”这个概念又爱又恨。爱它,是因为它完美体现了面向对象“复用”和“扩展”的核心思想,让代码结…

2026/7/19 20:22:42
Unity数据可视化实战:三步掌握XCharts图表插件

Unity数据可视化实战:三步掌握XCharts图表插件

1. 项目概述:为什么Unity开发者需要XCharts?如果你是一名Unity开发者,无论是做游戏、仿真、数据可视化还是工业数字孪生,大概率都遇到过需要展示数据的场景。可能是游戏内的角色属性雷达图、经济系统的折线走势,也可能…

2026/7/19 20:17:42

月新闻