gpt4 book ai didi

spring-boot - 如何在 Spring Boot 2 中处理 security.enable-csrf?

转载 作者:行者123 更新时间:2023-12-04 03:30:50 25 4
gpt4 key购买 nike

我正在将应用程序从 Spring Boot 1.5 迁移到 2.0.5。
我有一个属性设置为 security.enable-csrf=true在 1.5 版本中,在 2.0 版本的 Spring Boot 中不可用。

我阅读了文档,据说在 Spring Boot 2.0 中:

CSRF protection is enabled by default in the Java configuration.



所以默认情况下它是启用的,但也创建了一个扩展 WebSecurityConfigurerAdapter 的类。这意味着 Spring Boot 默认安全配置已关闭。这是否也意味着 security.enable-csrf现在被禁用了吗?

如果是,我该如何启用它,就像我在 1.5 版本的应用程序中使用它一样。

我没有得到任何文件明确确认如何处理 security.enable-csrf Spring Boot 2.0 中的属性,同时声明 WebSecurityConfigurerAdapter .

有人知道吗?此外,我错过阅读有关此内容的任何文档链接都会有很大帮助。

最佳答案

为了与应用程序中已经设置的属性向后兼容,security.enable-csrf=true ,您可以使用以下代码:

@EnableWebSecurity
public class WebSecurityConfig extends
WebSecurityConfigurerAdapter {

@Value("${security.enable-csrf}")
private boolean csrfEnabled;

@Override
protected void configure(HttpSecurity http) throws Exception {
if (!csrfEnabled) {
http.csrf().disable();
}
}
}

As you might guess the magic comes from http.csrf().disable(); that in the above code you can control enabling/disabling it by the property you have set in you application.properties file.



更多信息:

更多细节你也可以引用spring文档:
  • https://docs.spring.io/spring-security/site/docs/current/reference/htmlsingle/#csrf
  • 关于spring-boot - 如何在 Spring Boot 2 中处理 security.enable-csrf?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52498171/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com