Heute habe ich die Spring-Sicherheitsversion der Anwendung, an der ich arbeite, von 3.1.3 auf 3.1.4 aktualisiert, und ich bemerkte eine Verwarnungswarnung für die Klasse org.springframework.security.authentication.encoding.ShaPasswordEncoder
.Spring security 3.1.4 und ShaPasswordEncoder depreciation
So wechselte ich auf die neue org.springframework.security.crypto.password.StandardPasswordEncoder
Implementierung.
Ich hatte es funktioniert und ich bin in der Lage, einen neuen Benutzer und Login in meiner Anwendung zu registrieren, aber, wie ich befürchtet habe, kann ich mich nicht einloggen Passwörter mit dem vorherigen ShaPasswordEncoder und meine benutzerdefinierte Salz generiert.
Da ich eine Datenbank mit vielen Benutzern bereits registriert habe, was soll ich tun, um die Implementierung zu wechseln, ohne die alten codierten Passwörter zu entwerten? Ist es überhaupt möglich?
Siehe auch: How to use new PasswordEncoder from Spring Security
Danke für den Code. Das ist mehr oder weniger das, was Spiff vorgeschlagen hat. Mein Ziel ist es, auf zukünftige Releases von Spring Security aufrüsten zu können, ohne zwei Implementierungen gleichzeitig zu haben, und diese Lösung funktioniert nur, wenn sich jeder Benutzer anmeldet. Ich hoffe, dass eine Implementierung eingeführt wird, die mit der alten kompatibel ist ShaPasswordEncoder. –
Wenn Benutzer sich nie anmelden, kann es sich lohnen, zu entscheiden, ob die Konten (nach einem geeigneten Überprüfungszeitraum) zu warten sind. Wenn sie inaktiv sind, können Sie sie vorübergehend deaktivieren und die Benutzer mailen, die sie auffordern, ihr Passwort zurückzusetzen. Von der Verwendung der alten Passwort-Encoder wird abgeraten, da sie relativ unsicher, fehleranfällig und mit anderen Systemen inkompatibel sind. Die Klassen sind veraltet, um ihre Verwendung in neuen Apps zu verhindern, aber nichts hält Sie davon ab, sie zu verwenden, wenn Sie wirklich keine sicherere Option verwenden möchten. –