在内存和自定义提供程序中
2022-09-03 18:26:32
我正在设置我的Spring Security(v4.0.1)Web应用程序。我希望有两个身份验证提供程序,一个“内存中”提供程序用于管理管理员帐户,另一个自定义提供程序引用我自己的实现。系统应首先尝试对“内存中”提供程序进行身份验证,然后尝试对自定义提供程序进行身份验证。我的代码如下所示:
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth,
AuthenticationProvider provider) throws Exception {
auth.inMemoryAuthentication()
.withUser("admin")
.password("s3cr3t")
.authorities("ADMIN");
auth.authenticationProvider(provider);
}
但是,此代码引导框架首先尝试我的自定义实现。这有点意义,因为AuthorationManagerBuilder#authenticationProvider
方法将提供程序添加到内部列表中,而AuthorationManagerBuilder#inMemoryAuthentication则在
内部配置它。我怎样才能让它工作?