我正在看一个具有以下代码的Spring启动项目:
public void configure(AuthorizationServerSecurityConfigurer oauthServer) throws Exception {
oauthServer
.tokenKeyAccess("permitAll()")
.checkTokenAccess("isAuthenticated()");
}
不幸的是,我无法在任何地方找到任何资源(例如Google,Spring docs,Spring oauth docs),它向我解释了如何实际使用AuthorizationServerSecurityConfigurer
。此外,我并不确切地了解tokenKeyAccess("permitAll()")
或checkTokenAccess("isAuthenticated()")
做了什么。
除了帮助我理解这两个功能的作用外,请帮助我了解将来在哪里查找这些类型的信息。
答案 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中找到更多详细信息。