Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
spring-cloud__spring-cloud-gateway_CVE-2022-22947_3-0-6 — Spring Cloud Gateway 仓库,演示 CVE-2022-22947 的利用,用于 API 安全测试和漏洞分析。 | Kitploit
工具/GitHubGitHub/shoucheng3/spring-cloud__spring-cloud-gateway_cve-2022-22947_3-0-6
Web漏洞扫描器漏洞分析漏洞利用API安全测试Web安全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 安全测试和漏洞分析。

查看仓库
71年前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

//// 请勿编辑此文件。此文件是自动生成的。 手动修改此文件将在再次生成时丢失。 请改为编辑 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"]

该项目提供构建在 Spring 生态系统之上的 API 网关,包括:Spring 5、Spring Boot 2 和 Project Reactor。Spring Cloud Gateway 旨在提供一种简单而有效的方式来路由到 API,并为其提供横切关注点,例如:安全性、监控/指标和弹性。

== 功能

  • Java 8
  • Spring Framework 5
  • Spring Boot 2
  • 动态路由
  • 路由匹配内置于 Spring Handler Mapping
  • 基于 HTTP 请求的路由匹配(路径、方法、请求头、主机等...)
  • 过滤器作用于匹配的路由
  • 过滤器可以修改下游 HTTP 请求和 HTTP 响应(添加/删除请求头、添加/删除参数、重写路径、设置路径、Hystrix 等...)
  • API 或配置驱动
  • 支持使用 Spring Cloud DiscoveryClient 配置路由

== 构建

:jdkversion: 1.8

=== 基本编译与测试

要构建源码,您需要安装 JDK {jdkversion}。

Spring Cloud 使用 Maven 进行大多数与构建相关的活动,您只需克隆您感兴趣的项目并输入以下命令,即可快速上手:


true <1> true <2> true <3> <4> io.spring.javaformat spring-javaformat-maven-plugin <5> org.apache.maven.plugins maven-checkstyle-plugin ---- <1> 在 Checkstyle 错误时使构建失败 <2> 在 Checkstyle 违规时使构建失败 <3> Checkstyle 也分析测试源码 <4> 添加 Spring Java Format 插件,该插件将重新格式化您的代码,以通过大部分 Checkstyle 格式规则 <5> 将 checkstyle 插件添加到您的构建和报告阶段 ---- org.basepom.maven duplicate-finder-maven-plugin ---- org.basepom.maven duplicate-finder-maven-plugin org.joda.time.base.BaseDateTime .*module-info changelog.txt

$ ./mvnw install

注意:您也可以自行安装 Maven(>=3.3.3)并在下面的示例中运行 mvn 命令来代替 ./mvnw。如果您的本地 Maven 设置不包含 spring 预发布工件的仓库声明,那么您可能还需要添加 -P spring。

注意:请注意,您可能需要通过设置 MAVEN_OPTS 环境变量(例如 -Xmx512m -XX:MaxPermSize=128m)来增加 Maven 可用的内存。我们已尝试在 .mvn 配置中覆盖这一点,因此如果您发现必须手动执行此操作才能使构建成功,请提交工单,以便将该设置添加到源代码控制中。

需要中间件(即 Redis)进行测试的项目通常要求本地安装并运行 Docker 实例。

=== 文档

spring-cloud-build 模块有一个 “docs” profile,如果您启用它,它将尝试从 src/main/asciidoc 构建 asciidoc 源文件。作为该过程的一部分,它会查找 README.adoc 并通过加载所有 include 来处理它,但不会解析或渲染它,只是将其复制到 ${main.basedir}(默认为 ${basedir},即项目根目录)。如果 README 有任何更改,它将在 Maven 构建后作为已修改文件出现在正确的位置。只需提交并推送该更改即可。

=== 代码开发 如果您没有偏好的 IDE,我们建议您在使用代码时使用 https://www.springsource.com/developer/sts[Spring Tools Suite] 或 https://eclipse.org[Eclipse]。我们使用 https://eclipse.org/m2e/[m2eclipse] Eclipse 插件来提供 Maven 支持。只要使用 Maven 3.3.3 或更高版本,其他 IDE 和工具也应该可以正常工作。

==== 激活 Spring Maven profile Spring Cloud 项目需要激活 “spring” Maven profile 以解析 spring 里程碑版和快照版仓库。请使用您偏好的 IDE 将此 profile 设为激活状态,否则您可能会遇到构建错误。

==== 使用 m2eclipse 导入到 Eclipse 在使用 Eclipse 时,我们推荐使用 https://eclipse.org/m2e/[m2eclipse] Eclipse 插件。如果您尚未安装 m2eclipse,可以从 “Eclipse Marketplace” 获取。

注意:旧版本的 m2e 不支持 Maven 3.3,因此项目导入 Eclipse 后,您还需要告诉 m2eclipse 为项目使用正确的 profile。如果您看到与项目中 POM 相关的许多不同错误,请检查您的安装是否为最新版本。如果您无法升级 m2e,请将 “spring” profile 添加到您的 settings.xml 中。或者,您可以将父 pom 的 “spring” profile 中的仓库设置复制到您的 settings.xml 中。

==== 不使用 m2eclipse 导入到 Eclipse 如果您不想使用 m2eclipse,可以使用以下命令生成 Eclipse 项目元数据:

[indent=0]

root@kitploit:~
$ ./mvnw eclipse:eclipse

生成的 Eclipse 项目可以通过从 file 菜单中选择 import existing projects 来导入。

== 贡献

:spring-cloud-build-branch: master

Spring Cloud 在非限制性 Apache 2.0 许可下发布,并遵循非常标准的 Github 开发流程,使用 Github tracker 跟踪问题并将拉取请求合并到 master。如果您想贡献哪怕微不足道的内容,也请不要犹豫,但请遵循以下指南。

=== 签署贡献者许可协议 在我们接受重要的补丁或拉取请求之前,我们需要您签署 https://cla.pivotal.io/sign/spring[贡献者许可协议]。签署贡献者协议并不会授予任何人主仓库的提交权限,但这意味着我们可以接受您的贡献,并且如果我们接受,您将获得作者署名。活跃的贡献者可能会被邀请加入核心团队,并获得合并拉取请求的能力。

=== 行为准则 本项目遵守贡献者公约 https://github.com/spring-cloud/spring-cloud-build/blob/master/docs/src/main/asciidoc/code-of-conduct.adoc[行为准则]。参与即表示您应维护该准则。请将不可接受的行为报告至 [email protected]。

=== 代码约定与规范 这些都不是拉取请求的必要条件,但它们都会有所帮助。它们也可以在原拉取请求之后、合并之前添加。

  • 使用 Spring Framework 代码格式约定。如果您使用 Eclipse,可以从 https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/spring-cloud-dependencies-parent/eclipse-code-formatter.xml[Spring Cloud Build] 项目导入 eclipse-code-formatter.xml 文件中的格式化设置。如果使用 IntelliJ,您可以使用 https://plugins.jetbrains.com/plugin/6546[Eclipse Code Formatter 插件] 导入同一文件。
  • 确保所有新的 .java 文件都有一个简单的 Javadoc 类注释,其中至少包含一个标识您的 @author 标签,并且最好至少有一段说明该类的用途。
  • 为所有新的 .java 文件添加 ASF 许可证头注释(从项目中的现有文件复制)。
  • 在您进行实质性修改(不仅仅是外观上的更改)的 .java 文件中,将您自己添加为 @author。
  • 添加一些 Javadoc,如果您更改了命名空间,还要添加一些 XSD 文档元素。
  • 一些单元测试也会大有帮助——总得有人来做。
  • 如果没有其他人使用您的分支,请将其变基(rebase)到当前的 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

root@kitploit:~
<reporting>
    <plugins>
        <plugin> <5>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-checkstyle-plugin</artifactId>
        </plugin>
    </plugins>
</reporting>

如果您需要抑制某些规则(例如行长度需要更长),那么您只需在 ${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,您应该导入我们的编码约定、检查配置(inspection profiles)并设置 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[Code style]

转到 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 文件。

.检查配置(Inspection profiles)

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

转到 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 仓库中获取规则的。不过,您也可以指向 Spring Cloud Build 的 GitHub 仓库(例如对于 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 的 spring-cloud-build-tools/src/main/resources/checkstyle-header.txt 文件,该文件位于您克隆的仓库中,或通过 https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/spring-cloud-build-tools/src/main/resources/checkstyle-header.txt URL 获取。
  • checkstyle.suppressions.file - 默认抑制规则。请将其指向 Spring Cloud Build 的 spring-cloud-build-tools/src/checkstyle/checkstyle-suppressions.xml 文件,该文件位于您克隆的仓库中,或通过 https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/spring-cloud-build-tools/src/checkstyle/checkstyle-suppressions.xml URL 获取。
  • checkstyle.additional.suppressions.file - 此变量对应于您本地项目中的抑制规则。例如,您正在开发 spring-cloud-contract。然后将其指向 project-root/src/checkstyle/checkstyle-suppressions.xml 文件夹。对于 spring-cloud-contract,示例为:/home/username/spring-cloud-contract/src/checkstyle/checkstyle-suppressions.xml。

重要:请记住将 Scan Scope 设置为 All sources,因为我们将 checkstyle 规则应用于生产源码和测试源码。

=== Duplicate Finder

Spring Cloud Build 附带 basepom:duplicate-finder-maven-plugin,它能够标记 Java 类路径上重复和冲突的类及资源。

==== Duplicate Finder 配置

Duplicate finder 默认是启用的,并将在您 Maven 构建的 verify 阶段运行,但只有当您将 duplicate-finder-maven-plugin 添加到项目 pom.xml 的 build 部分时,它才会在您的项目中生效。

.pom.xml [source,xml]

对于其他属性,我们已按照 https://github.com/basepom/duplicate-finder-maven-plugin/wiki[插件文档] 中列出的设置了默认值。

您可以轻松地覆盖它们,只需设置以 duplicate-finder-maven-plugin 为前缀的所选属性的值。例如,将 duplicate-finder-maven-plugin.skip 设置为 true 即可在构建中跳过重复项检查。

如果您需要在设置中添加 ignoredClassPatterns 或 ignoredResourcePatterns,请确保将它们添加到项目的插件配置部分:

[source,xml]


下载工具