Mam wdrożony Spring Security w mojej aplikacji. Użyłem domyślnej implementacji, tj. Skonfigurowałem ją z własnymi parametrami (DataSource, Secured Areas, itp.), Ale nie napisałem żadnej niestandardowej implementacji.Uzyskaj więcej informacji od użytkownika - Spring Security
Teraz chcę przechwycić więcej danych od użytkownika, to jest na tej samej tabeli, co nazwa użytkownika i hasło, takie jak nazwa firmy, identyfikator itp. Jednak nie chcę używać tych informacji w celu zalogowania.
Nie jestem pewien, jak to zrobić. Z tego, co przeczytałem, jest związana z UserDetailsService. Wydaje się jednak, że napisanie Custom UserDetailsService byłoby konieczne, gdybym chciał użyć tych informacji podczas logowania i nie tego chcę. Po prostu chcę użyć tych informacji w aplikacji, po zalogowaniu się użytkownika.
Czy to jest naprawdę powiązane z UserDetailsServer? Czy to jedyny plik, który muszę zmodyfikować?
Wszystkie przykłady znalazłem niestandardowych UserDetailsService prostu stosować nazwę użytkownika i hasło, więc nie mogę zrozumieć, gdzie nowe dane przyjdzie w.
Dzięki!
'loadUserByUsername' zwraca UserDetails, ale w kodzie, zwraca' buildUserFromAccount' która zwraca użytkownika. W jaki sposób CustomUserDetails jest zaangażowany w kod? Konto DAO i wszystkie jego metody powinny być zaimplementowane przeze mnie, prawda? –
Miał trochę literówki i naprawił go. Aby wyjaśnić dalej: 'UserDetails' jest interfejsem,' Użytkownik' jest implementacją wiosennych papierów wartościowych, zawierającą wszystkie podstawowe pola. Jeśli chcesz dodać własne pola, najłatwiej jest rozszerzyć 'User'. Wciąż możesz zwrócić obiekt 'User' w tej metodzie lub obiekt' UserDetails' lub 'CustomUserDetails' jako zabezpieczenie wiosny, właśnie oczekuje obiektu implementującego' UserDetails'. – Pete
Ah, Ok! Korzystając z tego, zapewniam uwierzytelnianie Spring Security. Jednak obiekt użytkownika, który ma, ma wszystkie moje niestandardowe pola. Jak uzyskać ten obiekt, więc mogę na przykład "pobraćCompany"? –