如何使用AuthorizationServerSecurityConfigurer?

KZc*_*ing 16 spring spring-mvc spring-security spring-boot spring-oauth2

我正在看一个具有以下代码的Spring启动项目:

public void configure(AuthorizationServerSecurityConfigurer oauthServer) throws Exception {
    oauthServer
        .tokenKeyAccess("permitAll()")
        .checkTokenAccess("isAuthenticated()");
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,我无法在任何地方找到任何资源(例如Google,Spring docs,Spring oauth docs),它向我解释了如何实际使用AuthorizationServerSecurityConfigurer.而且,我不明白究竟做什么tokenKeyAccess("permitAll()")checkTokenAccess("isAuthenticated()")做什么.

除了帮助我理解这两个功能的作用之外,请帮助我了解将来在哪里查找这些类型的信息.

koe*_*koe 25

Spring Security OAuth公开了两个用于检查令牌(/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')");
}
Run Code Online (Sandbox Code Playgroud)

可以在Spring Security OAuth2文档"资源服务器配置"部分中找到更多详细信息.