Spring Boot 2.2.4-禁用安全性



我在stackoverflow上发现了大量关于如何在spring boot中禁用安全性的博客文章和问题,但这些似乎都不适用于spring boot 2.2.4。

我之所以这么问,是因为我想对我的开发和测试配置文件禁用安全性,这样我们就可以在不生成jwt令牌的情况下进行部署。

从我的角度来看,最有前途的方法是通过属性文件排除SecurityAutoConfiguration类,但如上所述,排除无效。

spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.security.SecurityAutoConfiguration

其他属性(如management.security.enabled(似乎已被弃用。

我在spring-boot-github问题中找到了一个有效的解决方案。

禁用整个应用程序的安全性:

@SpringBootApplication ( exclude = {SecurityAutoConfiguration.class} )
@Import(MySecurityConfiguration.class)
public class MyApplication{
}

并通过安全配置中的参数启用:

@Configuration
@ConditionalOnProperty (  "my.security.enabled" )
@Import ( SecurityAutoConfiguration.class 
public class MySecurityConfiguration extends WebSecurityConfigurerAdapter {
}

来源:https://github.com/spring-projects/spring-boot/issues/12323#issuecomment-370519882

您可以为您的配置文件创建一个WebSecurityConfigurerAdapter Bean,其中包含以下overriden方法实现,以从spring安全中排除所有端点:

@Override
public void configure(WebSecurity web) {
web.ignoring().antMatchers(
"/**"
);
}

相关内容

  • 没有找到相关文章

最新更新