Comment s’authentifier avec Spring security

spring security

Comment s’authentifier avec Spring security

Ce tutoriel vous montrera comment mettre en œuvre un processus de connexion à l’aide de la pile technologique suivante:

 

  • Spring Boot
  • Spring Security
  • JPA (Hibernate)
  • Spring Data JPA
  • PostgreSQL
  • Spring MVC
  • Thymeleaf
  • Bootstrap
  • Java 8

 

C’est quoi Spring Security?

 

Spring Security est l’un des modules de sécurité de Spring Framework.

Il s’agit d’une infrastructure de sécurité Java SE / Java EE qui fournit une authentification, une autorisation, une authentification unique et d’autres fonctionnalités de sécurité pour les applications Web ou les applications d’entreprise. On peut aussi s’authentifier avec Spring Security en utilisant un Token ou le Framework Ionic

 

Définir les entités JPA

 

L’entité JPA est définie avec l’annotation @Entity et représente une table dans la base de données.

 

@Table mappe l’entité avec la table. Si aucune @Table n’est définie, la valeur par défaut est utilisée pour le nom de classe de l’entité.

 

@Id déclare la propriété d’identifiant de l’entité (clé primaire).

 

@JoinColumn indique que l’entité est le propriétaire de la relation: la table correspondante contient une colonne avec une clé étrangère pour la table référencée.

 

mappedBy indique que l’entité est l’inverse de la relation.

 

src / principal / java / com / intellitech / springlabs / model / User.java

 

 

src/main/java/com/intellitech/springlabs/model/Role.java

 

 

Spring Dépôts de données JPA

 

Spring Data JPA contient des référentiels intégrés qui implémentent des fonctions communes d’utilisation de la base de données: findOne, findAll, save,…

 

src / main / java / com / intellitech / repository / UserRepository.java

 

 

src/main/java/com/intellitech/repository/Role.java

 

 

Couche de service

 

Créons maintenant la couche de service utilisateur (interface et implémentation). Nous allons injecter le UserRepository dans notre classe de service.

 

src/main/java/com/intellitech/service/UserService.java

 

 

src/main/java/com/intellitech/service/impl/UserServiceImpl.java

 

 

Sécuriser l’application

 

Pour implémenter la connexion / authentification avec Spring Security, on doit implémenter l’interface org.springframework.security.core.userdetails.UserDetailsService. Cette interface nécessite une seule méthode loadUserByUsername (nom d’utilisateur String).

 

src/main/java/com/intellitech/security/CustomUserDetailsService.java

 

 

Pour les applications Web, on doit créer une classe spécifique qui étend WebSecurityConfigurerAdapter.

 

Cette classe propose plusieurs méthodes pour configurer notre configuration de sécurité.

 

protected void configure (HttpSecurity http): cette méthode incorporera toutes les demandes autorisées et les URL permis à l’accès public dans l’application et celles qui sont sécurisées. Dans notre cas, nous autorisons l’accès à tous uniquement pour la page d’accueil. Toute autre demande des utilisateurs doit être sur l’authentification avant l’accès. Nous avons également la possibilité de définir une page de connexion pour les utilisateurs authentifiés.

 

protected void configure (AuthenticationManagerBuilder authManagerBuilder): cette méthode de substitution permet de spécifier à l’AuthentificationManagerBuilder les types UserDetailsService et PasswordEncoder que nous allons utiliser.

 

src/main/java/com/intellitech/SecurityConfig.java

 

 

src/main/java/com/intellitech/SpringlabsApplication.java

 

 

Gérer les vues

 

La demande de registre est utilisée pour mapper toutes les vues de l’application.

il mappe les deux vues:

 

  • page login.html
  • html page

 

src/main/java/com/intellitech/WebMvcConfig.java

 

 

Voici la source de code thymeleaf pour les deux vues décrites ci-dessus. La vue basée sur Thymeleaf doit être située dans le dossier resources / templates:

 

src/main/java/ressources/templates/login.html

 

 

src/main/java/resources/templates/welcome.html

 

 

Lancer l’application

 

Vous devez d’abord créer une base de données avec le nom springlabs et exécuter l’application en lançant la classe SpringBootApplication à l’aide de la commande mvn spring-boot: run et visiter localhost: 8080

 

Exécutez le script dans la base de données PostgreSQL:

 

 

Authentifiez-vous avec l’un des deux utilisateurs:

 

: username=admin, password=admin
: username=user, password=user

Télécharger le code source à partir de

 

https://bitbucket.org/intellitech-team/spring-labs/src/84d806b1c8d34ae3ff38b89cb6015cbe88c47990/Lab0/?at=master

 

Avatar for Nizar Ellouze

Author: Nizar Ellouze

No Comments

Post a Comment

Comment
Name
Email
Website