
# Dépôt Spring Cloud Gateway démontrant l'exploitation de CVE-2022-22947 pour les tests de sécurité des API et l'analyse de vulnérabilités.
//// NE PAS MODIFIER CE FICHIER. IL A ÉTÉ GÉNÉRÉ. Les modifications manuelles apportées à ce fichier seront perdues lors de sa prochaine génération. Modifiez plutôt les fichiers du répertoire src/main/asciidoc/. ////
image::https://circleci.com/gh/spring-cloud/spring-cloud-gateway/tree/master.svg?style=svg["CircleCI", link="https://circleci.com/gh/spring-cloud/spring-cloud-gateway/tree/master"] image::https://codecov.io/gh/spring-cloud/spring-cloud-gateway/branch/master/graph/badge.svg["Codecov", link="https://codecov.io/gh/spring-cloud/spring-cloud-gateway/branch/master"] image::https://api.codacy.com/project/badge/Grade/a6885a06921e4f72a0df0b7aabd6d118["Codacy code quality", link="https://www.codacy.com/app/spring-cloud/spring-cloud-gateway?utm_source=github.com&utm_medium=referral&utm_content=spring-cloud/spring-cloud-gateway&utm_campaign=Badge_Grade"]
Ce projet fournit une passerelle API (API Gateway) construite sur l’écosystème Spring, notamment : Spring 5, Spring Boot 2 et Project Reactor. Spring Cloud Gateway vise à fournir un moyen simple, mais efficace, d’acheminer vers les API et de leur apporter des préoccupations transversales telles que : la sécurité, la supervision/les métriques et la résilience.
== Fonctionnalités
DiscoveryClient de Spring Cloud pour configurer les itinéraires== Construction
:jdkversion: 1.8
=== Compilation et test de base
Pour construire le code source, vous devrez installer le JDK {jdkversion}.
Spring Cloud utilise Maven pour la plupart des activités liées à la construction, et vous devriez pouvoir démarrer assez rapidement en clonant le projet qui vous intéresse et en tapant :
NOTE: Vous pouvez également installer Maven (>=3.3.3) vous-même et exécuter la commande mvn
à la place de ./mvnw dans les exemples ci-dessous. Si vous faites cela, vous devrez
peut-être aussi ajouter -P spring si vos paramètres Maven locaux ne contiennent pas
de déclarations de dépôts pour les artefacts de pré-version de Spring.
NOTE: Sachez que vous devrez peut-être augmenter la quantité de mémoire
disponible pour Maven en définissant une variable d’environnement MAVEN_OPTS avec
une valeur comme -Xmx512m -XX:MaxPermSize=128m. Nous essayons de couvrir cela dans
la configuration .mvn, donc si vous constatez que vous devez le faire pour qu’une
construction aboutisse, veuillez créer un ticket pour que ces paramètres soient ajoutés
au contrôle de source.
Les projets qui nécessitent un middleware (c’est-à-dire Redis) pour les tests exigent généralement qu’une instance locale de Docker soit installée et exécutée.
=== Documentation
Le module spring-cloud-build possède un profil « docs » ; si vous l’activez,
il tentera de construire les sources asciidoc de src/main/asciidoc. Dans le cadre de ce
processus, il cherchera un README.adoc et le traitera en chargeant toutes les inclusions,
mais sans l’analyser ni le restituer, simplement en le copiant vers ${main.basedir}
(par défaut ${basedir}, c’est-à-dire la racine du projet). S’il y a des modifications
dans le README, elles apparaîtront après une construction Maven comme un fichier modifié
au bon endroit. Il vous suffit de le valider et de pousser la modification.
=== Travailler avec le code Si vous n’avez pas de préférence d’IDE, nous vous recommandons d’utiliser https://www.springsource.com/developer/sts[Spring Tools Suite] ou https://eclipse.org[Eclipse] lorsque vous travaillez avec le code. Nous utilisons le plugin eclipse https://eclipse.org/m2e/[m2eclipse] pour le support Maven. Les autres IDE et outils devraient également fonctionner sans problème tant qu’ils utilisent Maven 3.3.3 ou une version supérieure.
==== Activer le profil Maven Spring Les projets Spring Cloud nécessitent l’activation du profil Maven « spring » pour résoudre les dépôts de jalons (milestones) et de snapshots Spring. Utilisez l’IDE de votre choix pour définir ce profil comme actif, sinon vous pourriez rencontrer des erreurs de construction.
==== Importation dans Eclipse avec m2eclipse Nous recommandons le plugin eclipse https://eclipse.org/m2e/[m2eclipse] lorsque vous travaillez avec Eclipse. Si m2eclipse n’est pas déjà installé, il est disponible sur l’« eclipse marketplace ».
NOTE: Les anciennes versions de m2e ne prennent pas en charge Maven 3.3. Une fois les
projets importés dans Eclipse, vous devrez donc également indiquer à
m2eclipse d’utiliser le bon profil pour les projets. Si vous voyez de nombreuses
erreurs liées aux POM dans les projets, vérifiez que votre installation est à jour.
Si vous ne pouvez pas mettre à niveau m2e, ajoutez le profil « spring » à votre settings.xml.
Vous pouvez également copier les paramètres de dépôt du profil « spring » du pom parent
dans votre settings.xml.
==== Importation dans Eclipse sans m2eclipse Si vous préférez ne pas utiliser m2eclipse, vous pouvez générer les métadonnées de projet Eclipse à l’aide de la commande suivante :
$ ./mvnw eclipse:eclipse
Les projets Eclipse générés peuvent être importés en sélectionnant import existing projects
dans le menu file.
== Contribuer
:spring-cloud-build-branch: master
Spring Cloud est publié sous la licence non restrictive Apache 2.0, et suit un processus de développement Github très standard, en utilisant le traqueur Github pour les problèmes et la fusion des pull requests dans master. Si vous souhaitez contribuer, même quelque chose de trivial, n’hésitez pas, mais suivez les directives ci-dessous.
=== Signer le contrat de licence du contributeur Avant d’accepter un correctif ou une pull request non triviale, nous aurons besoin que vous signiez le https://cla.pivotal.io/sign/spring[Contrat de licence du contributeur]. La signature du contrat du contributeur n’accorde à personne des droits de validation sur le dépôt principal, mais elle signifie que nous pouvons accepter vos contributions, et vous obtiendrez un crédit d’auteur si nous le faisons. Les contributeurs actifs peuvent être invités à rejoindre l’équipe principale et à recevoir la possibilité de fusionner des pull requests.
=== Code de conduite Ce projet adhère au https://github.com/spring-cloud/spring-cloud-build/blob/master/docs/src/main/asciidoc/code-of-conduct.adoc[code de conduite] du Contributor Covenant. En participant, vous êtes tenu de respecter ce code. Veuillez signaler tout comportement inacceptable à [email protected].
=== Conventions de code et maintenance Aucun de ces points n’est essentiel pour une pull request, mais ils aideront tous. Ils peuvent également être ajoutés après la pull request d’origine, mais avant une fusion.