Spring Security重写密码比对方法(将前台传入的加密密码进行解密之后再做比对)


一、新建自己的MyAuthenticationProvider继承Spring Security的DaoAuthenticationProvider

  1.理论

  Spring Security默认的密码比对主要是依靠DaoAuthenticationProvider下的additionalAuthenticationChecks方法来完成的,下面是additionalAuthenticationChecks的源码

  

  我们只需要将additionalAuthenticationChecks方法进行重写,就可以自定义密码比对业务了。

  2.实战

  由于前台传入的是经过sm2加密过的密码,但是数据库里面存入的又是将明文加密过的密码,所以就不能再使用Spring Security默认的密码比对方式,必须在比对之前,先将加密的密码进行解密。

  

  红色方框内为我自己的解密方法,根据自己的加密方式进行解密即可,其他代码均与additionalAuthenticationChecks的源码保持一致即可。

 二、将MyAuthenticationProvider注入到Spring容器中

  

  需要注意的是,在注入MyAuthenticationProvider的时候,一定要记得将自己的myUserDetailService(myUserDetailService为Spring Security默认UserDetailsService的实现类)传入到MyAuthenticationProvider中,否则将会报错,至此就全部完成了。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM