Du 20 au 22 avril a eu lieu la conférence Devoxx pour développeurs, organisée par Quantixx au Palais des Congrès, à Paris. Ce fut l’occasion d’assister à des présentations pour en apprendre plus sur des domaines différents.
Avec un large choix de présentations et de conférences, aujourd'hui au travers de cet article nous allons approfondir le thème de la sécurité avec Spring Security.
Définition
Spring Security est le standard pour la sécurité des applications dans l'écosystème Spring. La librairie offre de fortes garanties de sécurité aux applications web et une configuration par défaut solide. Très fortement utilisé, Spring Security reste un outil difficile à maîtriser au démarrage.
Cet article nous guide pas à pas dans la création d’une page sécurisée, une authentification avec un service externe (Google), et l’ajout de filtre sur l’authentification.
Pour ce faire, nous allons créer deux contrôleurs, l’un pour notre page public et le second pour notre page privée. Le contrôleur est responsable de l'enchaînement des interactions avec l’utilisateur. Il reçoit tous les événements de l'utilisateur et enclenche les actions à effectuer.
L’authentification permet à l’application de savoir quel type d’utilisateur est connecté.
De plus, des informations sur l’utilisateur peuvent être sauvegardées comme le nom, le mail ou encore le numéro de téléphone…
Nous avons alors nos deux pages qui sont prêtes à l’emploi, il nous reste maintenant à gérer l’authentification d’un utilisateur pour qu’il puisse accéder à notre page privée. L’authentification se fera grâce à un formulaire « formLogin». Les identifiant et mot de passe sont définis dans la méthode userDetailsService.
Aujourd’hui nombreux sont les utilisateurs qui ne veulent plus créer de compte lors de l’inscription. La solution pour une application est de passer par un service d’authentification géré par une autre application (Facebook, Google).
Nous allons utiliser le protocole OAuth 2.0, c’est un protocole d’autorisation permettant une connexion sécurisée. Il va donc falloir importer le module, le rajouter dans le fichier de configuration et préciser que nous voulons nous connecter avec un compte Google.
En bonus, on peut afficher les informations de l’utilisateur sur notre page privée.
Nous avons atteint notre objectif de réaliser deux pages, l’une publique, et la seconde privée avec une authentification par Google.
Vous pouvez retrouver ce code sur le lien ci-dessous et l’explorer pour voir les fonctionnalités plus complexes de Spring Security.
Lien pour approfondir :
GitHub pour l’exemple : https://github.com/Kehrlann/spring-security-workshop-code
La conférence Devoxx : https://www.youtube.com/watch?v=wYR6L_1Jb4I