Skip to content
KitploitKITPLOIT
ツールブログ
Log in
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
spring-cloud__spring-cloud-config_CVE-2020-5405_2-1-6-RELEASE — 分散システム向け集中構成サーバー。HTTP API、プロパティの暗号化/復号化、およびGit、Vault、JDBC、ローカルファイルシステムバックエンドをサポート。 | Kitploit
ツール/GitHubGitHub/shoucheng3/spring-cloud__spring-cloud-config_cve-2020-5405_2-1-6-release
認証と認可暗号化/復号化ツール構成監査クラウドセキュリティDevSecOpsAPIセキュリティ
GitHubshoucheng3/spring-cloud__spring-cloud-config_cve-2020-5405_2-1-6-release

spring-cloud__spring-cloud-config_CVE-2020-5405_2-1-6-RELEASE

分散システム向け集中構成サーバー。HTTP API、プロパティの暗号化/復号化、およびGit、Vault、JDBC、ローカルファイルシステムバックエンドをサポート。

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
リポジトリを見る
251年前未レビュー

//// このファイルは編集しないでください。自動生成されています。 このファイルへの手動変更は、再生成時に失われます。 代わりに、src/main/asciidoc/ ディレクトリ内のファイルを編集してください。 ////

image::https://circleci.com/gh/spring-cloud/spring-cloud-config/tree/master.svg?style=svg["CircleCI", link="https://circleci.com/gh/spring-cloud/spring-cloud-config/tree/master"] image::https://codecov.io/gh/spring-cloud/spring-cloud-config/branch/master/graph/badge.svg["Codecov", link="https://codecov.io/gh/spring-cloud/spring-cloud-config/branch/master"] image::https://api.codacy.com/project/badge/Grade/f064024a072c477e97dca6ed5a70fccd?branch=master["Codacy code quality", link="https://www.codacy.com/app/Spring-Cloud/spring-cloud-config?branch=master&utm_source=github.com&utm_medium=referral&utm_content=spring-cloud/spring-cloud-config&utm_campaign=Badge_Grade"]

Spring Cloud Config は、分散システムにおける外部化構成のためのサーバー側およびクライアント側のサポートを提供します。Config Server を使用すると、すべての環境にわたってアプリケーションの外部プロパティを一元管理できます。 クライアントとサーバーの両方の概念は、Spring の Environment および PropertySource 抽象化に同一にマッピングされるため、Spring アプリケーションに非常によく適合しますが、任意の言語で実行される任意のアプリケーションでも使用できます。 アプリケーションが開発からテスト、そして本番へのデプロイパイプラインを通過する際に、それらの環境間の構成を管理し、移行時にアプリケーションが実行に必要なすべてを確実に持つことができます。 サーバーストレージバックエンドのデフォルト実装は git を使用するため、構成環境のラベル付きバージョンを容易にサポートし、コンテンツ管理のための幅広いツールからアクセス可能です。 代替実装を追加し、Spring 構成でプラグインすることは容易です。

== 機能

=== Spring Cloud Config Server

Spring Cloud Config Server は以下の利点を提供します:

  • 外部構成のための HTTP リソースベース API(名前と値のペア、または同等の YAML コンテンツ)
  • プロパティ値の暗号化および復号(対称または非対称)
  • @EnableConfigServer を使用して Spring Boot アプリケーションに容易に組み込み可能

=== Spring Cloud Config Client

特に Spring アプリケーション向けに、Spring Cloud Config Client は以下を可能にします:

  • Config Server にバインドし、リモートプロパティソースで Spring Environment を初期化。
  • プロパティ値の暗号化および復号(対称または非対称)。
  • 構成変更時に再初期化したい Spring @Bean のための @RefreshScope。
  • 管理エンドポイントの使用: ** /env: Environment を更新し、@ConfigurationProperties およびログレベルを再バインド。 ** /refresh: @RefreshScope の Bean をリフレッシュ。 ** /restart: Spring コンテキストを再起動(デフォルトでは無効)。 ** /pause および /resume: Lifecycle メソッド(ApplicationContext の stop() および start())を呼び出す。
  • ブートストラップアプリケーションコンテキスト: メインアプリケーションの親コンテキストで、任意の処理を実行するよう訓練可能(デフォルトでは Config Server にバインドしプロパティ値を復号)。

== クイックスタート

このクイックスタートでは、Spring Cloud Config Server のサーバーとクライアントの両方の使用方法を説明します。

まず、次のようにサーバーを起動します:


$ cd spring-cloud-config-server $ ../mvnw spring-boot:run

サーバーは Spring Boot アプリケーションであるため、必要に応じて IDE から実行することもできます(メインクラスは ConfigServerApplication)。

次に、次のようにクライアントを試します:


$ curl localhost:8888/foo/development {"name":"foo","label":"master","propertySources":[ {"name":"https://github.com/scratches/config-repo/foo-development.properties","source":{"bar":"spam"}}, {"name":"https://github.com/scratches/config-repo/foo.properties","source":{"foo":"bar"}} ]}

プロパティソースを検出するデフォルトの戦略は、git リポジトリ(spring.cloud.config.server.git.uri に指定)をクローンし、それを使用してミニ SpringApplication を初期化することです。 ミニアプリケーションの Environment を使用してプロパティソースを列挙し、JSON エンドポイントで公開します。

HTTP サービスは、次の形式のリソースを持ちます:


/{application}/{profile}[/{label}] /{application}-{profile}.yml /{label}/{application}-{profile}.yml /{application}-{profile}.properties /{label}/{application}-{profile}.properties

ここで、application は SpringApplication の spring.config.name として注入され(通常の Spring Boot アプリでは通常 application)、profile はアクティブなプロファイル(またはカンマ区切りのプロパティリスト)、label はオプションの git ラベル(デフォルトは master)です。

Spring Cloud Config Server は、リモートクライアント用の構成をさまざまなソースから取得します。次の例は、git リポジトリ(指定が必要)から構成を取得する方法を示しています:

[source,yaml]

spring: cloud: config: server: git: uri: https://github.com/spring-cloud-samples/config-repo

その他のソースとしては、JDBC 互換データベース、Subversion、Hashicorp Vault、Credhub、ローカルファイルシステムがあります。

=== クライアント側の使用法

アプリケーションでこれらの機能を使用するには、spring-cloud-config-client に依存する Spring Boot アプリケーションとして構築できます(例については、config-client のテストケースまたはサンプルアプリケーションを参照してください)。 依存関係を追加する最も便利な方法は、Spring Boot スターター org.springframework.cloud:spring-cloud-starter-config を使用することです。 Maven ユーザー向けの親 pom と BOM(spring-cloud-starter-parent)、および Gradle と Spring CLI ユーザー向けの Spring IO バージョン管理プロパティファイルもあります。次の例は、典型的な Maven 構成を示しています:

[source,xml,indent=0] .pom.xml

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>{spring-boot-docs-version}</version>
    <relativePath /> <!-- 親リポジトリを参照 -->
</parent>

<dependencyManagement>
	<dependencies>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-dependencies</artifactId>
			<version>{spring-cloud-version}</version>
			<type>pom</type>
			<scope>import</scope>
		</dependency>
	</dependencies>
</dependencyManagement>

<dependencies>
	<dependency>
		<groupId>org.springframework.cloud</groupId>
		<artifactId>spring-cloud-starter-config</artifactId>
	</dependency>
	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-test</artifactId>
		<scope>test</scope>
	</dependency>
</dependencies>

<build>
	<plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
	</plugins>
</build>

<!-- スナップショットおよびマイルストーンにはリポジトリも必要 -->

これで、次のような HTTP サーバーの標準的な Spring Boot アプリケーションを作成できます:


@SpringBootApplication @RestController public class Application {

@RequestMapping("/")
public String home() {
    return "Hello World!";
}

public static void main(String[] args) {
    SpringApplication.run(Application.class, args);
}

}

この HTTP サーバーが実行されると、デフォルトのローカル構成サーバー(実行中の場合)のポート 8888 から外部構成を取得します。 起動動作を変更するには、bootstrap.properties(application.properties と似ていますが、アプリケーションコンテキストのブートストラップフェーズ用)を使用して構成サーバーの場所を変更できます。次の例を参照してください:


spring.cloud.config.uri: http://myconfigserver.com

デフォルトでは、アプリケーション名が設定されていない場合、application が使用されます。名前を変更するには、次のプロパティを bootstrap.properties ファイルに追加できます:


spring.application.name: myapp

注: プロパティ ${spring.application.name} を設定するときは、予約語 application- をアプリ名の前に付けないでください。正しいプロパティソースの解決に関する問題を防ぐためです。

ブートストラッププロパティは、/env エンドポイントに優先度の高いプロパティソースとして表示されます。次の例を参照してください:


$ curl localhost:8080/env { "profiles":[], "configService:https://github.com/spring-cloud-samples/config-repo/bar.properties":{"foo":"bar"}, "servletContextInitParams":{}, "systemProperties":{...}, ... }

```configService:<リモートリポジトリの URL>/<ファイル名>という名前のプロパティソースには、値barのfoo` プロパティが含まれており、最も優先度が高くなります。

注: プロパティソース名の URL は git リポジトリであり、構成サーバーの URL ではありません。

=== サンプルアプリケーション

サンプルアプリケーションは https://github.com/spring-cloud/spring-cloud-config/tree/master/spring-cloud-config-sample[こちら]にあります。 これは Spring Boot アプリケーションであるため、通常のメカニズム(例: mvn spring-boot:run)を使用して実行できます。 実行時には、構成サーバーを http://localhost:8888(設定可能なデフォルト)で探すため、サーバーも実行してすべてが連携して動作することを確認できます。

サンプルには、構成サーバーも同じ JVM 内で(異なるポートで)起動されるテストケースがあり、テストは git 構成リポジトリの環境プロパティが存在することをアサートします。 構成サーバーの場所を変更するには、bootstrap.yml(またはシステムプロパティやその他の場所)で spring.cloud.config.uri を設定できます。

テストケースには、サーバーを同じ方法で実行する main() メソッドがあります(ログでポートを確認してください)。そのため、1 つのプロセスでシステム全体を実行して試すことができます(たとえば、IDE で main() メソッドを実行できます)。 main() メソッドは git リポジトリの作業ディレクトリとして target/config を使用するため、そこでローカル変更を行い、実行中のアプリケーションに反映されるのを確認できます。次の例は、テストケースをいじるセッションを示しています:


$ curl localhost:8080/env/sample mytest $ vi target/config/mytest.properties .. "sample" の値を変更し、必要に応じてコミット $ curl localhost:8080/refresh ["sample"] $ curl localhost:8080/env/sample sampleValue

リフレッシュエンドポイントは、"sample" プロパティが変更されたことを報告します。

== ビルド

:jdkversion: 1.7

=== 基本的なコンパイルとテスト

ソースをビルドするには、JDK {jdkversion} をインストールする必要があります。

Spring Cloud はビルド関連のほとんどのアクティビティに Maven を使用しており、関心のあるプロジェクトをクローンして次のコマンドを入力することで、かなり迅速に開始できるはずです:


$ ./mvnw install

注: Maven(>=3.3.3)を自分でインストールし、以下の例で ./mvnw の代わりに mvn コマンドを実行することもできます。その場合、ローカルの Maven 設定に spring プレリリース成果物のリポジトリ宣言が含まれていない場合は、-P spring を追加する必要があるかもしれません。

ツールをダウンロード