我在Spring中有一个rest应用程序,为它公开的服务配置了安全性和JWT令牌。但是这个应用程序还连接到其他第三方应用程序,也是用JWT保护的,每个应用程序都有不同的令牌。
我的问题是:存储这些第三方令牌的最佳策略是什么?是否存在类似于SecurityContextHolder的东西,但用于存储应用程序用于在其他服务上进行身份验证的令牌?
发布于 2018-07-25 11:42:16
在配置
OAuth2RestOperations restTemplate您可以将令牌持久化在客户机中。
public OAuth2RestOperations restTemplate() {
    OAuth2RestTemplate template = new OAuth2RestTemplate(resource(), new 
    DefaultOAuth2ClientContext(accessTokenRequest));
    AccessTokenProviderChain provider = new 
    AccessTokenProviderChain(Arrays.asList(new AuthorizationCodeAccessTokenProvider()));
    provider.setClientTokenServices(clientTokenServices());
    return template;
}如这里中所述
在客户端中持久化令牌 客户端不需要持久化令牌,但是当客户端应用程序重新启动时,用户不必批准新的令牌授予。ClientTokenServices接口定义了为特定用户持久化OAuth 2.0令牌所必需的操作。提供了JDBC实现,但如果您希望实现自己的服务,则可以在持久数据库中存储访问令牌和相关的身份验证实例。如果您想使用此特性,则需要为OAuth2RestTemplate提供一个特殊配置的OAuth2RestTemplate。
https://stackoverflow.com/questions/51513832
复制相似问题