Spring 3密码编码不适用于保存

Spring 3密码编码不适用于保存,spring,spring-security,password-encryption,Spring,Spring Security,Password Encryption,我有以下资料: @Override protected void registerAuthentication(AuthenticationManagerBuilder auth) throws Exception { auth.userDetailsService(userDetailsManager()).passwordEncoder(passwordEncoder()); } @Bean public MongoUserDetailsService userDetails

我有以下资料:

   @Override
protected void registerAuthentication(AuthenticationManagerBuilder auth) throws Exception {
    auth.userDetailsService(userDetailsManager()).passwordEncoder(passwordEncoder());
}

@Bean
public MongoUserDetailsService userDetailsManager() {
    return new MongoUserDetailsService();
}

@Bean
public BCryptPasswordEncoder passwordEncoder() {
    return new BCryptPasswordEncoder();
}
在我的WebSecurityConfigureAdapter中,它似乎可以在登录时检查密码


我是否遗漏了其他任何东西来存储加密的密码?

我只需要在存储密码时通过编程对密码进行加密。基本上:

new BCryptPasswordEncoder().encode(user.getPassword())

您如何存储密码?在保存之前,您可能需要使用密码编码器对密码进行哈希运算。这正是我所需要的,因此只需对密码进行简单的编码。对于这个非常简单的问题,我认为spring也可以发挥一些魔力,当您指定该字段是密码,并且最终将使用bcrypt机制对其进行比较时。。。无论如何,它是固定的。感谢如果您使用提供的UserDetailsManager实现之一,它将自动为您解决此问题。但是,由于您提供了实现,因此必须对密码进行编码