5

私はこのコードを持っている春のブートプロジェクトで探しています:残念ながらAuthorizationServerSecurityConfigurerの使用方法は?

public void configure(AuthorizationServerSecurityConfigurer oauthServer) throws Exception { 
    oauthServer 
     .tokenKeyAccess("permitAll()") 
     .checkTokenAccess("isAuthenticated()"); 
} 

、私はどのように私に説明して任意の場所に任意のリソース(すなわちグーグル、春のドキュメント、春のOAuthのドキュメントを)見つけることができないのです実際にはAuthorizationServerSecurityConfigurerを使用してください。また、tokenKeyAccess("permitAll()")checkTokenAccess("isAuthenticated()")が何をするのか分かりません。

これらの2つの機能が何をしているのか理解するのを助ける以外に、これらの種類の情報をどこで探すべきかを教えてください。

答えて

7

スプリングセキュリティOAuthは、トークンをチェックするための2つのエンドポイント(/oauth/check_tokenおよび/oauth/token_key)を公開します。これらのエンドポイントはデフォルトで公開されません(denyAll()にアクセスしてください)。

ですから、このエンドポイントを持つトークンを検証したい場合は、あなたの許可サーバの設定にこれを追加する必要があります:

@Override 
public void configure(AuthorizationServerSecurityConfigurer oauthServer) throws Exception { 
    oauthServer.tokenKeyAccess("isAnonymous() || hasAuthority('ROLE_TRUSTED_CLIENT')") 
       .checkTokenAccess("hasAuthority('ROLE_TRUSTED_CLIENT')"); 
} 

いくつかのより詳細

"Resource Server Configuration" section of the Spring Security OAuth2 documentationで見つけることができます。