Spring Security - 动态/运行时更改密码编码器

时间:2015-07-20 15:32:51

标签: spring spring-mvc web-applications spring-security spring-boot

我已经创建了运行流畅的spring安全应用程序,目前我正在使用SHA-1编码技术,但我想支持MD5加密技术

<!-- This will override the settings of authentication manager bean. -->
<authentication-manager alias="authenticationManager">
    <authentication-provider user-service-ref="umsUserDetailsService">
        <password-encoder hash="sha"/> 
    </authentication-provider>
    <authentication-provider ref="rememberMeAuthenticationProvider" />
</authentication-manager>

以上是SHA-1加密的配置设置。现在我也想支持MD5算法,

我已将当前算法存储在数据库中,希望只支持MD5或SHA-1,只要我们可以更改加密算法,它就会运行时反映到那个/支持该算法。

要支持此类型流程需要做哪些更改?

1 个答案:

答案 0 :(得分:0)

我通过实施以下解决方案找到了我们可以做到的答案。

public class MyPasswordEncoder implements PasswordEncoder{
     @Override
     public String encodePassword(String rawPass, Object salt)
        throws DataAccessException {
      // TODO Auto-generated method stub
    }
    @Override
    public boolean isPasswordValid(String encPass, String rawPass, Object salt)
        throws DataAccessException {
   }
}

并在应用程序上下文文件中添加此bean。