Ich benutze Frühling Sicherheit in unserer Anwendung und möchte Benutzereingaben mit dem Passwort in der Datenbank für die Änderung Passwort-Option zu validieren.Spring Security - BcryptPasswordEncoder
Das Passwort wird im DB wie folgt gespeichert.
Hier wird das vom Benutzer eingegebene Passwort mit der obigen Logik codiert und im DB gespeichert. Jetzt versuche ich nur das Passwort vom Benutzer für das Passwort zu ändern. Nachdem ich das Passwort vom Benutzer erhalten habe, kodiere ich unter Verwendung der obigen Logik und versuche, mit der DB zu vergleichen. Der codierte Wert scheint unterschiedlich zu sein, auch wenn ich dieselbe Logik für die Codierung verwende.
Meine Konfiguration von WebSecurityConfig
:
@Autowired
public void configAuthentication(final AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(userDetailsService).passwordEncoder(new BCryptPasswordEncoder());
}
Ich bin nicht sicher, was mit Vergleich falsch ist.
Wie haben Sie die verschlüsselten Passwörter miteinander vergleichen? Verwenden Sie 'String # equals' oder' PasswordEncoder # passt'? –