Skip to content

Ce repo propose une démo Spring Boot intégrée à Keycloak pour la gestion de l’authentification et l’autorisation. Il illustre un CRUD sécurisé avec API REST, montrant comment protéger les ressources, gérer les rôles et utilisateurs, et simplifier l’intégration d’un Identity Provider moderne dans une application Java.

Notifications You must be signed in to change notification settings

bayembacke221/demo-springboot-keycloak-auth-crud

Repository files navigation

🚀 Demo Spring Boot + Keycloak


🌐 English version available — click here!


📝 Présentation

Ce projet est un exemple d’application Spring Boot intégrant Keycloak pour la gestion de l’authentification, l’inscription des utilisateurs, l'envoie d'email et les opérations CRUD. Il s’adresse à toute personne souhaitant sécuriser une API REST avec Keycloak.

✨ Fonctionnalités

  • 🔐 Authentification via Keycloak
  • 📝 Inscription d’utilisateurs
  • 🛡️ Gestion des rôles (admin, user)
  • 🗂️ Opérations CRUD sur les entités principales

⚙️ Prérequis

  • ☕ Java 17+
  • 🐘 Maven
  • 🐳 Docker (pour Keycloak)

🚦 Installation et démarrage

  1. Cloner le projet

    git clone https://github.com/bayembacke221/demo-springboot-keycloak-auth-crud.git
    cd demo-springboot-keycloak-auth-crud
  2. Lancer Keycloak avec Docker Compose

    docker-compose up -d
  3. Configurer Keycloak

    Suivre les étapes ci-dessous (voir section "Configuration Keycloak").

  4. Lancer l’application Spring Boot

    ./mvnw spring-boot:run

🛠️ Configuration Keycloak

  1. Créer un Realm

Créer un Realm

  1. Créer un Client

Client - Paramètres généraux


Client - Capabilities


Client - Login settings

  1. Créer des rôles

Création d’un rôle


Rôle admin


Rôle user

  1. Créer un utilisateur

Créer un utilisateur


Définir le mot de passe


Ajouter un rôle à l’utilisateur

📡 Utilisation de l’API

  • 🔑 Authentification : Obtenir un token via /auth/realms/demo/protocol/openid-connect/token
  • 📝 Inscription : Endpoint d’inscription utilisateur (exemple : /api/register)
  • 🗂️ CRUD : Endpoints pour créer, lire, mettre à jour, supprimer des entités protégées par Keycloak

Voir le code source pour le détail des endpoints (src/main/java/sn/malcolm/demo/controller/)

🗃️ Structure du projet

src/
  main/
    java/sn/malcolm/demo/
      controller/      # Contrôleurs REST
      model/           # Entités JPA
      repository/      # Repositories Spring Data
      security/        # Configurations Keycloak
      service/         # Logique métier
      view/            # DTOs
  resources/
    application.properties
keycloak/              # Captures d’écran de la configuration Keycloak

🖼️ Captures d’écran de l’application

Voici quelques exemples d’utilisation de l’API via Postman :

🔑 Authentification (Login)

Login et génération du token

📝 Création d’un utilisateur

Création d'utilisateur

📧 Email de création de compte

Email Création Compte

📋 Récupérer tous les utilisateurs

Get All Users

🔍 Récupérer un utilisateur par ID

Get User By ID

✏️ Mise à jour d’un utilisateur

Update User

❌ Suppression d’un utilisateur

Delete User

🔄 Réinitialisation du mot de passe (reset-password)

Reset Password

Mail Reset Password

🔒 Changement du mot de passe (change-password)

Change Password

📚 Ressources utiles

👤 Auteur

  • Mbacke Mbaye

N’hésite pas à contribuer ou à ouvrir une issue ! 😃

About

Ce repo propose une démo Spring Boot intégrée à Keycloak pour la gestion de l’authentification et l’autorisation. Il illustre un CRUD sécurisé avec API REST, montrant comment protéger les ressources, gérer les rôles et utilisateurs, et simplifier l’intégration d’un Identity Provider moderne dans une application Java.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published