我有一个通过Java配置使用Spring Security的Java应用程序。
在编译中打开/关闭整个Spring Security的最简单方法是什么?
类似于this,但对于不使用XML的配置。
编辑:
应用@Profile后,我的代码如下:
@Configuration
@Profile("SecurityOn")
@EnableWebMvcSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
问题是如果未激活配置文件“SecurityOn”,Spring Security将使用某些默认配置。相反,在这种情况下如何完全关闭Spring Security?
答案 0 :(得分:6)
要禁用该行为,您可以添加另一个如下所示的类:
@Configuration
@EnableWebMvcSecurity
@Profile("!SecurityOn")
public class WebSecurityConfigDisable extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/**").permitAll();
}
}
然后,当您运行应用程序时,您唯一需要登录的时间是SecurityOn
个人资料处于活动状态。如果您正在使用Maven和Spring Boot,则启用登录的命令将如下所示。
mvn spring-boot:run -Dspring.profiles.active=SecurityOn
在没有配置文件或其他配置文件的情况下运行它将禁用登录。这对本地开发很有用。
我发现在使用spring-boot-starter-security
时这是必要的,因为有默认配置需要登录。
答案 1 :(得分:0)