spring:如何将java安全配置转换为yml
我尝试将以下用Java编写的Web安全配置转换为普通的yml配置
@Order(Ordered.HIGHEST_PRECEDENCE)
@Configuration
@EnableWebMvcSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private UserDetailsService userDetailsService;
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/register/**").permitAll()
.anyRequest().authenticated().and().csrf().disable()
.httpBasic();
}
@Autowired
public void registerAuthentication(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(userDetailsService);
}
}
这是我的应用程序中与安全相关的部分。yml:
security:
require_ssl: true
basic:
enabled: true
enable_csrf: false
ignored:
- /register/**
当我使用yml版本时,没有身份验证就无法访问端点,但也不允许有效用户访问站点。我想这是因为我使用了一个不被认可的自定义userDetailsService
如何定义与yml版本相同的registerAuthentication
-方法部分的行为?有保安吗。userDetailsServiceClass属性或类似的内容
# 1 楼答案
在application properties reference上没有与
UserDetailsService
相关的内容,因此必须不支持,而且这是一种高级配置,可以通过正常配置完成。Boot仅通过属性提供简单的配置来快速启动,如httpBasic
,您可以将两者结合起来,但请注意与Java配置的匹配程序冲突