spring security passwordencoder

时间:2014-04-02 15:59:09

标签: spring-mvc spring-security spring-java-config

所以这是我的第一个代码

@Autowired
    protected void configureGlobal(AuthenticationManagerBuilder registry) throws Exception {
        registry.userDetailsService(userDetailsService);
    }

我想使用密码编码器,所以我将代码转换为

@Autowired
    protected void configureGlobal(AuthenticationManagerBuilder registry) throws Exception {
            ShaPasswordEncoder sha= new ShaPasswordEncoder(256);
        registry.userDetailsService(userDetailsService).passwordEncoder(sha);
    }

但它仍然无法工作..这段代码似乎有什么问题?我很新的java配置..我希望有人可以帮助我..

1 个答案:

答案 0 :(得分:0)

嗯,傻我......问题不在于Spring的安全性。我的sha-256代寄存器不正确。这就是我无法登录的原因..这是我现在的代码。

MessageDigest md = MessageDigest.getInstance("SHA-256");
md.update(user.getPassword().getBytes());

byte byteData[] = md.digest();

StringBuffer sb = new StringBuffer();
for (int i = 0; i < byteData.length; i++) {
    sb.append(Integer.toString((byteData[i] & 0xff) + 0x100, 16)
            .substring(1));
}
user.setPassword(sb.toString());