Spring刷新访问令牌后刷新令牌以更改令牌

nsp*_*sot 6 java spring spring-security oauth-2.0 spring-security-oauth2

我创建了一个认证服务器和资源服务器,两者都工作正常,唯一的问题是刷新令牌,我想它调用后更改POST /oauth/tokengrant_type=refresh_token,但是,春回同样刷新令牌.

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

Ali*_*ani 16

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

public OAuth2AccessToken refreshAccessToken(String refreshTokenValue, 
                                            TokenRequest tokenRequest) {

    // Omitted
    if (!reuseRefreshToken) {
        tokenStore.removeRefreshToken(refreshToken);
        refreshToken = createRefreshToken(authentication);
    }
    // Omitted
}
Run Code Online (Sandbox Code Playgroud)

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

@Configuration
@EnableAuthorizationServer
public class AuthorizationServer extends AuthorizationServerConfigurerAdapter {
    // Other methods

    @Override
    public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception {
        endpoints
                .reuseRefreshTokens(false);
    }
}
Run Code Online (Sandbox Code Playgroud)