在不扩展WebSecurity配置适配器的情况下访问全局authenticationmanagerbuilder?

7y4bm7vi  于 2021-10-10  发布在  Java
关注(0)|答案(0)|浏览(178)

我正在使用spring授权服务器。我已经使用 SecurityFilterChain 而不是扩展 WebSecurityConfigurerAdapter 和许多人一样。

@Bean
SecurityFilterChain defaultSecurityFilterChain(HttpSecurity http) throws Exception {
    http
        .authorizeRequests(authorizeRequests ->
            authorizeRequests.anyRequest().authenticated()
        )
        .formLogin(withDefaults());
    return http.build();
}

现在的问题是:如何访问 AuthenticationManagerBuilder 为了添加自定义 AuthenticationProvider ? (不使用 WebSecurityConfigurerAdapter ; 因为我不能把它和 SecurityFilterChain )
我已经配置了带有jwt的oauth,现在我正在尝试添加saml支持,但我相信我需要访问全局 AuthenticationManagerBuilder 为了添加我的saml AuthenticationProvider 以及暴露已构建的 AuthenticationManager 作为在我的配置中进一步使用的bean。
我看到的唯一方法是通过重写 WebSecurityConfigurerAdapter 中国的方法。
例如

public class SecurityConfig extends WebSecurityConfigurerAdapter {

  @Autowired
  private CustomAuthenticationProvider authProvider;

  @Bean
  @Override
  public AuthenticationManager authenticationManagerBean() throws Exception {
      return super.authenticationManagerBean();
  }

  @Override
  protected void configure(AuthenticationManagerBuilder auth) throws Exception {
      auth.authenticationProvider(authProvider);
  }
}

有没有办法配置 AuthenticationManager 访问bean而不进行扩展 WebSecurityConfigurerAdapter ?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题