Rétrospective du framework Spring
- Principe de conception d'une application d'entreprise.
- Rappels sur le framework Spring et sur Spring Boot.
- Les extensions au framework principal, parmi lesquelles : Spring Data, Spring Security, Spring Batch.
- Paramétrer la sécurité pour une application web réactive.
L'accession aux données avec Spring Data.
- La configuration de l'accès à la source de données.
- La définition d'un repository (JPA, Elasticsearch).
- Les repositories réactifs pour un accès aux données non bloquant.
- L'écriture de requêtes personnalisées : les requêtes dérivées, l'annotation @Query.
- La gestion des transactions.
- L'exposition des repositories avec Spring Data REST, présentation de HATEOAS.
Travaux pratiques
Écriture d'une couche d'accès aux données avec Spring Data JPA, exposition des repositories en REST HATEOAS avec Spring Data Rest.
Comment sécuriser l'application avec Spring Security
- La définition d'un référentiel d'utilisateurs.
- Les différents modes d'authentification : basic, par formulaire, par jeton (bearer token).
- L'utilisation de JWT : définition des claims, signature et vérification avec un système de clés asymétriques.
- La spécification OpenID Connect, le couplage entre Spring Security et un serveur OpenID Connect (Keycloak).
- La sécurisation des routes, des méthodes, des vues.
- La protection contre les attaques CSRF.
- La configuration de la sécurité pour une application web réactive.
Travaux pratiques
Sécurisation d'une API REST Spring MVC avec un serveur OpenID Connect et JWT, sécurisation d'une IHM Spring MVC.
Le traitement par lot avec Spring Batch
- La définition d'un job : l'exécution parallèle, conditionnelle ou séquentielle de step.
- Les différents types de step : tasklet step, chunk oriented step.
- Les interfaces ItemReader, ItemProcessor et ItemWriter.
- Les stratégies de réessai.
- L'exécution et la supervision d'un job : lancement, arrêt, reprise après incident, accès aux statistiques.
- Le test d'un job avec Junit.
Travaux pratiques
Extraction des données d'une base SQL et export vers des fichiers textes.