2017-11-16 15 views
0

私はトークンとリフレッシュトークンを取得していますが、すべてが問題ありません。最初の認証後にOAuth2ClientAuthenticationProcessingFilterが呼び出されません

トークンがチェックされていないようですが、期限が切れるとリフレッシュ要求が行われず、何も起こりません。まだ認証されています。

私はこの問題をデバッグしました。私はOAuth2ClientAuthenticationProcessingFilterが最初の認証後に呼び出されないことに気付きました。ここ

は私がこのフィルタを定義する方法である:

@Bean 
    public OAuth2ClientAuthenticationProcessingFilter oAuth2ClientAuthenticationProcessingFilter(){ 
     OAuth2ClientAuthenticationProcessingFilter filter = new OAuth2ClientAuthenticationProcessingFilter("/myApp/**|/api/**"); 
     filter.setRestTemplate(oAuth2RestTemplate); 
     filter.setTokenServices(tokenService); 
     return filter; 
    } 

任意のヘルプは歓迎されるであろう、それは(ユーザがアプリケーションに認証されると、私はこの1つ

答えて

0

に苦労してる時間のacoupleです認証がSecurityContextに設定されている場合)、httpセッションが期限切れになるまで認証されたままになります。 OAuth2ClientAuthenticationProcessingFilterまたはBasicAuthenticationFilterまたはその他の認証フィルタによって認証されているかどうかは関係ありません。

たとえば、次のようになります。 - セッションの有効期限を30分に設定した場合。また、ユーザーがブラウザからアプリケーションにログインし、OAuth 2認証を使用してアプリケーションに認証されている場合。これで、ブラウザからの次の要求でJSESSIONIDがクッキーに設定され、サーバーはセキュリティコンテキストからセッションがすでに認証されていることを識別し、それ以上の認証を要求しません。 ユーザーは、アプリケーションサーバー上でセッションが期限切れになる前にAuth提供サーバーに移動しトークンを取り消すと、アプリケーションの認証に影響しません。また、ユーザーは、セッションが終了するまで(30分間の非アクティブやセキュリティコンテキストのクリア、またはクッキーのクリアなどの可能性があるため)、アプリケーションにログインしたままになります。

+0

私のセッションにリンクするべきではありません、私のトークンは10分のトークンです。 – Seb

+0

私の視点から見ると、セッションはトークンが格納されている場所です。トークンライフとは関係がありません。 – Seb

+0

真のセッションはトークンの寿命とは関係ありません。あなたのユースケースを私に知らせることができれば、私はそれを調べる良い立場にいるでしょう。 – vsoni

関連する問題