贝利信息

Spring Security的XML配置怎么写

日期:2026-01-16 00:00 / 作者:幻夢星雲
Spring Security XML配置适用于旧版(如4.2.x),需在applicationContext-security.xml中定义命名空间、http安全规则、authentication-manager等,并通过web.xml加载;但自Spring 5/Boot 2.0起官方主推Java Config,XML不再维护且Boot默认不支持。

Spring Security 的 XML 配置在较老版本(如 Spring 3.x / 4.x)中常用,但自 Spring 5 和 Spring Boot 2.0 起,官方已强烈推荐使用 Java Config(@Configuration + WebSecurityConfigurerAdapter 或新式 SecurityFilterChain,XML 方式不再被积极维护,且 Spring Boot 默认不支持 XML 安全配置。

不过如果你维护遗留项目、必须用 XML,或学习传统配置逻辑,以下是典型、可运行的 Spring Security XML 配置要点和示例(基于 Spring Security 4.2.x + Spring 4.x):


基础 XML 配置结构

需在 Spring 的主配置文件(如 applicationContext-security.xml)中定义,确保引入正确命名空间:




    
    
        
        
        
        
        
    

    
    
        
            
                
                
            
        
    

注意:


    contextConfigLocation
    
        classpath:applicationContext.xml
        classpath:applicationContext-security.xml
    

关键配置项说明

常见需求对应 XML 写法:


与 Web 集成要点

XML 配置生效的前提:


    springSecurityFilterChain
    org.springframework.web.filter.DelegatingFi

lterProxy
springSecurityFilterChain /*

这是核心——没有它,XML 配置完全不会执行。


为什么不推荐继续用 XML?

不是“不能用”,而是现实约束明显:

基本上就这些。真要维护 XML 项目,建议逐步将安全逻辑抽成 `AuthenticationProvider`、`AccessDecisionVoter` 等 Java 组件,再由 XML 引用,为后续迁移铺路。