我正在基于实验性 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)
这显然不允许我访问用户信息,因此我目前无法设置我需要的声明。有人设法解决这个问题吗?