首页 > 解决方案 > 如何禁用默认的 Spring OAuth2 REST API?

问题描述

我们使用以下版本的 spring-security-oauth2:

<dependency>
        <groupId>org.springframework.security.oauth</groupId>
        <artifactId>spring-security-oauth2</artifactId>
        <version>2.0.11.RELEASE</version>
</dependency>

启用授权服务器并对其进行配置时,框架会启用默认 API,例如“/oauth/check_token”或“/oauth/token_key”。

我不使用这些 API(“oauth/token”除外)并希望禁用它们以防止误用。目前,我正在覆盖这些 url 的映射作为解决方法。我尝试在组件扫描中使用排除过滤器,但没有效果。有没有更方便的方法来禁用这些 API?

标签: javaspringspring-securityspring-security-oauth2spring-oauth2

解决方案


根据 Maven 文档:

当无法(无论出于何种原因)将项目拆分为子模块时,将使用可选依赖项。这个想法是,某些依赖项仅用于项目中的某些功能,如果不使用该功能,则不需要。理想情况下,此类功能将被拆分为依赖于核心功能项目的子模块。这个新的子项目将只有非可选的依赖项,因为如果您决定使用子项目的功能,您将需要它们。

然而,由于项目不能被拆分(同样,无论出于何种原因),这些依赖项被声明为可选的。如果用户想要使用与可选依赖项相关的功能,他们必须在自己的项目中重新声明该可选依赖项。这不是处理这种情况的最清晰方法,但可选依赖项和依赖项排除都是权宜之计。

要使用可选依赖项,您必须使用工件中的标记


推荐阅读