如何在 Spring-Boot 2 中禁用安全性? [复制]

Posted

技术标签:

【中文标题】如何在 Spring-Boot 2 中禁用安全性? [复制]【英文标题】:How to disable security in Spring-Boot 2? [duplicate] 【发布时间】:2019-01-03 06:44:00 【问题描述】:

在 spring-boot-1.x 中,我有以下配置来禁用开发模式下的基本安全性:

application.properties:
security.basic.enabled=false

application-test.properties:
security.basic.enabled=true

application-prod.properties:
security.basic.enabled=true

从 spring-boot-2.x 开始,不再支持该属性。如何实现相同的配置(=禁用默认配置文件中的任何安全相关功能和配置)?

【问题讨论】:

你需要写配置类 您能否提供一个全局禁用安全性的配置类示例?以及如何仅为默认配置文件加载它?? 【参考方案1】:

这里是配置类。这里允许所有网址:

@Configuration
@ConditionalOnProperty(value = "app.security.basic.enabled", havingValue = "false")
public class WebSecurityConfig extends WebSecurityConfigurerAdapter

@Override
protected void configure(HttpSecurity http) throws Exception 
    http.csrf().disable()
            .authorizeRequests()
            .antMatchers("/**").permitAll()
            .anyRequest().authenticated();


【讨论】:

那么,如何在默认配置文件中自动启用它,并在 test/prod 中禁用它? 我知道,版本2中没有spring-security的属性配置。你可以管理它来读取属性文件 我添加了@ConditionalOnProperty(value = "app.security.basic.enabled", havingValue = "false"),在这种情况下配置将加载。如果没有更好的方法,至少它可以工作。

以上是关于如何在 Spring-Boot 2 中禁用安全性? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

Spring boot 和 Spring Actuator - 禁用安全性

如何禁用嵌入式数据库 Spring-boot spring-data-jpa

从 Spring-Boot 测试中排除 elasticsearchTemplate

如何通过依赖项禁用通过 spring.factories 注册的 spring 工厂并保留此 spring-boot 依赖项?

在 spring-boot 中禁用特定 url 的 Keycloak 身份验证

如何在 Spring Boot 2.2.0 的集成测试中禁用安全性?