Skip to content

Spring security config + JWT authentication filter#118

Merged
Devmodjo merged 3 commits into
Kether-Labs:developfrom
SonnyHardy:feature/backend/security-jwtAuth-filter
Apr 27, 2026
Merged

Spring security config + JWT authentication filter#118
Devmodjo merged 3 commits into
Kether-Labs:developfrom
SonnyHardy:feature/backend/security-jwtAuth-filter

Conversation

@SonnyHardy

Copy link
Copy Markdown
Contributor

Issue liée

Closes #73


Partie concernée

🟦 Backend uniquement — API / base de données / scheduler

Module concerné

Authentification — login / register / sessions

Le problème à résoudre

Configurer Spring Security en mode stateless, le filtre JWT

La solution proposée

  • SecurityConfig : stateless, désactiver CSRF, CORS whitelist frontend
  • JwtAuthFilter extends OncePerRequestFilter : extraire Bearer token, valider, set SecurityContext
  • Whitelist routes publiques : /api/auth/**, /actuator/health
  • Rate limiting Redis sur /api/auth/** : 10 req/min/IP via intercepteur Spring (pas obligatoire pour le moment)
  • Rate limiting global : 100 req/min/IP sur toutes les routes (pas obligatoire pour le moment)
  • Tester que les routes protégées retournent 401 sans token valide
  • Tests pour le Rate limiting

Type de changement

  • feat — Nouvelle fonctionnalité
  • fix — Correction de bug
  • docs — Documentation uniquement
  • test — Ajout ou modification de tests
  • refactor — Refactoring sans changement de comportement
  • chore — Maintenance, CI/CD, dépendances
  • breaking change — Modifie l'API publique ou un contrat frontend ↔ backend

Comment tester

🟦 Backend

cd backend
mvn test
mvn verify

Checklist

🟦 Backend — à cocher si la PR touche au backend

  • mvn test passe sans erreur
  • mvn verify passe sans erreur (couverture JaCoCo)
  • La couverture de code ne régresse pas (> 80% sur les services)
  • Tous les endpoints sont correctement typés et validés (@Valid)
  • Les erreurs retournent les bons codes HTTP
  • Aucune credential ou secret dans le code — uniquement dans .env
  • La logique métier est dans les services — pas dans les controllers

📝 Documentation

  • J'ai mis à jour la documentation si nécessaire
  • Si un nouvel endpoint est créé — il est documenté dans docs/api-reference.md
  • Si une variable d'environnement est ajoutée — elle est dans .env.example

🔀 Git

  • Ma branche est à jour avec develop — pas de conflits
  • Mes commits suivent la convention type(frontend|backend): description
  • Il n'y a pas de commits de debug ou temporaires (console.log, System.out.println)
  • Ma PR cible develop et non main

Notes pour le reviewer

  • J'ai travaillé dans le dosssier core parceque Spring security et JwtAuthFilter n'est pas spécifique à un seul module mais concerne tous les modules du projet.

@Devmodjo Devmodjo left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok c'est bon

@Devmodjo
Devmodjo merged commit a451299 into Kether-Labs:develop Apr 27, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants