相关疑难解决方法(0)

如何使用 spring-authorization-server 在 JWT 中创建自定义声明

我正在基于实验性 Spring 项目Spring Authorization Server构建 OAuth2 授权服务器

我的用例非常简单,从数据库中获取用户,并根据用户的某些属性,在正在生成的 JWT 中设置一些自定义声明。我还没有找到使用 Spring Authorization Server 的方法,我能解决的唯一方法是注入一个jwtCustomizer对象作为JwtEncoderbean 定义的一部分:

  @Bean
  public JwtEncoder jwtEncoder(CryptoKeySource keySource) {
    NimbusJwsEncoder jwtEncoder = new NimbusJwsEncoder(keySource);
    jwtEncoder.setJwtCustomizer((headersBuilder, claimsBuilder) -> {
      // Inject some headers and claims...
    });
    return jwtEncoder;
  }
Run Code Online (Sandbox Code Playgroud)

这显然不允许我访问用户信息,因此我目前无法设置我需要的声明。有人设法解决这个问题吗?

spring spring-security spring-boot spring-security-oauth2

9
推荐指数
2
解决办法
5717
查看次数