【发布时间】:2019-01-11 18:49:04
【问题描述】:
我有一个弹簧安全配置方法。我希望仅在条件匹配时才链接特定方法antMatchers("/**/**").permitAll()。像这样{dev == true ? .antMatchers("/**/**").permitAll(): ()->{}}。当然这不是一个有效的语法,最简洁的做法是什么。寻找最低限度的编码。
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.csrf().disable()
.cors().disable()
.authorizeRequests()
{dev == true ? .antMatchers("/**/**").permitAll(): ()->{}} //dev only. NEVER enable on prod
.antMatchers("/", "/signup", "/static/**", "/api/sigin", "/api/signup", "**/favicon.ico").permitAll()
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/")
.loginProcessingUrl("/api/signin")
.successHandler(authSuccessHandler())
.failureHandler(authFailureHandler())
.permitAll()
.and()
.logout()
.permitAll();
}
【问题讨论】:
-
重新考虑在您的代码中设置一个关闭身份验证的标志。这是一场灾难性的等待。
标签: java spring-boot java-8 method-chaining