springsecurity oauth 2においてrefresh tokenモードの注意点



oauth 2公式は4つの授権方法しかありませんが、sprigsecurity oauth 2はrefresh tokenをauthorized Grannt Typesの一種としています.
sprigsecurityのoauth 2は5中モードを実現しました.
authorization_コード
コードモード(つまりコードを取得してからtokenを取得する) 
implicit
簡易モード(redirecturiのHashでtokenを転送します.AuthクライアントはJS、Flashなどのブラウザで実行します.)
password
パスワードモード(ユーザ名、パスワードを転送して直接tokenを取得する) 
clientcredentials
クライアントモード(ユーザがいなくて、ユーザがクライアントに登録し、クライアントが自分の名義で「サービス端末」にリソースを取得する)
refresh_token
tokenを更新
 
refresh_を使いますtokenは認証サーバにuserDetails Serviceを配置する必要があります.
 @Autowired
 private CustomUserDetailsService customUserDetailsService;
 
 @Override
 public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception {
            endpoints.tokenStore(tokenStore)
                    .authorizationCodeServices(authorizationCodeServices)
                    .userDetailsService(customUserDetailsService)
                    .userApprovalHandler(userApprovalHandler())
                    .authenticationManager(authenticationManager);
        }
設定されていない場合、または設定エラー(SecurityConfigにuserDetails Serviceが設定されていますが、認証サーバにもう一つのuserDetails Serviceが配置されています)が発生した場合、USerDetails Serviceにエラーまたは空のポインタ異常が発生しました.
注意するもう一つのポイント:refresh_tokenは期限が切れる前に呼び出して新しいtokenに換える必要があります.
tokenを更新する場合、access_token,refresh_tokenは全部期限が切れていません.access_tokenは新しいtokenになります.また、期限が切れるとexpiresが延長されます.tokenは設定された期限切れによって、失効しなければ変化がない.tokenを更新する場合、access_token期限切れ、refresh_tokenは期限切れではなく、access_tokenは新しいtokenになります.また、期限が切れるとexpiresが延長されます.tokenは設定された期限切れによって、失効しなければ変化がない.tokenを更新する時、refresh_tokenの期限が切れたら、401状態コードを返します.{error”:“invalidt ken”、“error udeescription”:“Invalid refsh token(expired):7 f 0 a-8 b 89 a-b-b 5 a-09 b 7 e-09 b 7 e 48 d 888”