Spring oauth2授权服务器在令牌中添加角色用户

Posted

技术标签:

【中文标题】Spring oauth2授权服务器在令牌中添加角色用户【英文标题】:Spring oauth2 authorization server add roles user in token 【发布时间】:2021-11-23 21:41:35 【问题描述】:

我使用 spring-security-oauth2-authorization-server (v. 0.2.0) 来实现我的授权服务器。 我希望用户角色在令牌中,是否可以添加它们?喜欢吗?

谢谢

【问题讨论】:

【参考方案1】:

我通过添加以下bean解决了这个问题

@Bean
OAuth2TokenCustomizer<JwtEncodingContext> jwtCustomizer() 
    return context -> 
        if (context.getTokenType() == OAuth2TokenType.ACCESS_TOKEN.getValue()) 
            Authentication principal = context.getPrincipal();
            Set<String> authorities = principal.getAuthorities().stream()
                    .map(GrantedAuthority::getAuthority)
                    .collect(Collectors.toSet());
            context.getClaims().claim("user-authorities", authorities);
        
    ;

【讨论】:

以上是关于Spring oauth2授权服务器在令牌中添加角色用户的主要内容,如果未能解决你的问题,请参考以下文章

如何在spring + java中添加(覆盖)oAuth2访问令牌的到期时间

Spring Security 和 OAuth2 生成具有自定义授权类型的令牌

在Spring中进行oAuth2令牌验证/验证

使用oauth2向授权URL添加附加参数的Spring安全性?

如何在spring security oauth2授权服务器中通过jwt令牌获取用户信息?

Spring Boot Oauth2 授权服务器不接受有效令牌