类 ResourceServerAutoConfiguration

java.lang.Object
io.github.lishangbu.orange.oauth2.resourceserver.autoconfiguration.ResourceServerAutoConfiguration

@EnableWebSecurity @AutoConfiguration @EnableMethodSecurity(jsr250Enabled=true, securedEnabled=true) public class ResourceServerAutoConfiguration extends Object
资源服务器自动配置类

为资源服务器提供默认的 Spring Security `SecurityFilterChain` 配置

核心职责:

  • 配置受保护资源的请求匹配规则与认证要求
  • 禁用不必要的默认功能(如 csrf、formLogin、sessionManagement 等)以支持无状态的 API 场景
  • 为资源服务器设置统一的认证入口点和访问拒绝处理器,确保认证/鉴权失败时返回统一的 JSON 响应格式
  • 集成透明令牌(opaque token)验证逻辑,并确保当令牌无效时触发统一的异常处理
配置要点:
  • 使用 `@Order` 指定该 `SecurityFilterChain` 的优先级,避免与认证服务器链冲突
  • 优先调用 `oauth2ResourceServer(...)` 并在其内部显式设置 `authenticationEntryPoint`,以防资源服务器默认行为覆盖自定义的入口点
  • 通过 `http.exceptionHandling(...)` 提供全局的兜底处理器
注意:本配置在缺省情况下会被自动装配,若项目中存在同名 bean(`resourceServerSecurityFilterChain`)则不会覆盖
从以下版本开始:
2025/8/17
作者:
lishangbu
  • 构造器详细资料

    • ResourceServerAutoConfiguration

      public ResourceServerAutoConfiguration()
  • 方法详细资料

    • resourceServerSecurityFilterChain

      @Bean @ConditionalOnMissingBean(name="resourceServerSecurityFilterChain") @Order(2) public org.springframework.security.web.SecurityFilterChain resourceServerSecurityFilterChain(org.springframework.security.config.annotation.web.builders.HttpSecurity http) throws Exception
      资源服务器的安全过滤链

      配置说明:

      1. 放行 `oauth2Properties.ignoreUrls` 中配置的 URL;其余请求都要求认证
      2. 禁用 CSRF、CORS、表单登录、会话管理和记住我功能,以支持无状态 REST API 场景
      3. 先配置 `oauth2ResourceServer(...)` 并显式设置 `opaqueToken` 与 `authenticationEntryPoint`,避免内置默认覆盖自定义入口点
      4. 随后配置全局 `exceptionHandling`,设置统一的 `AuthenticationEntryPoint` 和 `AccessDeniedHandler`,用于处理未认证或无权限访问的情况并返回统一 JSON 响应格式
      参数:
      http - HttpSecurity 构造器,用于构建 SecurityFilterChain
      返回:
      构建完成的 SecurityFilterChain
      抛出:
      Exception - 当构建 SecurityFilterChain 失败时抛出