Od wiosny Bezpieczeństwo 3.1.4.RELEASE, stare org.springframework.security.authentication.encoding.PasswordEncoder
has been deprecated na rzecz org.springframework.security.crypto.password.PasswordEncoder
. Ponieważ moja aplikacja nie została jeszcze udostępniona publicznie, zdecydowałem się przejść do nowego, nieużytego API.Jak korzystać z nowego PasswordEncodera ze Spring Security
Do tej pory miałem ReflectionSaltSource
, który automatycznie używał daty rejestracji użytkownika jako soli dla użytkownika na hasło.
String encodedPassword = passwordEncoder.encodePassword(rawPassword, saltSource.getSalt(user));
Podczas procesu logowania, Wiosna stosowany również moje fasoli przywłaszczyć sprawdzić, czy użytkownik może lub nie może podpisać się nie mogę to osiągnąć w nowym hasłem enkodera, ponieważ domyślna implementacja SHA-1. - StandardPasswordEncoder
ma tylko możliwość dodania globalnej sekretnej soli podczas tworzenia kodera.
Czy istnieje rozsądna metoda konfiguracji z nieużytym API?
Co jeśli masz zarejestrowanych użytkowników? Zakładam, że Password enoder zostanie w pewnym momencie usunięty. Jak migrować? – Marc
Migracja kont zwykle wymaga ponownego hashowania hasła, gdy użytkownik loguje się. Musisz również obsługiwać wiele algorytmów dla okresu migracji. Poza tym możesz wymagać zresetowania hasła lub ostatecznie zablokować lub usunąć nieużywane konta, które nie były używane przez dodatkowy okres. To zależy od twojego systemu i wymagań. Jestem pewien, że możesz znaleźć dyskusje na ten temat, jeśli przeprowadzisz wyszukiwanie, ponieważ jest to powszechny problem i staje się coraz bardziej trafny, gdy wzrasta liczba haseł związanych z dbaniem o hasło. Przynajmniej nie używasz [zwykłego tekstu] (http://ow.ly/qZQh0) :-). –
Mam aplikację, która działa i używa starego PasswordEncodera z solą. Czy istnieją przykłady migracji do nowego PasswordEncodera? – user2213684