spring - Spring boot - 如何使用 2 个身份验证提供程序
问题描述
我正在尝试使用 Kotlin 将 2 个身份验证提供程序与 Spring Boot 一起使用:
这个方法在一个类中:
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true, securedEnabled = true)
@Import(SecurityProblemSupport::class)
class SecurityConfiguration(
...
) : WebSecurityConfigurerAdapter() {
@Throws(Exception::class)
override fun configure(auth: AuthenticationManagerBuilder) {
//super.configure(auth); DON'T DO THIS - for sure...
val dap = DaoAuthenticationProvider()
dap.setUserDetailsService(domanUserDetailsService)
auth.authenticationProvider(LegacyUserDaoAuthenticationProvider(legacyUserService)) .
auth.authenticationProvider(dap)
// Breakpoint here shows that both authentication providers are in the builder
}
...
}
当我在应用程序运行后运行调试器时,ProviderManager
只有 1 个提供程序。不知何故,AuthenticationManagerBuilder
没有使用authenticationProvider
这里添加的 2 s。我验证了我的configure
方法正在被调用,并且AuthenticationManagerBuilder
在此方法之后有 2 个身份验证提供程序。
我在这里完成的设置发生了一些事情(或者 Spring 没有使用AuthenticationManagerBuilder
我设置的设置。
有谁知道为什么?
解决方案
我想知道是否正在配置另一个安全性或正在加载自动配置。您可以尝试@Order(1)
在配置中进行设置。
推荐阅读
- animation - 玩家可以加入多个房间吗?双关语
- reactjs - 修复 Material-UI 对话框底部的按钮
- angular - 有没有办法将服务注入自定义装饰器(Angular)?
- excel - 计算 ArrayList 中唯一项的数量
- python - 我正在尝试将具有一些空属性的 xml 文件导入到表中。收到此错误 AttributeError: 'NoneType' 对象没有属性 'strip'
- php - 令牌“'”无效 - PHP PDO PostgreSQL
- apache-poi - Apache POI 是否支持替换 docx 中的合并字段?
- python - 沿相同方向移动四个一组的矩形
- python - 在 django Serializer save() 方法中发布到 MQTT
- excel - Excel VBA在执行后隐藏行