3.4. 管理 API
管理 API エンドポイントは、管理クライアントが JBoss EAP 管理レイヤーと統合するためのエントリーポイントとして機能します。
3.4.1. HTTP API リンクのコピーリンクがクリップボードにコピーされました!
HTTP API のエンドポイントは、HTTP プロトコルに依存して JBoss EAP 管理レイヤーと統合する管理クライアントのエントリーポイントです。
HTTP API は、JBoss EAP 管理コンソールによって使用されますが、他のクライアントの統合機能も提供します。デフォルトでは、http://HOST_NAME:9990/management
で HTTP API にアクセスできます。この URL は、API に公開される raw 属性および値を表示します。
リソースの読み取り
HTTP POST
メソッドを使用して他の操作を読み取り、書き込み、および実行できますが、GET
リクエストを使用すると一部の読み取り操作を実行できます。HTTP GET
メソッドは以下の URL 形式を使用します。
http://HOST_NAME:9990/management/PATH_TO_RESOURCE?operation=OPERATION&PARAMETER=VALUE
http://HOST_NAME:9990/management/PATH_TO_RESOURCE?operation=OPERATION&PARAMETER=VALUE
置き換え可能な値は必ず適切な値に置き換えてください。置き換え可能な OPERATION
の値は、以下の値に置き換えられます。
Value | 説明 |
---|---|
attribute |
|
operation-description |
|
operation-names |
|
resource |
|
resource-description |
|
snapshots |
|
以下の URL 例は、HTTP API を使用して読み取り操作を実行する方法を示しています。
例: リソースのすべての属性と値の読み取り
http://HOST_NAME:9990/management/subsystem/undertow/server/default-server/http-listener/default
http://HOST_NAME:9990/management/subsystem/undertow/server/default-server/http-listener/default
これは、default
HTTP リスナーのすべての属性とそれらの値を表示します。
デフォルトの操作は read-resource
です。
例: リソースの属性値の読み取り
http://HOST_NAME:9990/management/subsystem/datasources/data-source/ExampleDS?operation=attribute&name=enabled
http://HOST_NAME:9990/management/subsystem/datasources/data-source/ExampleDS?operation=attribute&name=enabled
これは、ExampleDS
データソースの enabled
属性の値を読み取ります。
リソースの更新
HTTP POST
メソッドを使用して設定値を更新するか、HTTP API を使用して他の操作を実行できます。これらの操作の認証を提供する必要があります。
以下の例は、HTTP API を使用してリソースを更新する方法を示しています。
例: リソースの属性値の更新
curl --digest http://HOST_NAME:9990/management --header "Content-Type: application/json" -u USERNAME:PASSWORD -d '{"operation":"write-attribute", "address":["subsystem","datasources","data-source","ExampleDS"], "name":"enabled", "value":"false", "json.pretty":"1"}'
$ curl --digest http://HOST_NAME:9990/management --header "Content-Type: application/json" -u USERNAME:PASSWORD -d '{"operation":"write-attribute", "address":["subsystem","datasources","data-source","ExampleDS"], "name":"enabled", "value":"false", "json.pretty":"1"}'
これは、ExampleDS
データソースの enabled
属性の値を false
に更新します。
例: サーバーに対する操作の実行
curl --digest http://localhost:9990/management --header "Content-Type: application/json" -u USERNAME:PASSWORD -d '{"operation":"reload"}'
$ curl --digest http://localhost:9990/management --header "Content-Type: application/json" -u USERNAME:PASSWORD -d '{"operation":"reload"}'
これは、サーバーをリロードします。
HTTP API を使用して JBoss EAP にアプリケーションをデプロイする方法は、HTTP API を使用したアプリケーションのデプロイ を参照してください
3.4.1.1. custom-constant HTTP ヘッダー リンクのコピーリンクがクリップボードにコピーされました!
JBoss EAP の HTTP 管理エンドポイントは、クライアントに送信されるすべての応答で事前定義された HTTP ヘッダーのセットを返します。この事前定義された HTTP ヘッダーのセットに加えて、custom-constant HTTP ヘッダーを定義できます。
JBoss EAP は、以下のように custom-constant HTTP ヘッダーをリクエストに適用します。
JBoss EAP は、リクエストパスに対して設定された接頭辞を照合して、custom-constant HTTP ヘッダーを適用します。
たとえば、
/
や/management
などのリクエストパスのリクエストに、custom-constant HTTP ヘッダーをマップできます。リクエストが複数の接頭辞に一致する場合、JBoss EAP はすべてのマッピングから custom-constant HTTP ヘッダーを適用します。
たとえば、パス
/management
へのリクエストは、/
と/management
の両方のマッピングと一致します。JBoss EAP は両方のマッピングからヘッダーを適用します。リクエストの処理の最後に、応答がクライアントに返される前に、対応するエンドポイントによって設定されたヘッダーをオーバーライドします。
たとえば、管理エンドポイントは各応答に
X-Frame-Options
ヘッダーを設定します。X-Frame-Options
という名前の custom-constant HTTP ヘッダーを定義すると、custom-constant HTTP ヘッダーがデフォルトのヘッダーをオーバーライドします。
複数の custom-constant HTTP ヘッダーが、単一のマッピングのレスポンスで返されるように定義できます。
custom-constant HTTP ヘッダーを定義するルールは次のとおりです。
- custom-constant HTTP ヘッダーには、RFC-7231 - Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content でサポートされている文字のみを使用できます。
次の定義済み HTTP ヘッダーをオーバーライドすることはできません。
-
Connection
-
Content-Length
-
Content-Type
-
Date
Transfer-Encoding
これらの定義済みヘッダーのいずれかをオーバーライドしようとすると、エラーが発生します。
たとえば、
Date
という名前で custom-constant HTTP ヘッダーを設定しようとすると、次のエラーが返されます。{ "outcome" => "failed", "failure-description" => "WFLYCTL0458:Disallowed HTTP Header name 'Date'", "rolled-back" => true }
{ "outcome" => "failed", "failure-description" => "WFLYCTL0458:Disallowed HTTP Header name 'Date'", "rolled-back" => true }
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
custom-constant HTTP ヘッダーを作成する際の重要な考慮事項:
- JBoss EAP は指定されたパスにアクセスできるかどうかを検証しません。
- サブシステムは、HTTP 管理インターフェイスがサポートするコンテキストを動的に追加できます。
- custom-constant HTTP ヘッダーは、エンドポイントがリクエストへの応答を処理する方法を変更しません。
3.4.1.2. custom-constant HTTP ヘッダーの定義 リンクのコピーリンクがクリップボードにコピーされました!
必要なパス接頭辞への各レスポンスで返される custom-constant HTTP ヘッダーを定義します。
custom-constant HTTP ヘッダーを作成する前に、以下の考慮事項を理解する必要があります。
- JBoss EAP は指定されたパスにアクセスできるかどうかを検証 しません。
- サブシステムは、HTTP 管理インターフェイスがサポートするコンテキストを動的に追加できます。
- custom-constant HTTP ヘッダーは、エンドポイントがリクエストへの応答を処理する方法を変更しません。
手順
custom-constant HTTP ヘッダーを定義します。
/core-service=management/management-interface=http-interface:write-attribute(name=constant-headers,value=[{path="PATH_PREFIX",headers=[{name="HEADER_NAME",value="HEADER_VALUE"}]}])
/core-service=management/management-interface=http-interface:write-attribute(name=constant-headers,value=[{path="PATH_PREFIX",headers=[{name="HEADER_NAME",value="HEADER_VALUE"}]}])
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要write-attribute
操作を使用すると、reload-required
プロンプトが開きます。変更を反映するためにサーバーをリロードします。
reload
reload
Copy to Clipboard Copied! Toggle word wrap Toggle overflow HTTP 管理インターフェイスへのリクエストが、事前定義された HTTP ヘッダーのセットに加えて、HEADER_VALUE の値で HTTP ヘッダー HEADER_NAME を返すようになりました。
custom-constant HTTP ヘッダー X-help の例
/core-service=management/management-interface=http-interface:write-attribute(name=constant-headers,value=[{path="/",headers=[{name="X-Help",value="http://mywebsite.com/help"}]}])
/core-service=management/management-interface=http-interface:write-attribute(name=constant-headers,value=[{path="/",headers=[{name="X-Help",value="http://mywebsite.com/help"}]}])
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証手順
HTTP 管理インターフェイスにリクエストを送信します。
curl -s -D - -o /dev/null --digest http://localhost:9990/management/ -u USERNAME:PASSWORD
curl -s -D - -o /dev/null --digest http://localhost:9990/management/ -u USERNAME:PASSWORD
Copy to Clipboard Copied! Toggle word wrap Toggle overflow custom-constant HTTP ヘッダー
X-Help
の例のレスポンス例Copy to Clipboard Copied! Toggle word wrap Toggle overflow レスポンスには、
X-Help
custom-constant HTTP ヘッダーが含まれます。
3.4.1.3. custom-constant HTTP ヘッダーを定義する CLI コマンド リンクのコピーリンクがクリップボードにコピーされました!
以下の CLI コマンドは、スタンドアロンおよびマネージドドメインモードで custom-constant HTTP ヘッダーを定義します。
スタンドアロンモード
単一の custom-constant HTTP ヘッダーを定義するには、以下のコマンドを使用します。
/core-service=management/management-interface=http-interface:write-attribute(name=constant-headers,value=[{path=/PREFIX,headers=[{name=X-HEADER,value=HEADERVALUE}]}])
/core-service=management/management-interface=http-interface:write-attribute(name=constant-headers,value=[{path=/PREFIX,headers=[{name=X-HEADER,value=HEADERVALUE}]}])
Copy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドにより、XML 設定は以下のようになります。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 複数の custom-constant HTTP ヘッダーを定義するには、以下のコマンドを使用します。
/core-service=management/management-interface=http-interface:write-attribute(name=constant-headers,value=[{path=/PREFIX1,headers=[{name=X-HEADER,value=HEADERVALUE-FOR-X}]},{path=/PREFIX2,headers=[{name=Y-HEADER,value=HEADERVALUE-FOR-Y}]}])
/core-service=management/management-interface=http-interface:write-attribute(name=constant-headers,value=[{path=/PREFIX1,headers=[{name=X-HEADER,value=HEADERVALUE-FOR-X}]},{path=/PREFIX2,headers=[{name=Y-HEADER,value=HEADERVALUE-FOR-Y}]}])
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
ドメインモード
単一の custom-constant HTTP ヘッダーを定義するには、以下のコマンドを使用します。
/host=primary/core-service=management/management-interface=http-interface:write-attribute(name=constant-headers,value=[{path=/PREFIX,headers=[{name=X-HEADER,value=HEADER-VALUE}]}])
/host=primary/core-service=management/management-interface=http-interface:write-attribute(name=constant-headers,value=[{path=/PREFIX,headers=[{name=X-HEADER,value=HEADER-VALUE}]}])
Copy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドにより、XML 設定は以下のようになります。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 複数の custom-constant HTTP ヘッダーを定義するには、以下のコマンドを使用します。
/host=primary/core-service=management/management-interface=http-interface:write-attribute(name=constant-headers,value=[ {path=/PREFIX-1,headers=[{name=X-HEADER,value=HEADER-VALUE-FOR-X}]},{path=/PREFIX-2,headers=[{name=Y-HEADER,value=HEADER-VALUE-FOR-Y}]}])
/host=primary/core-service=management/management-interface=http-interface:write-attribute(name=constant-headers,value=[ {path=/PREFIX-1,headers=[{name=X-HEADER,value=HEADER-VALUE-FOR-X}]},{path=/PREFIX-2,headers=[{name=Y-HEADER,value=HEADER-VALUE-FOR-Y}]}])
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.4.2. ネイティブ API リンクのコピーリンクがクリップボードにコピーされました!
ネイティブ API のエンドポイントは、ネイティブプロトコルに依存して JBoss EAP 管理レイヤーと統合する管理クライアントのエントリーポイントです。ネイティブ API は JBoss EAP 管理 CLI によって使用されますが、他のクライアントの統合機能も提供します。
以下の Java コードは、ネイティブ API を使用して Java コードから管理操作を実行する方法の例を示しています。
EAP_HOME/bin/client/jboss-cli-client.jar
ファイルにある、必要な JBoss EAP ライブラリーをクラスパスに追加する必要があります。
例: ネイティブ API を使用したリソースの読み取り