所以我有一个简单的弹簧启动应用程序,具有开箱即用的安全配置。在我的'dev'个人资料中,我可以使用这些属性打开对所有URL的访问权限
# dev
security.basic.enabled=false
management.security.enabled=false
我可以通过将值更改为
来启用“生产”配置文件中所有网址的身份验证# production
security.basic.enabled=true
management.security.enabled=true
该应用程序的真正安全要求是它有两个页面
我从无数other stackoverflow questions in spring-boot-security and spring-security知道我可以使用@EnableWebSecurity覆盖默认的spring-boot安全配置,然后定义自定义规则
@EnableWebSecurity
public class WebMvcConfig extends WebMvcConfigurerAdapter {
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()....
}
我想知道是不是只有一种更简单的方法来配置spring-boot,而且不需要定制spring-security来实现这个要求?
答案 0 :(得分:2)
覆盖和配置之间存在差异。通过使用@EnableWebSecurity
,您仍然只是按照您希望的方式配置Spring Security。所以回答你的问题,不,没有更简单的方法"。这就是你如何做到这一点并不困难。
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/").permitAll()
.and()
.authorizeRequests()
.antMatchers("/admin/**").authenticated();
}
}
根据您的要求,或多或少都需要这样的东西。