Vaadin 24.2+Spring Boot3.1.5+Spring Security环境下如何禁用CSRF保护?
在Vaadin 24.2 + Spring Boot 3.1.5中禁用CSRF保护的实现方法
要完全禁用CSRF保护,需要同时关闭Spring Security的CSRF校验和Vaadin自身的CSRF令牌验证,具体步骤如下:
1. 禁用Spring Security的CSRF保护
创建或修改Spring Security配置类,通过csrf().disable()关闭框架自带的CSRF校验:
@Configuration @EnableWebSecurity public class SecurityConfig { @Bean public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { http // 关闭Spring Security的CSRF保护 .csrf(csrf -> csrf.disable()) // 按需配置其他授权规则,示例仅允许Vaadin相关路径匿名访问 .authorizeHttpRequests(auth -> auth .requestMatchers("/vaadin/**", "/favicon.ico").permitAll() .anyRequest().authenticated() ); return http.build(); } }
2. 禁用Vaadin自身的CSRF令牌验证
通过配置文件关闭Vaadin内置的CSRF检查:
使用application.properties:
vaadin.csrf.enabled=false
使用application.yml:
vaadin: csrf: enabled: false
注意事项
- 禁用CSRF保护会显著提升跨站请求伪造的风险,仅建议在确认环境安全(如仅内网部署、已有其他防护机制)的场景下执行
- 上述配置会全局关闭Vaadin的CSRF令牌校验,所有客户端与Vaadin服务器的通信将不再验证CSRF令牌
内容的提问来源于stack exchange,提问作者Mei Mariang
相关产品推荐
相关产品推荐

