You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CAS 7.0.0-RC9中org.apereo.cas.web.security相关类变更疑问

CAS 7.0.0-RC9迁移:解决ProtocolEndpointWebSecurityConfigurer找不到的问题

问题背景

正在将CAS从org.apereo.cas:6.6.14迁移至7.0.0-RC9(正式版发布后将切换至正式版)。在v7.0.0-RC5之前,org.apereo.cas.web.security包属于org.apereo.cas:cas-server-webapp-config依赖,但该依赖未更新到RC5之后的版本。混用cas-server-webapp-config:7.0.0-RC5与其他RC9版本组件时,触发编译错误:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.10.1:compile (default-compile) on project eessi-cas-server: Compilation failure: Compilation failure: 
[ERROR] /path/to/my/project/src/main/java/org/apereo/cas/custom/config/MyCasOverlayConfiguration.java:[4,25] error: cannot find symbol
[ERROR]   symbol:   class ProtocolEndpointWebSecurityConfigurer
[ERROR]   location: package org.apereo.cas.web

原6.6.14版本中构建SecurityFilterChain的代码依赖CasWebSecurityConfigurerAdapter及ProtocolEndpointWebSecurityConfigurer:

@Primary
@Bean
public SecurityFilterChain casWebSecurityConfigurerAdapter(
        final HttpSecurity http,
        final ObjectProvider<PathMappedEndpoints> pathMappedEndpoints,
        final List<ProtocolEndpointWebSecurityConfigurer> configurersList,
        final SecurityProperties securityProperties,
        final CasConfigurationProperties casProperties,
        final org.springframework.security.web.context.SecurityContextRepository securityContextRepository,
        final WebEndpointProperties webEndpointProperties)throws Exception {
    CasWebSecurityConfigurerAdapter adapter = new CasWebSecurityConfigurerAdapter( 
        casProperties, securityProperties, 
    webEndpointProperties, pathMappedEndpoints, ProtocolEndpointWebSecurityConfigurer, configurersList);
    return adapter.configureHttpSecurity(http).build();
}

使用Maven 3.9.5和OpenJDK 21.0编译时触发上述错误,推测原因是ProtocolEndpointWebSecurityConfigurer在RC6+版本中被移除、包路径迁移,或CAS的SecurityFilterChain构建机制发生了变更。

解决方案:适配CAS 7.x的安全配置模式

CAS 7.x(从RC6开始)对Spring Security集成逻辑做了重构,原有的CasWebSecurityConfigurerAdapter和ProtocolEndpointWebSecurityConfigurer已被废弃移除,需调整代码适配新API:

1. 替换SecurityFilterChain构建代码

使用CAS 7.x提供的CasSecurityFilterChainConfigurer替代旧实现:

@Primary
@Bean
public SecurityFilterChain casWebSecurityFilterChain(final HttpSecurity http,
                                                     final CasConfigurationProperties casProperties,
                                                     final SecurityProperties securityProperties,
                                                     final WebEndpointProperties webEndpointProperties,
                                                     final ObjectProvider<PathMappedEndpoints> pathMappedEndpoints,
                                                     final List<CasSecurityConfigurer> securityConfigurers) throws Exception {
    return http.apply(new CasSecurityFilterChainConfigurer(casProperties, securityProperties, webEndpointProperties, pathMappedEndpoints))
            .withConfigurers(securityConfigurers)
            .configure()
            .build();
}

2. 统一依赖版本

确保所有CAS相关依赖版本统一为7.0.0-RC9,无需单独引入cas-server-webapp-config——该模块的功能已合并至cas-server-core-web-api等核心模块中。

核心变更说明

  • CAS 7.x重构了Spring Security集成逻辑,CasWebSecurityConfigurerAdapter被废弃并移除
  • ProtocolEndpointWebSecurityConfigurer的职责拆分至多个CasSecurityConfigurer实现类,通过自动装配注入配置流程
  • 安全配置核心逻辑迁移至核心模块,旧的cas-server-webapp-config模块不再维护

内容的提问来源于stack exchange,提问作者wotanii

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 16:55:23