Java 为什么JdbcClientTokenServices不保存刷新令牌?

Java 为什么JdbcClientTokenServices不保存刷新令牌?,java,spring-boot,oauth-2.0,spring-security-oauth2,oauth2resttemplate,Java,Spring Boot,Oauth 2.0,Spring Security Oauth2,Oauth2resttemplate,我有一个充当OAuth2客户机的Spring应用程序。我实现了一个JdbcClientTokenServices来为成功进行身份验证的每个用户保留令牌 @Bean public OAuth2RestTemplate restTemplate(OAuth2ClientContext clientContext) { OAuth2RestTemplate template = new OAuth2RestTemplate(resource(), clientContext); Acc

我有一个充当OAuth2客户机的Spring应用程序。我实现了一个JdbcClientTokenServices来为成功进行身份验证的每个用户保留令牌

@Bean
public OAuth2RestTemplate restTemplate(OAuth2ClientContext clientContext) {
    OAuth2RestTemplate template = new OAuth2RestTemplate(resource(), clientContext);
    AccessTokenProviderChain accessTokenProvider = new AccessTokenProviderChain(
            Collections.<AccessTokenProvider>singletonList(
                    new AuthorizationCodeAccessTokenProvider()
            ));
    accessTokenProvider.setClientTokenServices(clientTokenServices());
    accessTokenProvider.supportsRefresh(resource());
    template.setAccessTokenProvider(accessTokenProvider);
    return template;
}

@Bean
public JdbcClientTokenServices clientTokenServices() {
    return new JdbcClientTokenServices(dataSource);
}
@Bean
公共OAuth2RestTemplate restTemplate(OAuth2ClientContext客户端上下文){
OAuth2RestTemplate=新的OAuth2RestTemplate(resource(),clientContext);
AccessTokenProviderChain accessTokenProvider=新AccessTokenProviderChain(
集合。单音列表(
新的AuthorizationCodeAccessTokenProvider()
));
setClientTokenServices(clientTokenServices());
accessTokenProvider.supportsRefresh(resource());
template.setAccessTokenProvider(accessTokenProvider);
返回模板;
}
@豆子
公共JdbcClientTokenServices clientTokenServices(){
返回新的JdbcClientTokenServices(数据源);
}

此代码使用oauth_client_令牌表。当我在这个表中查找内容时,我注意到它只保存访问令牌?我想知道为什么刷新令牌没有被保存,因为无论如何刷新令牌应该比访问令牌的寿命更长。

我还不知道Spring安全性,但从中可以看出,
JdbcClientTokenServices
存储
OAuth2AccessToken
实例,这些实例都有一个方法
getRefreshToken()
-因此,我假设相应的刷新令牌也将被保存-
SerializationUtils.serialize(accessToken)
应包括任何潜在的刷新令牌。通常,在获取访问令牌时,您将获得一个新的刷新令牌,因此将它们存储在一起是有意义的。@Thomas非常有意义的。谢谢你的澄清!