代码之家  ›  专栏  ›  技术社区  ›  Punter Vicky

OAuth2RestTemplate-客户端缓存

  •  0
  • Punter Vicky  · 技术社区  · 7 年前

    我看到下面的restTemplate用于获取OAuth令牌。我没有看到在我的应用程序中缓存令牌的任何显式调用。但是,我看到这个模板返回了相同的令牌值。OAuth2RestTemplate是否固有地实现客户端缓存?如果是这样,当令牌过期时,它是否显式调用OAuth2端点?

    @Qualifier("oauth")
    @Bean
    public OAuth2RestTemplate restTemplate(@Qualifier("resourceDetails") ClientCredentialsResourceDetails resourceDetails) {
        return new OAuth2RestTemplate(resourceDetails);
    }
    

    我在文档中看到了以下内容-

    getAccessToken公共OAuth2AccessToken getAccessToken() 抛出UserRedirectRequiredException

    执行请求时将自动调用此方法 (并缓存结果),但也可以作为独立的

    1 回复  |  直到 7 年前
        1
  •  6
  •   stacker    7 年前

    显然,令牌缓存在定义资源时创建的上下文(DefaultOAuth2ClientContext对象)中。但是,令牌是通过调用getAccessToken()来管理的。以下是文档中关于getAccessToken()的内容:

    当请求被激活时,将自动调用此方法* 用于*预填充令牌的独立方法。

    if (accessToken == null || accessToken.isExpired()) {
                try {
                    accessToken = acquireAccessToken(context);
                }
    

    关于缓存机制,默认情况下spring提供内存内缓存

    OAuth2Client上下文