@Configuration
@EnableWebSecurity
//开启注解式权限校验
@EnableGlobalMethodSecurity(prePostEnabled = true,jsr250Enabled = true,securedEnabled = true,proxyTargetClass = true)
public class webSecurityConfig extends WebSecurityConfigurerAdapter {
@Resource
private UserDetailsService service;
@Resource
private PAccountService pAccountService;
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(service).passwordEncoder(new PasswordEncoder() {
@Override
public boolean matches(CharSequence rawPassword, String encodedPassword) {
// TODO Auto-generated method stub
System.out.println(rawPassword);
//MD5 32位小写加密方式
return encodedPassword.equals(DigestUtils.md5DigestAsHex(rawPassword.toString().getBytes()));
}
@Override
public String encode(CharSequence rawPassword) {
// TODO Auto-generated method stub
return DigestUtils.md5DigestAsHex(rawPassword.toString().getBytes());
}
});
}
}

为什么注册时输入的密码是【123456】,生成的密文是【123456,123456】?
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
5条回答 默认 最新
- miaoch 2022-04-24 17:10关注
你在26行加个打印,在注册的时候输入 123456,看打印的是不是123456不就知道了。
我怀疑是你从页面到这个rawPassword中间出了问题。
举个类似的例子,
比如你的表单里面name="password" 写了两个,传递参数的时候 password就会是一个数组,toString() 就会是A,A
但不一定是你这个问题,我就是举个例子本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用