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