如何使用AuthorizationServerSecurityConfigurer?

时间:2017-08-19 02:46:04

标签: spring spring-mvc spring-boot spring-security spring-oauth2

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

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

不幸的是,我无法在任何地方找到任何资源(例如Google,Spring docs,Spring oauth docs),它向我解释了如何实际使用AuthorizationServerSecurityConfigurer。此外,我并不确切地了解tokenKeyAccess("permitAll()")checkTokenAccess("isAuthenticated()")做了什么。

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

1 个答案:

答案 0 :(得分:20)

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')");
}

可以在"Resource Server Configuration" section of the Spring Security OAuth2 documentation中找到更多详细信息。