Controleur
Nous pouvons nous passer de la page /auth/login
, car l'utilisateur devra saisir ces identifiant pour se connecter à chacune des pages.
Ainsi pour accéder à restricted
il devra donner son identifiant et son mot de passe.
@GetMapping("/restricted")
public String retricted() {
return "Welcome to Restricted page";
}
Basic authentification avec Spring
La documentation Spring explique très bien l'authentification Basic.
Spring fourni par défaut :
- un filtre
BasicAuthenticationFilter
intercepte la requête - qui va crée le
UsernamePasswordAuthenticationFilter
- qui va appeler
AuthenticationManager
. On retombe sur le diagramme de séquence décrit précédement, avec un appel auDaoAuthenticationProvider
- pour au final ajouter l'authentification au
SecurityContext
Conséquence
Ainsi, l'authentification (le login) est assuré en interne par Spring, nous n'avons pas besoin de coder de méthode login()
.
Diagramme de séquence
StackTrace
- Nous avons bien un ensemble de filtre exécutés, dont le
BasicAuthenticationFilter
. - Qui va faire appel à une intance de
AuthenticationManager
, en l'occuranceProviderManager
- Qui lui, va appeler le
DaoAuthenticationProvider
afin de fournir uneAuthentication
L'invocation du contrôleur est réalisée automatiquement après, une fois la Security Filter Chain "validée", c'est-à-dire que l'utilisateur est bien authentifié.