|
D-Documentation |
Chapitre Suivant |
|||
---|---|---|---|---|---|
Projet |
API Rest - GraphQL |
Authentification - Habilitation |
CORS et CSRF |
||
|
CORS - Cross-Origin Resource Sharing
Les problématiques de Cross-Origin Resource Sharing sont en '*' côté serveur.
Donc tous les URLs clients, pour toutes les méthodes (GET, POST, PUT, ...) peuvent appeler le serveur.
Sur la branche master (à partir de la version 1.2.4 et les suivantes) le CORS a été complété pour :
- Fonctionner sur tous les navigateurs
- Exposer le token 'Authorization' afin qu'Angular puisse le récupérer simplement
Pour les curieux, la configuration du CORS est portée par la classe stone.lunchtime.spring.security.AbstractSpringSecurityConfiguration et sa méthode (son @Bean) corsConfigurationSource.
CSRF - Cross-Site Request Forgery
La problématique du Cross-Site Request Forgery est désactivée par défaut.
Vous pouvez la réactiver en ajoutant le profile csrflors du lancement de l'application.
Exemple : java -jar -Dspring.profiles.active=h2,csrf stone.lunchtime.war
Attention, si vous l'activez :
- il sera généré automatiquement pour chaque call de l'API (sauf /login et /logout). Il sera disponible dans le cookie sous la clef XSRF-TOKEN (il sera non sécurisé, il faudra le resécuriser avant de le renvoyer au serveur)
- vous pouvez aussi le récupérer à tout moment en appelant l'URL /csrf en GET. Dans cette approche, il reste sécurisé, vous avez simplement à le renvoyer au serveur
Si activé, le CSRF devra être renvoyé au serveur pour chaque requête PUT, POST, DELETE (toutes sauf GET)
- en tant que parameter de la request sous la clef _csrf
- ET
- en tant que parameter du header sous la clef X-XSRF-TOKEN
Vous trouverez un exemple dans le calls postman (dossier postman du projet).
|
D-Documentation |
Chapitre Suivant |
|||
---|---|---|---|---|---|
Projet |
API Rest - GraphQL |
Authentification - Habilitation |
CORS et CSRF |
||
|