Po prostu proste pytanie: jaki jest najlepszy sposób dodawania atrybutów (właściwości) do HttpSession w przypadku uwierzytelniania sukcesu? ID użytkownika na przykład.Spring Security: umieść dodatkowe atrybuty (właściwości) w sesji na sukces Uwierzytelnienie
Na razie używam własną implementację SimpleUrlAuthenticationSuccessHandler w UsernamePasswordAuthenticationFilter i robi to tak:
public void onAuthenticationSuccess(HttpServletRequest request,
HttpServletResponse response, Authentication auth)
throws IOException, ServletException {
PersonBean person = (PersonBean) auth.getPrincipal();
request.getSession().setAttribute("currentUserId", person .getId().toString());
super.onAuthenticationSuccess(request, response, auth);
Ale nie sądzę że jest to dobre podejście, ponieważ nie ma innego sposoby wykonywania uwierzytelniania (Twój na zawsze na przykład) .
Więc czego potrzebuję użyć tutaj?
Tabela persistent_logins tak naprawdę nie ma nic wspólnego z przechowywaniem atrybutów w sesji. To tylko szczególna implementacja "pamiętaj mi". Sensowne jest jednak przechowywanie dodatkowych niestandardowych atrybutów użytkownika w obiekcie uwierzytelniania. –