
Repository Spring Cloud Gateway che dimostra lo sfruttamento di CVE-2022-22947 per test di sicurezza API e analisi delle vulnerabilità.
//// NON MODIFICARE QUESTO FILE. È STATO GENERATO. Le modifiche manuali a questo file andranno perse quando verrà rigenerato. Modifica invece i file nella directory 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"]
Questo progetto fornisce un API Gateway costruito sopra l'Ecosystem Spring, includendo: Spring 5, Spring Boot 2 e Project Reactor. Spring Cloud Gateway mira a fornire un modo semplice ed efficace per instradare verso le API e offrire loro preoccupazioni trasversali come: sicurezza, monitoraggio/metriche e resilienza.
== Caratteristiche
DiscoveryClient per configurare le Route== Compilazione
:jdkversion: 1.8
=== Compilazione e test di base
Per compilare il sorgente dovrai installare JDK {jdkversion}.
Spring Cloud utilizza Maven per la maggior parte delle attività di compilazione, e dovresti riuscire a partire abbastanza velocemente clonando il progetto che ti interessa e digitando
NOTA: Puoi anche installare Maven (>=3.3.3) da solo ed eseguire il comando mvn
al posto di ./mvnw negli esempi seguenti. Se lo fai, potresti
anche dover aggiungere -P spring se le impostazioni locali di Maven non
contengono dichiarazioni di repository per gli artefatti pre-release di spring.
NOTA: Tieni presente che potresti dover aumentare la quantità di memoria
disponibile per Maven impostando una variabile d'ambiente MAVEN_OPTS con
un valore come -Xmx512m -XX:MaxPermSize=128m. Cerchiamo di coprire questo aspetto nella
configurazione .mvn, quindi se scopri di doverlo fare per far
riuscire una compilazione, per favore apri un ticket per aggiungere le impostazioni al
controllo del codice sorgente.
I progetti che richiedono middleware (ad es. Redis) per i test generalmente richiedono che un'istanza locale di Docker sia installata e in esecuzione.
=== Documentazione
Il modulo spring-cloud-build ha un profilo "docs", e se lo attivi
cercherà di compilare i sorgenti asciidoc da
src/main/asciidoc. Come parte di questo processo, cercherà un
README.adoc e lo elaborerà caricando tutti gli include, ma non
analizzandolo o renderizzandolo, copiandolo semplicemente in ${main.basedir}
(predefinito a ${basedir}, cioè la radice del progetto). Se ci sono
modifiche nel README, appariranno dopo una compilazione Maven come
un file modificato nel posto corretto. Basta eseguire il commit e inviare la modifica.
=== Lavorare con il codice Se non hai una preferenza per un IDE, ti consigliamo di usare https://www.springsource.com/developer/sts[Spring Tools Suite] o https://eclipse.org[Eclipse] quando lavori con il codice. Usiamo il plugin eclipse https://eclipse.org/m2e/[m2eclipse] per il supporto Maven. Altri IDE e strumenti dovrebbero funzionare senza problemi purché utilizzino Maven 3.3.3 o superiore.
==== Attivare il profilo Maven Spring I progetti Spring Cloud richiedono che il profilo Maven 'spring' sia attivato per risolvere i repository milestone e snapshot di spring. Usa il tuo IDE preferito per impostare questo profilo come attivo, altrimenti potresti riscontrare errori di compilazione.
==== Importare in Eclipse con m2eclipse Raccomandiamo il plugin eclipse https://eclipse.org/m2e/[m2eclipse] quando lavori con Eclipse. Se non hai già installato m2eclipse, è disponibile nel "mercato Eclipse".
NOTA: Le versioni precedenti di m2e non supportano Maven 3.3, quindi una volta che i
progetti vengono importati in Eclipse, dovrai anche dire a
m2eclipse di utilizzare il profilo corretto per i progetti. Se vedi
molti errori diversi relativi ai POM nei progetti, controlla
di avere un'installazione aggiornata. Se non puoi aggiornare m2e,
aggiungi il profilo "spring" al tuo settings.xml. In alternativa puoi
copiare le impostazioni del repository dal profilo "spring" del POM genitore
nel tuo settings.xml.
==== Importare in Eclipse senza m2eclipse Se preferisci non usare m2eclipse, puoi generare i metadati del progetto Eclipse usando il seguente comando:
$ ./mvnw eclipse:eclipse
I progetti Eclipse generati possono essere importati selezionando import existing projects
dal menu file.
== Contribuire
:spring-cloud-build-branch: master
Spring Cloud è rilasciato sotto la licenza Apache 2.0 non restrittiva, e segue un processo di sviluppo Github molto standard, usando il tracker Github per i problemi e unendo le pull request in master. Se vuoi contribuire anche con qualcosa di banale, non esitare, ma segui le linee guida seguenti.
=== Firma il Contributor License Agreement Prima di accettare una patch non banale o una pull request, avremo bisogno che tu firmi il https://cla.pivotal.io/sign/spring[Contributor License Agreement]. Firmare il contratto del contributore non concede a nessuno diritti di commit sul repository principale, ma significa che possiamo accettare i tuoi contributi, e riceverai un credito d'autore se lo faremo. Ai contributori attivi potrebbe essere chiesto di unirsi al team principale, e ricevere la possibilità di unire le pull request.
=== Codice di condotta Questo progetto aderisce al codice di condotta del Contributor Covenant. Partecipando, ti impegni a rispettare questo codice. Segnala comportamenti inaccettabili a [email protected].
=== Convenzioni di codice e manutenzione della casa Nessuna di queste è essenziale per una pull request, ma tutte aiuteranno. Possono anche essere aggiunte dopo la pull request originale ma prima di un merge.