SpringSecurity Oauth2 如何动态自定义 jwt 生成的内容

SpringSecurity Oauth2 如何动态自定义 jwt 生成的内容,第1张

SpringSecurity Oauth2 如何动态自定义 jwt 生成的内容,第2张

目前继承了 JwtAccessTokenConverter 类来实现添加额外内容,但是貌似只能硬编码

public class CustomJwtTokenConverter extends JwtAccessTokenConverter {
    @Override
    public OAuth2AccessToken enhance(OAuth2AccessToken oAuth2AccessToken, OAuth2Authentication oAuth2Authentication) {
        Map<String, Object> additional = new HashMap<>(16);
        additional.put("key", "value");
        ((DefaultOAuth2AccessToken) oAuth2AccessToken).setAdditionalInformation(additional);
        return super.enhance(oAuth2AccessToken, oAuth2Authentication);
    }
}

我想实现的就是在生成 jwt token 时将当前请求的用户的 userid 放入 token 中 该如何实现呢?

----------------------- 以下是精选回复-----------------------

答:继承 DefaultAccessTokenConverter 这个类,然后 set 到 AccessTokenConverter 中就好了
答:看这开源 https://gitee.com/mkk/MyOIDC, 里面有对应的配置与实现
答:项目都没了
答:OAuth2Authentication 这个对象有个 getOAuth2Request() 方法可以获取客户端应用程序的详细信息。你可以看一下这里是怎么存储内容的。比如客户端请求会带一个唯一 id 或者账号啥的,这里可以取到。通过这个唯一 id 就可以取到数据库或者缓存的内容了。
答:我是看的
https://docs.spring.io/spring-security/oauth/apidocs/org/springframework/security/oauth2/provider/OAuth2Authentication.html 以及 https://docs.spring.io/spring-security/oauth/apidocs/org/springframework/security/oauth2/provider/OAuth2Request.html
文档提供的内容,没用过,目测大差不差。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » SpringSecurity Oauth2 如何动态自定义 jwt 生成的内容

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情