有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    application properties reference上没有与UserDetailsService相关的内容,因此必须不支持,而且这是一种高级配置,可以通过正常配置完成。Boot仅通过属性提供简单的配置来快速启动,如httpBasic,您可以将两者结合起来,但请注意

    ignored:
        - /register/**
    

    与Java配置的匹配程序冲突