【问题标题】:How to use AuthorizationServerSecurityConfigurer?如何使用 AuthorizationServerSecurityConfigurer?
【发布时间】:2026-01-20 08:25:01
【问题描述】:

我正在查看一个包含以下代码的 Spring Boot 项目:

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

不幸的是,我无法在任何地方找到任何资源(即 Google、Spring 文档、Spring oauth 文档)来向我解释如何实际使用 AuthorizationServerSecurityConfigurer。此外,我不明白tokenKeyAccess("permitAll()")checkTokenAccess("isAuthenticated()") 到底是做什么的。

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

【问题讨论】:

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


    【解决方案1】:

    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

    【讨论】: