Après un nouvel utilisateur soumet un "Nouveau compte" forme, je veux connecter manuellement que l'utilisateur en sorte qu'ils n'ont pas de connexion sur la page suivante.
La forme normale de la page de login en passant par le printemps de sécurité de l'intercepteur fonctionne très bien.
Dans le nouveau-compte-forme contrôleur je suis entrain de créer un UsernamePasswordAuthenticationToken et le mettre dans le SecurityContext manuellement:
SecurityContextHolder.getContext().setAuthentication(authentication);
Sur la même page plus tard, j'ai vérifier que l'utilisateur est connecté avec:
SecurityContextHolder.getContext().getAuthentication().getAuthorities();
Ceci renvoie les autorités, j'ai établi plus tôt dans l'authentification. Tout est bien.
Mais quand ce même code est appelé sur la page suivante j'ai la charge, le jeton d'authentification est juste UserAnonymous.
Je ne suis pas clair pourquoi il n'a pas garder l'authentification j'ai mis sur la demande précédente. Toutes les pensées?
- Pourrait-il avoir à faire avec l'ID de session n'est pas réglée correctement?
- Est-il quelque chose qui est peut-être écraser mon authentification en quelque sorte?
- Peut-être que j'ai juste besoin d'une autre étape pour économiser de l'authentification?
- Ou est-il quelque chose que je dois faire pour déclarer l'authentification à travers l'ensemble de la session, plutôt qu'une seule demande en quelque sorte?
Juste à la recherche de quelques idées qui pourrait m'aider à voir ce qui se passe ici.