我有一个具有以下安全配置的Spring应用程序:
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity httpSecurity) throws Exception {
httpSecurity
.csrf().disable()
.
.
.antMatchers("/**/*status*/**").permitAll()
.antMatchers("/**/*swagger*/**").permitAll()
.and()
.authorizeRequests()
.anyRequest().authenticated();
}
}
上面的代码显示状态页面
http:// {{sched_api_hostname_port}} / v1 /状态
和摇摇欲坠的页面
http:// {{sched_api_hostname_port}} / v1 / v2 / api-docs
用于所有配置文件。我希望仅对配置文件“ dev”显示状态/麻烦页面,而对“ sit”,“ pat”和“ prod”阻止显示状态。
因此,我创建了2个配置SecurityConfigDev和SecurityConfigProd。
@Configuration
@Profile({"sit", "pat", "prod"})
public class SecurityConfigProd extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity httpSecurity) throws Exception {
httpSecurity
.csrf().disable()
.
.
.antMatchers("/**/*status*/**").denyAll()
.antMatchers("/**/*swagger*/**").denyAll()
.and()
.authorizeRequests()
.anyRequest().authenticated();
}
}
我仍然可以看到包含所有数据和Http状态代码200的status&swagger url。我认为这可能是由于类名“ SecurityConfigProd”引起的。 您能告诉我如何根据个人资料阻止对网址的访问吗?