当前位置:   article > 正文

SpringSecurity6 多种登录方式配置自定义Provider不生效问题_security.addprovider

security.addprovider

        项目里要用到手机验证登录和账号密码提交登录两种方式,便自定义了手机验证登录的Provider,测试的时候发现一直403。

---------------------------------------------------------------------------------------------------------------------------------

        随后开启debug模式!

找到问题了,手机验证的Provider没有被注册到里面来,回到SecurityConfig里查找问题。

因为以前也没有配置过多种验证方式,就一直这么配置了。这里面会判断是否AuthenticationManager是否已经存在,没有的话会去 Ioc容器里读取并且读取全局配置等,这里面authBuilder.build()里会默认提供一个DaoAuthenrizationProvider,但是没有读取到我们自己定义的Provirder。

问题在于当我们使用configuration.getAuthenticationManager()去获取一个Manager容器时,我们自己的Provider并没有加载到Ioc容器中,也没有被获取到。

解决方法:

        自定义个AuthenrizationManager注射到IOC容器中即可。

注: 上面在过滤器链中使用,http.authenticationProvider()的方式,在论坛中也有很多人使用这种方式,但是我不知道为啥我是失效的,待我研究debug会。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/煮酒与君饮/article/detail/942741
推荐阅读
相关标签
  

闽ICP备14008679号