Spring Security 如何在spring Boot 中在oauth2.1授权服务器中使用用户信息(用户名,电话号码,..)自定义访问令牌?

fd3cxomn  于 2023-03-30  发布在  Spring
关注(0)|答案(1)|浏览(129)

如何在spring Boot 中在oauth2.1授权服务器中使用用户信息(用户名,电话号码,..)自定义访问令牌?
这是我的解决方法project,有关于如何在访问令牌本身中添加用户详细信息的资源/帮助吗?

zysjyyx4

zysjyyx41#

我们可以使用jwtCustomizer添加任何信息。请参考this

@Bean
    OAuth2TokenCustomizer<JwtEncodingContext> jwtCustomizer(CustomClaims claims) {
        return context -> {
            if (context.getTokenType() == OAuth2TokenType.ACCESS_TOKEN) {
                Authentication principal = context.getPrincipal();
                Set<String> authorities = principal.getAuthorities().stream()
                        .map(GrantedAuthority::getAuthority)
                        .collect(Collectors.toSet());
                context.getClaims().claims(c -> c.put("Creator", "Thirumal"));
                context.getClaims().claims(c -> c.putAll(claims.getClaims(principal)));
                context.getClaims().claim("roles", authorities);
            }
        };
    }

相关问题