Wednesday, October 23, 2019

Spring Boot + JWT(Json Web Token)


Afin de sécuriser une application le framework spring security offre plusieurs solutions.

Parmi ces solutions est l'utilisation de Jeton (JWT) qui facilite l’authentification au serveur avec les différents types de clients, soit client mobile développé avec android par exemple ,soit un client léger développé en java comme spring mvc ou bien en angular .

Dans ce tutoriel, nous allons développer une application Spring Boot qui utilise JWT lors de l’authentification.


Tout d'abord commençons par la création d'un simple projet avec Spring Boot comme nous avons fait dans ce vidéo ;




La structure de projet crée est comme ceci :


Le fichier pom.xml est comme ceci :

Après il faut créer la classe TokenUtil dans la quelle nous allons gérer le jeton et donner les valeurs avant de le générer:


La classe MyFilter va filtrer les accès selon les valeurs contenues dans le jeton envoyé. Ce filtre sera appelé dans la classe de configuration de spring securité nommée WebSecurityConfig Les annotations @Configuration et @EnableWebSecurity sont utilisées afin d'activer la sécurité des accès aux controllers.

 Dans ce projet spring boot nous avons deux contrôleurs: HelloWorldController et AuthenticationController.
La classe service qui implémente l'interface UserDetailsService qui contient une seule méthode appelée loadUserByUsername
L'interface UserRepository en spring data qui interagit avec la base de donnée Mysql. Dans la base de donnée nous avons besoin de deux tables users et roles qui correspondent aux entités suivantes: Voici la classe CustomUserDetails utilisé dans la méthode loadUserByUsername de l'interface UserDetailsService . Le fichier de configuration de spring boot est Le projet complet est dans ce lien .

No comments:

Post a Comment