Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Update is done. Welcome to Gitlab 14.10.2!
Open sidebar
Coding Dojo
reactive-programming
Commits
b0cbdee0
Commit
b0cbdee0
authored
Dec 10, 2018
by
Julien SADAOUI
Browse files
fix: gradle wrapper
parent
2b8a6670
Changes
4
Hide whitespace changes
Inline
Side-by-side
.gitignore
View file @
b0cbdee0
######################
# Intellij
######################
.idea/
*.iml
*.iws
*.ipr
*.ids
*.orig
classes/
out/
######################
# Gradle
######################
.gradle/
gradle/
out/
\ No newline at end of file
build/
######################
# Windows
######################
# Windows image file caches
Thumbs.db
# Folder config file
Desktop.ini
######################
# Mac OSX
######################
.DS_Store
.svn
# Thumbnails
._*
######################
# Gradle Wrapper
######################
!gradle/wrapper/gradle-wrapper.jar
EXERCICE.txt
deleted
100644 → 0
View file @
2b8a6670
Enoncé : Spring 5 & Reactor
===========================
L'application que nous développons sert à gérer des listes de comptes
- Il y a plusieurs utilisateurs
- Chaque utilisateur peut avoir plusieurs comptes
- Ces comptes peuvent être partagées entre plusieurs utilisateurs
- Chaque compte contient plusieurs transactions
L'application est déjà en partie codée:
Depuis le début, nous avons fait uniquement des traitements avec des appels synchrones. En mode Servlet, un thread
est monopolisé pendant tout le traitement d'une requête HTTP qu'il soit en traitement ou en attente d'entrées/sorties
(accès en base de données, lecture de fichier, appel réseau, etc.)
Maintenant, nous allons utiliser les technologies Spring WebFlux et Reactor pour ajouter et afficher des Todos contenus
dans ces listes avec des traitements aynchrones.
I. Configuration de la sécurité HTTP
------------------------------------
1. Dans la classe "SecurityConfiguration", activez la sécurité pour les applications réactives dans Spring
2. Toujours dans la classe "SecurityConfiguration", ajoutez la gestion des annotations de sécurité
3. Afin de récupérer les informations de l'utilisateur, ajoutez un Bean UserDetailsService.
- Utilisez l'implémentation MongoReactiveUserDetailsService permettant de récupérer l'utilisateur dans la base MongoDB
Vous devez maintenant être capables de vous authentifier dans l'application en mode réactif avec l'un des utilisateurs
créés par le Bean InitialSetupMigration (par exemple: philip@ippon.fr / Pa$$word1)
Partie II : Développement de la liste des comptes
-------------------------------------------------
Nous allons coder les couches Controller et Service permettant d'ajouter, supprimer et lister la liste des Comptes
pour l'utilisateur en cours.
1. Implémentez la méthode "getCurrentUser" de la classe "UserServiceImpl" pour retourner l'utilisateur en cours:
- La classe helper ReactiveSecurityContextHolder fournit le nom de l'utilisateur connecté
2. Implémentez les méthodes de la classe "AccountServiceImpl"
- Ajoutez un nouveau Compte et partagez-la à un utilisateur
- Ajoutez une nouvelle Transaction à un Compte.
- Récupérez la liste des Transactions associées à un Compte
3. Complétez les méthodes de la couche Controller
Partie III : Création d'un test d'intégration
---------------------------------------------
Nous allons maintenant réaliser les tests d'intégration sur le controllers AccountController et TransactionController.
On exploite l'utilitaire WebTestClient pour tester le contrôleur ; l'API permet d'effectuer des traitements en mode asynchrone.
Elle offre en outre toute une panoplie d'outils permettant de vérifier les réponses obtenues.
- Configurez l'utilitaire WebTestClient
- Utilisez WebTestClient pour créer un nouveau Transaction
- Utilisez WebTestClient pour récupérer la liste des Transaction et vérifiez le flux de données avec la classe StepVerifier
\ No newline at end of file
gradle/wrapper/gradle-wrapper.jar
0 → 100644
View file @
b0cbdee0
File added
gradle/wrapper/gradle-wrapper.properties
0 → 100644
View file @
b0cbdee0
distributionBase
=
GRADLE_USER_HOME
distributionPath
=
wrapper/dists
distributionUrl
=
https
\:
//services.gradle.org/distributions/gradle-5.0-bin.zip
zipStoreBase
=
GRADLE_USER_HOME
zipStorePath
=
wrapper/dists
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment