私はこのコードを持つSpringブートプロジェクトを見ています:
_public void configure(AuthorizationServerSecurityConfigurer oauthServer) throws Exception {
oauthServer
.tokenKeyAccess("permitAll()")
.checkTokenAccess("isAuthenticated()");
}
_
残念ながら、どこにでもリソースを見つけることができません(つまり、Google、Spring docs、Spring oauth docs)。実際にAuthorizationServerSecurityConfigurer
を使用する方法を説明しています。 tokenKeyAccess("permitAll()")
またはcheckTokenAccess("isAuthenticated()")
が何をするかを正確に理解していない。
これらの2つの機能が何をするのかを理解するのを助ける以外に、将来これらのタイプの情報を探す場所を学ぶのを助けてください。
Spring Security 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')");
}
詳細については、Spring Security OAuth2ドキュメントの "Resource Server Configuration"セクション をご覧ください。