我使用的是Spring Boot 2.0(利用Spring Security 5.0)。我正在尝试向WebSecurityConfigureAdapter子类中的AuthenticationManager添加自定义AuthenticationProvider。如果我重写configure(AuthenticationManagerBuilder)方法来提供我的新提供者,那么我不知道如何将AuthenticationManager作为bean检索。
例如:
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception
{
auth.authenticationProvider(customAuthenticationProvider);
}
}
其中CustsurationProvider
实现AuthsurationProvider
。
在Spring文档中,似乎指定两者不兼容:
5.8.4 AuthenticationProvider您可以通过将自定义AuthenticationProvider公开为bean来定义自定义身份验证。例如,假设SpringAuthenticationProvider实现了AuthenticationProvider,以下内容将自定义身份验证:
[注意]这仅在尚未填充AuthenticationManagerBuilder时使用
事实上,如果我尝试使用以下方式检索AuthentiationManager bean:
@Bean
public AuthenticationManager authenticationManager() throws Exception {
return super.authenticationManagerBean();
}
然后永远不会调用configure()
方法。
那么,如何将自己的自定义提供程序添加到默认提供程序列表中,并且仍然能够检索AuthenticationManager呢?
您可以重写WebSecurityConfigrerAdapter.authenticationManagerBean()
方法并使用@Bean
注释对其进行注释
@Bean
@Override
public AuthenticationManager authenticationManagerBean() throws Exception {
return super.authenticationManagerBean();
}
没有Spring Boot 5.0,最新版本是Spring Boot 2.0。我相信你说的是Spring Security 5.0。
我正在使用Spring Security 4.0.1,并希望使用多个身份验证提供程序使用基于Java的配置进行身份验证。如何指定提供程序顺序? 我希望使用AuthenticationManagerBuilder,因为这就是<code>WebSecurityConfigurerAdapter。configureGlobal()公开,但我看不到任何指定顺序的方法。我需要手动创建ProviderMana
我有一个Laravel5.4应用程序,在其中我必须通过外部API验证我的管理员用户,当成功登录时,它会返回一个包含用户信息的JSON。 我正在创建一个自定义保护,使此: 这是我的定制提供商: 在那之后,我不知道如何继续。我读过一些教程,比如George Buckingham的教程,我创建了一个自定义用户提供程序(现在我只需要它从EloquentUserProvider扩展,最终我将覆盖一些函数以连
我正在使用Symfony Security和系统中的自定义用户提供程序。它通过web服务为用户提供服务。 我根据本教程配置提供程序(http://symfony.com/doc/current/cookbook/security/custom_provider.html). 这里是检查用户的功能: 这很好,函数使用用户名调用一个web服务,然后返回一个包含用户数据的数组。但是现在我需要通过另一个w
我们正在使用PACT库进行合同测试。当前项目依赖于junit5集成。我必须扩展一个测试,使用2个提供者,而不是1: 当前版本: 我查看了发布说明,没有发现任何更新。是否有其他方法如何定义另一个提供程序?如: 或者在这种情况下junit5集成不是一个好的选择?
我将为我的网站创建自定义用户提供程序,对于用户来说,没有“用户名”和“密码”这样的概念(实际上有类似于密码的东西,但它的名称不同)。在文档中,用户实体必须实现来自安全包的UserInterface,该安全包具有诸如getUsername、getPassword之类的方法。我能用我自己的领域吗?或者我应该使用名称冲突(例如,getUsername将返回我的唯一字段)来实现我的行为吗?
如果我创建一个提供者并将其绑定到一个类,就像这样 然后