【问题标题】:Spring OAuth2 refresh token to change after refreshing access tokenSpring OAuth2刷新令牌刷新访问令牌后更改
【发布时间】:2017-04-14 06:23:46
【问题描述】:

我创建了一个身份验证服务器和资源服务器,两者都工作正常,唯一的问题是刷新令牌,我希望在用grant_type=refresh_token 调用POST /oauth/token 后更改它,但是,spring 返回相同的刷新令牌。

我想知道在调用 oauth 端点刷新访问令牌时是否有办法获取新的刷新令牌?

【问题讨论】:

    标签: java spring spring-security oauth-2.0 spring-security-oauth2


    【解决方案1】:

    通过查看DefaultTokenServices 类中的refreshAccessToken 方法:

    public OAuth2AccessToken refreshAccessToken(String refreshTokenValue, 
                                                TokenRequest tokenRequest) {
    
        // Omitted
        if (!reuseRefreshToken) {
            tokenStore.removeRefreshToken(refreshToken);
            refreshToken = createRefreshToken(authentication);
        }
        // Omitted
    }
    

    您应该以某种方式将reuseRefreshToken 标志设置为false。您可以在 AuthorizationServerConfigurerAdapter 实现中执行此操作:

    @Configuration
    @EnableAuthorizationServer
    public class AuthorizationServer extends AuthorizationServerConfigurerAdapter {
        // Other methods
    
        @Override
        public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception {
            endpoints
                    .reuseRefreshTokens(false);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-20
      • 1970-01-01
      • 2019-06-29
      • 2017-12-02
      相关资源
      最近更新 更多