
Репозиторий Spring Cloud Gateway, демонстрирующий эксплуатацию CVE-2022-22947 для тестирования безопасности API и анализа уязвимостей.
//// НЕ РЕДАКТИРУЙТЕ ЭТОТ ФАЙЛ. ОН БЫЛ СГЕНЕРИРОВАН. Ручные изменения этого файла будут потеряны при его повторной генерации. Вместо этого редактируйте файлы в каталоге 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"]
Этот проект предоставляет API-шлюз, построенный на основе экосистемы Spring, включая: Spring 5, Spring Boot 2 и Project Reactor. Spring Cloud Gateway призван предоставить простой, но эффективный способ маршрутизации к API и реализации сквозных функций, таких как: безопасность, мониторинг/метрики и отказоустойчивость.
== Возможности
DiscoveryClient от Spring Cloud для настройки маршрутов== Сборка
:jdkversion: 1.8
=== Основная компиляция и тестирование
Для сборки исходного кода вам потребуется установить JDK {jdkversion}.
Spring Cloud использует Maven для большинства действий, связанных со сборкой, и вы должны быстро приступить к работе, клонировав интересующий вас проект и выполнив
ПРИМЕЧАНИЕ: Вы также можете установить Maven (>=3.3.3) самостоятельно и запускать команду mvn
вместо ./mvnw в приведённых ниже примерах. Если вы это сделаете, вам также
может потребоваться добавить -P spring, если ваши локальные настройки Maven не
содержат объявлений репозиториев для предварительных артефактов Spring.
ПРИМЕЧАНИЕ: Имейте в виду, что вам может потребоваться увеличить объём памяти,
доступной для Maven, установив переменную окружения MAVEN_OPTS со
значением, например, -Xmx512m -XX:MaxPermSize=128m. Мы стараемся учесть это в
конфигурации .mvn, поэтому если вы обнаружите, что вам приходится делать это для успешной сборки,
пожалуйста, создайте тикет, чтобы эти настройки были добавлены в систему контроля версий.
Проекты, требующие промежуточного ПО (например, Redis) для тестирования, как правило, требуют, чтобы локальный экземпляр Docker был установлен и запущен.
=== Документация
Модуль spring-cloud-build имеет профиль "docs", и если вы его
включите, он попытается собрать asciidoc-исходники из
src/main/asciidoc. В рамках этого процесса он будет искать
README.adoc и обрабатывать его, загружая все включения, но не
разбирая и не отображая его, а просто копируя в ${main.basedir}
(по умолчанию ${basedir}, т.е. корень проекта). Если в README
произойдут какие-либо изменения, они отобразятся после сборки Maven как
изменённый файл в нужном месте. Просто зафиксируйте изменения и отправьте их.
=== Работа с кодом Если у вас нет предпочтений по IDE, мы рекомендуем использовать https://www.springsource.com/developer/sts[Spring Tools Suite] или https://eclipse.org[Eclipse] при работе с кодом. Мы используем плагин https://eclipse.org/m2e/[m2eclipse] для поддержки Maven. Другие IDE и инструменты также должны работать без проблем, если они используют Maven 3.3.3 или новее.
==== Активация профиля Spring Maven Проекты Spring Cloud требуют активации профиля Maven 'spring' для разрешения репозиториев milestone и snapshot Spring. Используйте предпочитаемую IDE для установки этого профиля как активного, иначе могут возникнуть ошибки сборки.
==== Импорт в Eclipse с помощью m2eclipse Мы рекомендуем плагин https://eclipse.org/m2e/[m2eclipse] при работе с Eclipse. Если у вас ещё не установлен m2eclipse, его можно найти в "Eclipse Marketplace".
ПРИМЕЧАНИЕ: Старые версии m2e не поддерживают Maven 3.3, поэтому после
импорта проектов в Eclipse вам также потребуется указать
m2eclipse использовать правильный профиль для проектов. Если вы
видите много различных ошибок, связанных с POM в проектах, проверьте,
что у вас установлена последняя версия. Если вы не можете обновить m2e,
добавьте профиль "spring" в ваш settings.xml. В качестве альтернативы вы можете
скопировать настройки репозиториев из профиля "spring" родительского POM
в ваш settings.xml.
==== Импорт в Eclipse без m2eclipse Если вы предпочитаете не использовать m2eclipse, вы можете сгенерировать метаданные проекта Eclipse с помощью следующей команды:
$ ./mvnw eclipse:eclipse
Сгенерированные проекты Eclipse можно импортировать, выбрав import existing projects
из меню file.
== Участие в разработке
:spring-cloud-build-branch: master
Spring Cloud выпускается под неограничивающей лицензией Apache 2.0 и следует стандартному процессу разработки Github, используя Github Tracker для отслеживания проблем и слияния pull request в master. Если вы хотите внести даже самый тривиальный вклад, не стесняйтесь, но следуйте приведённым ниже рекомендациям.
=== Подписание лицензионного соглашения с участником Прежде чем мы примем нетривиальный патч или pull request, вам потребуется подписать https://cla.pivotal.io/sign/spring[Contributor License Agreement]. Подписание соглашения участника не предоставляет никому прав на коммиты в основной репозиторий, но означает, что мы можем принять ваши изменения, и вы получите авторский кредит, если мы это сделаем. Активным участникам может быть предложено присоединиться к основной команде и получить возможность объединять pull request.
=== Кодекс поведения Этот проект придерживается https://github.com/spring-cloud/spring-cloud-build/blob/master/docs/src/main/asciidoc/code-of-conduct.adoc[кодекса поведения] Contributor Covenant. Участвуя, вы обязуетесь соблюдать этот кодекс. Пожалуйста, сообщайте о неприемлемом поведении по адресу [email protected].
=== Соглашения о коде и поддержание порядка Ни одно из этих требований не является обязательным для pull request, но все они помогут. Они также могут быть добавлены после первоначального pull request, но до слияния.