私はフェッチOAuthのトークンのために使用されている以下のrestTemplateを参照してください。私は自分のアプリケーションにトークンをキャッシュするために明示的な呼び出しが表示されません。しかし、私はこのテンプレートによって返される同じトークン値を参照してください。OAuth2RestTemplateは本質的に、クライアント側のキャッシュを実装していますか?もしそうなら、それはトークンの有効期限が切れるのOAuth2エンドポイントへの明示的な呼び出しを行うのですか?
@Qualifier("oauth")
@Bean
public OAuth2RestTemplate restTemplate(@Qualifier("resourceDetails") ClientCredentialsResourceDetails resourceDetails) {
return new OAuth2RestTemplate(resourceDetails);
}
私は、マニュアルで以下を見て -
getAccessToken公共OAuth2AccessToken getAccessToken()はUserRedirectRequiredExceptionを投げます
必要に応じて現在のコンテキストにアクセストークンを取得または更新します。このメソッドは、要求が実行される(その結果がキャッシュされている)ときに自動的に呼び出されるだけでなく、トークンを事前移入するスタンドアロンメソッドとして呼び出すことができます。
明確にトークンがリソースを定義する際に作成したコンテキスト(DefaultOAuth2ClientContextオブジェクト)にキャッシュされていることを言われています。しかし、トークンがgetAccessToken()を呼び出すことによって管理されています。ここでのドキュメントがgetAccessToken()についてこう言われます、
必要に応じて現在のコンテキストにアクセストークンを取得または更新します。このメソッドは、要求が実行される(そして、結果がキャッシュされている)とき*自動的に呼び出されますが、また、*トークンを事前移入するスタンドアロンメソッドとして呼び出すことができます。
それは、それが自動的に更新され、期限切れになるまでトークンがキャッシュされます。getAccessToken()からのコードスニペットは、それを説明します。
if (accessToken == null || accessToken.isExpired()) {
try {
accessToken = acquireAccessToken(context);
}
デフォルトスプリングでは、メカニズムのキャッシュについてのインメモリキャッシュを提供
DefaultOAuth2ClientContext
しかし、あなたはの独自の実装を提供することができます
OAuth2ClientContext