Skip to content

Stage 2026 - #15

Draft
Quentin-Guillemin wants to merge 93 commits into
mainfrom
stage_2026
Draft

Quentin-Guillemin wants to merge 93 commits into
mainfrom
stage_2026

Conversation

@Quentin-Guillemin

Copy link
Copy Markdown
Member

No description provided.

durak-afk added 30 commits April 9, 2026 14:40
Tous les get dans le corntoller fonctionne
Reste a faire le post pour la modification de password
il faut que je visualise le ldap pour le changment de mot de passe

il faut faire les verisfications des mot de passe etc en commentaire
il faut que je visualise le ldap pour le changment de mot de passe

il faut faire les verisfications des mot de passe etc en commentaire
il faut que je teste tout ce que j ai fait
 - passer de loffit à jwt
…e changer le mot de passe.

Reste à fixer : les fonctions de verifications du mot de passe retroune des string, il faudrait que ca retourne des exceptions afin de ne pas recevoirs 200 alors qu il y a une erreur
…e changer le mot de passe.

Reste à fixer : les fonctions de verifications du mot de passe retroune des string, il faudrait que ca retourne des exceptions afin de ne pas recevoirs 200 alors qu il y a une erreur
…isie de mot de passe afin d etre sur que ca fonctionne correctement
…plémentation de gestion des mots de passe

Reste à faire :
- gérer les cas particuliers où l’algorithme de chiffrement ne peut pas être modifié
- gérer les utilisateurs Samba
… via regex

- Ajout des expressions régulières dans application.yml :
   regex-groups-with-ssha-pass : détecte les utilisateurs devant conserver SSHA
   regex-groups-with-samba-nt  : détecte les utilisateurs nécessitant une mise à jour Samba

- Ajout dans ServiceProperties de la propriété regexGroupsWithSambaNt

- Ajout dans PasswordService :
   requiresSSHA()  : vérifie si l'utilisateur appartient au groupe SSHA via regex LDAP
   requiresSamba() : vérifie si l'utilisateur appartient au groupe Samba via regex LDAP
   Choix dynamique de l'algo (SSHA ou ARGON2) selon les groupes LDAP
   Calcul conditionnel des hash Samba LM + NT

TODO : Les test
… selon les groupes LDAP et vérification de l'activation de Samba si requis
…nformations de la personne ayant changé le mot de passe

Des modifications ont été faites dans application.yml et logback, mais ne sont pas pushées.
…centraliser la gestion des logs dans logback.xml lors de la création de fichiers
refonte des logs pour les rendre plus lisibles
ajout d’un logger spécifique (specialLog)
création d’un fichier de configuration pour centraliser les éléments répétitifs
utilisation du MDC pour enrichir le contexte des logs
durak-afk added 30 commits June 29, 2026 10:17
…ation des en-têtes de licence manquants dans l'ensemble des fichiers du projet
… formatage du code

- Ajout de .editorconfig pour définir les règles de formatage du projet
- Application des règles via le reformatage des fichiers existants
- Ajout de spotless-maven-plugin pour automatiser le respect des règles
…et amélioration des tests pour UserDTOFactoryImpl, PersonneService

- Création de `ClasseGroupeServiceImplTest` avec des tests couvrant divers scénarios (profils ENS, non-ENS, attributs LDAP, etc.).
- Ajout de tests d'intégration pour `UserDTOFactoryImpl`, incluant des cas limites et des méthodes supplémentaires (conversion, gestion de mot de passe, utilisateur actuel).
- Enrichissement des tests pour `PersonneService` avec des scénarios liés à la gestion des avatars et à `InvalidAvatarException`.
- Ajout des sections Prérequis, Installation, Configuration, Build et Structure du projet
- Documentation des étapes pour compiler, tester, et exécuter le projet
- Explication de l'utilisation de `application.yml` et accès à l'API
…des workflows et des mentions de copyright

* Ajout de `eclipse-formatter.xml` pour garantir un formatage cohérent du code dans l'ensemble du projet.
* Ajout du schéma `license-lookup-v1.0.xsd` et définition du mapping des licences dans `license-mappings.xml`.
* Mise à jour des mentions de copyright à 2023.
…Maven

* Ajout d'une boucle de vérification afin de s'assurer que MariaDB est opérationnelle avant de poursuivre.
* Suppression des étapes inutilisées liées à l'installation et à la gestion d'OpenLDAP.
* Mise à jour de l'étape d'arrêt du conteneur pour gérer proprement le nettoyage de MariaDB.
…es commandes MySQL

- Suppression de Java 17 du `matrix` dans le workflow.
- Simplification des commandes MySQL pour se connecter à MariaDB.
…stion de cache

- Création de tests pour `CacheEventLogger`, `ConfigBeanProperties`, `Constants` et différents getters/setters des entités.
- Validation des comportements attendus et des valeurs par défaut.
… refactoring des tests pour améliorer la lisibilité et réduire la duplication

- Utilisation de `List.of` pour un code plus concis.
- Simplification des assertions et des tests répétitifs.
- Refactorisation des méthodes de nettoyage temporaire avec `cleanupTempDir`.
- Réduction des mocks inutiles dans plusieurs classes de tests.
…umentation

- Uniformisation des blocs de code dans les tests pour une meilleure lisibilité (`{}` formaté, suppression des sauts de ligne inutiles).
- Mise à jour des commandes dans la documentation pour utiliser `./mvnw` au lieu de `mvn` afin d'assurer la compatibilité avec Maven Wrapper.
- Nouveau service EmailVerificationService (envoi + vérification par code SecureRandom)
- Nouvel endpoint PUT /update-email → 202 Accepted (envoi email de confirmation)
- Nouvel endpoint public GET /verify-email (confirmation par code)
- Résolution email fixe : LDAP > apersonne.email (suppression domaine confiance)
- Résolution email personnel : cerbere_confirmation confirmé > apersonne.emailPersonnel
- updateEmail ne persiste plus en DB/LDAP (cache eviction uniquement)
- Suppression champs mailFixeConfirm/mailPersoConfirm dans UserDTO
- Extraction de validateEmailForUpdate() dans PersonneService
- Refactoring from() dans UserDTOFactoryImpl (~130→~35 lignes, 9 méthodes extraites)
- Ajout dépendance spring-boot-starter-mail
- Ajout tests : EmailVerificationServiceTest (8 tests), 12 cas spéciaux UserDTOFactoryImpl,
  verify-email + avatar dans PersonneRestControllerTest
- Les utilisateurs authentifiés via Samba NT (groupe LDAP) peuvent désormais
  changer leur mot de passe même si leur profil est bloqué par isConnectOk()
- Le champ ntPass (transient) est calculé dans evalPublic() à partir de la
  même regex regex-groups-with-samba-nt que la génération des hashs NT/LM
- noOldPass : les comptes CVDL sans mot de passe stocké en base (authentification
  Samba NT uniquement) n'ont pas besoin de fournir l'ancien mot de passe
- Correction NPE dans validateRequest() quand oldPass est null et noOldPass=true
- Tests : validation du flag ntPass (CVDL/GIP/match/miss), bouclage des profils
  bloqués débloqués par ntPass, isNoOldPass (CVDL+ntPass+null/ACTIVE/stored),
  validateRequest avec noOldPass, changement réussi sans oldPass
… le front

- Le champ ntPass n'est plus exposé dans UserDTO (response JSON)
- ntPass reste interne à PersonneDTO pour le calcul de mdp et noOldPass
- Génération d'un code à 6 chiffres (SecureRandom) au lieu d'un Base64
- Envoi du code directement dans l'email sans URL
- Nouvel endpoint POST /verify-email avec body JSON au lieu de GET
- Ajout du DTO VerifyEmailRequestDTO avec validation @pattern("\d{6}")
- Réponse JSON (200/400) au lieu d'une redirection 302
- Suppression de la config base-url (devenu inutile)
- Hash SHA-256 du code avant stockage en base
- Réduction de l'expiration à 1h
- Supprime avatarUrl (doublon de avatar, meme source APersonne.photo)
- Supprime listMenu et la methode listMenuTab (plus utile)
…, NON_PROF_COL_LOCAL, apprentis)

- Ajoute EnumObjectClass avec 6 valeurs LDAP et méthodes de détection
- Corrige NON_PROF_COL_LOCAL: CVDL uniquement si non-local, PERSONNEL sinon
- Corrige isMaitre: détection via objectClass avant résolution des relations
- Corrige apprentis.contact: résolution du maitreId via DB (retrievePersonnebyUid)
- identifiant retourne toujours le login (même si externe)
- Ajoute application.yml et application-test.yml
- Ajoute EnumObjectClassTest
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