上源码

Oauth2ServerConfig   add处新增

    @Beanpublic JwtAccessTokenConverter accessTokenConverter() {JwtAccessTokenConverter jwtAccessTokenConverter = new JwtAccessTokenConverter();jwtAccessTokenConverter.setAccessTokenConverter(customAccessTokenConverter);//addjwtAccessTokenConverter.setKeyPair(keyPair());return jwtAccessTokenConverter;}

源码出处

找到源码 一切好办,

继承DefaultAccessTokenConverter 重写方法

public class CustomAccessTokenConverter extends DefaultAccessTokenConverter {private UserAuthenticationConverter userTokenConverter = new CustomUserAuthenticationConverter();private boolean includeGrantType;private String scopeAttribute = "scope";private String clientIdAttribute = "client_id";@Overridepublic Map<String, ?> convertAccessToken(OAuth2AccessToken token, OAuth2Authentication authentication) {Map<String, Object> response = new HashMap();OAuth2Request clientToken = authentication.getOAuth2Request();if (!authentication.isClientOnly()) {response.putAll(this.userTokenConverter.convertUserAuthentication(authentication.getUserAuthentication()));} else if (clientToken.getAuthorities() != null && !clientToken.getAuthorities().isEmpty()) {//正常不执行response.put("authorities", AuthorityUtils.authorityListToSet(clientToken.getAuthorities()));}if (token.getScope() != null) {response.put(this.scopeAttribute, token.getScope());}if (token.getAdditionalInformation().containsKey("jti")) {response.put("jti", token.getAdditionalInformation().get("jti"));}if (token.getExpiration() != null) {response.put("exp", token.getExpiration().getTime() / 1000L);}if (this.includeGrantType && authentication.getOAuth2Request().getGrantType() != null) {response.put("grant_type", authentication.getOAuth2Request().getGrantType());}response.putAll(token.getAdditionalInformation());response.put(this.clientIdAttribute, clientToken.getClientId());if (clientToken.getResourceIds() != null && !clientToken.getResourceIds().isEmpty()) {response.put("aud", clientToken.getResourceIds());}return response;}
}

再看

public class CustomUserAuthenticationConverter extends DefaultUserAuthenticationConverter {@Overridepublic Map<String, ?> convertUserAuthentication(Authentication authentication) {Map<String, Object> response = new LinkedHashMap();response.put("user_name", authentication.getName());return response;}
}

Spring Security OAuth2 改变jwt带默认authorities信息相关推荐

  1. 《深入理解 Spring Cloud 与微服务构建》第十八章 使用 Spring Security OAuth2 和 JWT 保护微服务系统

    <深入理解 Spring Cloud 与微服务构建>第十八章 使用 Spring Security OAuth2 和 JWT 保护微服务系统 文章目录 <深入理解 Spring Cl ...

  2. 使用Spring Security Oauth2 和 JWT保护微服务--Uaa授权服务器的编写

    学习自深入理解微服务 采用Spring Security OAuth2 和 JWT的方式,Uaa服务只需要验证一次,返回JWT.返回的JWT包含了用户的所有信息,包括权限信息 从三个方面讲解: JWT ...

  3. 基于 Spring Security OAuth2和 JWT 构建保护微服务系统

    我们希望自己的微服务能够在用户登录之后才可以访问,而单独给每个微服务单独做用户权限模块就显得很弱了,从复用角度来说是需要重构的,从功能角度来说,也是欠缺的.尤其是前后端完全分离之后,我们的用户信息不一 ...

  4. Spring Security OAuth2整合JWT

    文章目录 1. Spring Security 与 OAuth2 2. Spring Security OAuth2的配置和使用 ①:引入依赖 ②:配置 spring security ③:配置授权服 ...

  5. JWT实战 Spring Security Oauth2整合JWT 整合SSO单点登录

    文章目录 一.JWT 1.1 什么是JWT 1.2 JWT组成 头部(header) 载荷(payload) 签名(signature) 如何应用 1.3 JJWT 快速开始 创建token toke ...

  6. 使用Spring Security Oauth2 和 JWT保护微服务--资源服务器的编写

    编写hcnet-website的资源服务 依赖管理pom文件 hcnet-website工程的pom文件继承主maven的pom文件.在hcnet-website工程的pom文件中添加web功能的起步 ...

  7. Spring Security Oauth2 解析jwt

  8. 使用Spring Security OAuth2使用JWT生成token及自定义token携带的信息(十)

    写在前面:各位看到此博客的小伙伴,如有不对的地方请及时通过私信我或者评论此博客的方式指出,以免误人子弟.多谢!如果我的博客对你有帮助,欢迎进行评论✏️✏️.点赞

  9. 【Spring Cloud Alibaba 实战 | 总结篇】Spring Cloud Gateway + Spring Security OAuth2 + JWT 实现微服务统一认证授权和鉴权

    一. 前言 hi,大家好~ 好久没更文了,期间主要致力于项目的功能升级和问题修复中,经过一年时间这里只贴出关键部分代码的打磨,[有来]终于迎来v2.0版本,相较于v1.x版本主要完善了OAuth2认证 ...

最新文章

  1. 非视线成像 - 把墙角变为相机
  2. string类的常用函数
  3. 单例在多线程中的使用
  4. 视频时代的大数据:问题、挑战与解决方案
  5. python语言程序设计试卷西京学院_Python语言程序设计A-中国大学mooc-试题题目及答案...
  6. Linux系统文件用户共享,Linux操作系统下的共享文件夹用户设定
  7. 有关emoji表情以及utf-16编码
  8. 【转】adb控台中Permission denied的解决方案
  9. linux+软盘启动程序,红旗Linux桌面版 4.0软盘启动硬盘安装过程图解 (Red Flag Linux 4.0)...
  10. DCN神州数码无线理论与配置逻辑
  11. 积分商城使用教程之优惠券
  12. 中文翻译英文-免费批量中文英文翻译互转软件
  13. 深度linux64位系统下载,深度 Deepin 15.9 操作系统下载
  14. 关于学习的三个认知升级
  15. ​草莓熊python turtle绘图代码(玫瑰花版)附源代码
  16. git恢复误删代码或文件
  17. b站m4s文件怎么转mp4
  18. 《CDN 之我见》系列三:详解篇(网络优化)
  19. 【虚幻引擎UE】UE5 阴影异常与优化
  20. 论文解读:STANet | A Spatial-Temporal Attention-Based Method and a New Dataset for Remote Sensing Image

热门文章

  1. jsp输出金字塔_JavaScript实现打印星型金字塔功能实例分析
  2. netty 工控网关_开源纯C#工控网关+组态软件(九)定制Visual Studio
  3. 面向对象的特征有哪些
  4. PHP加快递查询接口的使用
  5. VS2017远程调试LattePanda(C#)
  6. DOL HDR 先长后短曝光的原因猜测
  7. 手机访问PHP如何配置,配置手机端和电脑端访问不同页面的通用方法(以thinkphp5为例)...
  8. Python基础之遍历循环、条件循环、嵌套循环
  9. vue 全屏与退出全屏
  10. 计算机底层:储存器的性能指标(CPU和内存等硬件的性能以及 对比标准)