Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/shoucheng3/spring-cloud__spring-cloud-gateway_cve-2022-22947_3-0-6
Сканеры веб-уязвимостейАнализ уязвимостейЭксплуатацияТестирование безопасности APIВеб-безопасностьБезопасность API
GitHubshoucheng3/spring-cloud__spring-cloud-gateway_cve-2022-22947_3-0-6

spring-cloud__spring-cloud-gateway_CVE-2022-22947_3-0-6

Репозиторий Spring Cloud Gateway, демонстрирующий эксплуатацию CVE-2022-22947 для тестирования безопасности API и анализа уязвимостей.

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Репозиторий
1 год назадЕщё не проверено

//// НЕ РЕДАКТИРУЙТЕ ЭТОТ ФАЙЛ. ОН БЫЛ СГЕНЕРИРОВАН. Ручные изменения этого файла будут потеряны при его повторной генерации. Вместо этого редактируйте файлы в каталоге 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 и реализации сквозных функций, таких как: безопасность, мониторинг/метрики и отказоустойчивость.

== Возможности

  • Java 8
  • Spring Framework 5
  • Spring Boot 2
  • Динамическая маршрутизация
  • Сопоставление маршрутов, встроенное в Spring Handler Mapping
  • Сопоставление маршрутов по HTTP-запросу (Path, Method, Header, Host и т.д.)
  • Фильтры, ограниченные соответствующим маршрутом
  • Фильтры могут изменять нижестоящий HTTP-запрос и HTTP-ответ (Add/Remove Headers, Add/Remove Parameters, Rewrite Path, Set Path, Hystrix и т.д.)
  • Управление через API или конфигурацию
  • Поддержка DiscoveryClient от Spring Cloud для настройки маршрутов

== Сборка

:jdkversion: 1.8

=== Основная компиляция и тестирование

Для сборки исходного кода вам потребуется установить JDK {jdkversion}.

Spring Cloud использует Maven для большинства действий, связанных со сборкой, и вы должны быстро приступить к работе, клонировав интересующий вас проект и выполнив


$ ./mvnw install

ПРИМЕЧАНИЕ: Вы также можете установить 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 с помощью следующей команды:

[indent=0]

root@kitploit:~
$ ./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, но до слияния.

  • Используйте соглашения о форматировании кода Spring Framework. Если вы используете Eclipse, вы можете импортировать настройки форматтера, используя файл eclipse-code-formatter.xml из проекта https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/spring-cloud-dependencies-parent/eclipse-code-formatter.xml[Spring Cloud Build]. Если вы используете IntelliJ, вы можете использовать плагин https://plugins.jetbrains.com/plugin/6546[Eclipse Code Formatter Plugin] для импорта того же файла.
  • Убедитесь, что все новые файлы .java содержат простой Javadoc-комментарий класса как минимум с тегом @author, идентифицирующим вас, и, желательно, хотя бы абзац о том, для чего предназначен класс.
  • Добавьте комментарий с заголовком лицензии ASF во все новые файлы .java (скопируйте из существующих файлов в проекте).
  • Добавьте себя как @author в файлы .java, которые вы существенно изменяете (более чем косметические изменения).
  • Добавьте несколько Javadoc и, если вы меняете пространство имён, несколько элементов XSD doc.
  • Несколько модульных тестов также очень помогут — кто-то должен это сделать.
  • Если никто больше не использует вашу ветку, пожалуйста, перебазируйте её на текущий master (или другую целевую ветку в основном проекте).
  • При написании сообщения коммита, пожалуйста, следуйте https://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html[этим соглашениям]. Если вы исправляете существующую проблему, добавьте Fixes gh-XXXX в конце сообщения коммита (где XXXX — номер проблемы).

=== Checkstyle

Spring Cloud Build поставляется с набором правил checkstyle. Вы можете найти их в модуле spring-cloud-build-tools. Наиболее примечательные файлы модуля:

.spring-cloud-build-tools/

└── src    ├── checkstyle    │   └── checkstyle-suppressions.xml <3>    └── main    └── resources    ├── checkstyle-header.txt <2>    └── checkstyle.xml <1>

<1> Правила Checkstyle по умолчанию <2> Настройка заголовка файла <3> Правила подавления по умолчанию

==== Конфигурация Checkstyle

Правила Checkstyle отключены по умолчанию. Чтобы добавить checkstyle в ваш проект, просто определите следующие свойства и плагины.

.pom.xml

true <1> true <2> true <3> <4> io.spring.javaformat spring-javaformat-maven-plugin <5> org.apache.maven.plugins maven-checkstyle-plugin
root@kitploit:~
<reporting>
    <plugins>
        <plugin> <5>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-checkstyle-plugin</artifactId>
        </plugin>
    </plugins>
</reporting>
---- <1> Останавливает сборку при ошибках Checkstyle <2> Останавливает сборку при нарушениях Checkstyle <3> Checkstyle также анализирует тестовые исходники <4> Добавьте плагин Spring Java Format, который переформатирует ваш код для соблюдения большинства правил форматирования Checkstyle <5> Добавьте плагин checkstyle в фазы сборки и отчёта

Если вам нужно подавить некоторые правила (например, длина строки должна быть больше), достаточно определить файл по пути ${project.root}/src/checkstyle/checkstyle-suppressions.xml с вашими подавлениями. Пример:

.projectRoot/src/checkstyle/checkstyle-suppresions.xml

----

Рекомендуется скопировать ${spring-cloud-build.rootFolder}/.editorconfig и ${spring-cloud-build.rootFolder}/.springformat в ваш проект. Таким образом будут применены некоторые правила форматирования по умолчанию. Вы можете сделать это, выполнив этот скрипт:

root@kitploit:~
$ curl https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/.editorconfig -o .editorconfig
$ touch .springformat

=== Настройка IDE

==== IntelliJ IDEA

Для настройки IntelliJ вы должны импортировать наши соглашения по коду, профили инспекций и настроить плагин checkstyle. Следующие файлы можно найти в проекте https://github.com/spring-cloud/spring-cloud-build/tree/master/spring-cloud-build-tools[Spring Cloud Build].

.spring-cloud-build-tools/

└── src    ├── checkstyle    │   └── checkstyle-suppressions.xml <3>    └── main    └── resources    ├── checkstyle-header.txt <2>    ├── checkstyle.xml <1>    └── intellij       ├── Intellij_Project_Defaults.xml <4>       └── Intellij_Spring_Boot_Java_Conventions.xml <5>

<1> Правила Checkstyle по умолчанию <2> Настройка заголовка файла <3> Правила подавления по умолчанию <4> Настройки проекта по умолчанию для IntelliJ, применяющие большинство правил Checkstyle <5> Соглашения о стиле проекта для IntelliJ, применяющие большинство правил Checkstyle

.Стиль кода

image::https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/{spring-cloud-build-branch}/docs/src/main/asciidoc/images/intellij-code-style.png[Стиль кода]

Перейдите в File -> Settings -> Editor -> Code style. Там нажмите на значок рядом с разделом Scheme. Затем выберите значение Import Scheme и выберите опцию Intellij IDEA code style XML. Импортируйте файл spring-cloud-build-tools/src/main/resources/intellij/Intellij_Spring_Boot_Java_Conventions.xml.

.Профили инспекций

image::https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/{spring-cloud-build-branch}/docs/src/main/asciidoc/images/intellij-inspections.png[Стиль кода]

Перейдите в File -> Settings -> Editor -> Inspections. Там нажмите на значок рядом с разделом Profile. Затем нажмите Import Profile и импортируйте файл spring-cloud-build-tools/src/main/resources/intellij/Intellij_Project_Defaults.xml.

.Checkstyle

Чтобы IntelliJ работал с Checkstyle, необходимо установить плагин Checkstyle. Рекомендуется также установить Assertions2Assertj для автоматического преобразования утверждений JUnit.

image::https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/{spring-cloud-build-branch}/docs/src/main/asciidoc/images/intellij-checkstyle.png[Checkstyle]

Перейдите в File -> Settings -> Other settings -> Checkstyle. Там нажмите на значок + в разделе Configuration file. Затем вам нужно указать, откуда брать правила checkstyle. На изображении выше мы выбрали правила из клонированного репозитория Spring Cloud Build. Однако вы можете указать на GitHub-репозиторий Spring Cloud Build (например, для checkstyle.xml: https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/spring-cloud-build-tools/src/main/resources/checkstyle.xml). Нам нужно предоставить следующие переменные:

  • checkstyle.header.file — укажите на файл spring-cloud-build-tools/src/main/resources/checkstyle-header.txt из Spring Cloud Build либо в вашем клонированном репозитории, либо по URL https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/spring-cloud-build-tools/src/main/resources/checkstyle-header.txt.
  • checkstyle.suppressions.file — подавления по умолчанию. Укажите на файл spring-cloud-build-tools/src/checkstyle/checkstyle-suppressions.xml из Spring Cloud Build либо в вашем клонированном репозитории, либо по URL https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/spring-cloud-build-tools/src/checkstyle/checkstyle-suppressions.xml.
  • checkstyle.additional.suppressions.file — эта переменная соответствует подавлениям в вашем локальном проекте. Например, вы работаете над spring-cloud-contract. Тогда укажите на папку project-root/src/checkstyle/checkstyle-suppressions.xml. Пример для : .

ВАЖНО: Не забудьте установить Scan Scope в All sources, так как мы применяем правила checkstyle для производственных и тестовых исходников.

=== Duplicate Finder

Spring Cloud Build включает плагин basepom:duplicate-finder-maven-plugin, который позволяет выявлять дублирующиеся и конфликтующие классы и ресурсы в classpath Java.

==== Конфигурация Duplicate Finder

Duplicate finder включён по умолчанию и будет выполняться на фазе verify вашей сборки Maven, но он будет работать в вашем проекте только если вы добавите duplicate-finder-maven-plugin в раздел build файла pom.xml проекта.

.pom.xml [source,xml]

org.basepom.maven duplicate-finder-maven-plugin ----

Для других свойств мы установили значения по умолчанию, как указано в https://github.com/basepom/duplicate-finder-maven-plugin/wiki[документации плагина].

Вы можете легко переопределить их, установив значение выбранного свойства с префиксом duplicate-finder-maven-plugin. Например, установите duplicate-finder-maven-plugin.skip в true, чтобы пропустить проверку дубликатов в вашей сборке.

Если вам нужно добавить ignoredClassPatterns или ignoredResourcePatterns в вашу настройку, обязательно добавьте их в раздел конфигурации плагина вашего проекта:

[source,xml]

org.basepom.maven duplicate-finder-maven-plugin org.joda.time.base.BaseDateTime .*module-info changelog.txt
Скачать инструмент
spring-cloud-contract
/home/username/spring-cloud-contract/src/checkstyle/checkstyle-suppressions.xml