当前位置: 首页 > 知识库问答 >
问题:

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

濮阳和泰
2023-03-14

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

谢谢

共有1个答案

封锐藻
2023-03-14

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

@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);
        }
    };
}
 类似资料:
  • 我目前正在学习OAuth 2.0和OpenID Connect,我对授权服务器和访问令牌有疑问。规范将授权服务器定义为: 服务器在成功验证资源所有者并获得授权后向客户端发放访问令牌。 因此,据我所知,客户端将用户重定向到授权服务器,用户在授权服务器上进行身份验证,授权服务器向客户端发出访问令牌。 现在有一件事发生了,直到现在我才明白。有两种可能的方法来理解这一点,我正在努力找到正确的方法: > 授

  • Using a delegation key The collaborator can now push to the repository using Docker Content Trust. Docker will automatically choose and pick the right key for the targets/release role. Edit the file o

  • Importing a delegation certificate As a repository owner: Add the delegation key to the repository using the targets/releases path, as this is what Docker searches for when signing an image (first tar

  • 我通过spring security oauth2实现了oauth2授权服务器,并使用来存储访问令牌,然后我需要为当前访问令牌提供控制器,以便oauth2客户端获取用户信息, 如下: 但我不知道如何获取用户信息?

  • 我已经实现了SpringBoot2OAuth2OAuthorization服务器。我只想使用Client_凭证来保护资源服务器,我可以从Auth Server获取访问令牌,但当我将其传递给access rest api时,资源服务器不会从授权服务器验证它,并给出无效的访问令牌错误,我正在使用postman来获取访问令牌并访问quest资源服务器。 授权服务器 授权服务器配置 授权服务器Web配置

  • 我有2个应用程序运行,一个是资源服务器,我有需要认证的信息,以查看文本。然后我有授权服务器提供令牌。现在我可以使用postman或Insomnia,添加auth_url、token_url、client_id、client_secret并获得令牌。我将令牌添加到header,并使用header向资源服务器执行get请求,它工作得很好。 我想被重定向到: 本地主机:9001/登录 我用inmemor