第19章 クライアントの設定
19.1. wildfly-config.xml ファイルを使用したクライアント設定
JBoss EAP 7.1 では、すべてのクライアント設定を 1 つの設定ファイルに統合する目的で wildfly-config.xml ファイルが導入されました。
以下の表は、JBoss EAP の wildfly-config.xml ファイルを使用して実現できるクライアント設定および設定タイプと、リファレンススキーマリンクを示しています。
| クライアント設定 | スキーマの場所 / 設定情報 |
|---|---|
| 認証クライアント |
スキーマリファレンスは、 スキーマは、http://www.jboss.org/schema/jbossas/elytron-client-1_2.xsd にも公開されています。 |
|
詳細と設定例は、 詳細は、JBoss EAPアイデンティティー管理の設定方法 の Elytron クライアントでのクライアント認証の設定 を参照してください。 | |
| Jakarta Enterprise Beans クライアント |
スキーマリファレンスは、 スキーマは http://www.jboss.org/schema/jbossas/wildfly-client-ejb_3_0.xsd にも公開されます。 |
|
詳細および設定例については もう 1 つの簡単な例は、JBoss EAP の 移行ガイド の Jakarta Enterprise Beans クライアントの Elytron への移行 のセクションにあります。 | |
| HTTP クライアント |
スキーマリファレンスは、 スキーマは http://www.jboss.org/schema/jbossas/wildfly-http-client_1_0.xsd にも公開されます。 |
| 注記 この機能は テクノロジープレビュー としてのみ提供されます。
詳細と設定例は、 | |
| リモーティングクライアント |
スキーマリファレンスは スキーマは、http://www.jboss.org/schema/jbossas/jboss-remoting_5_0.xsd にも公開されています。 |
|
詳細と設定例は、 | |
| XNIO ワーカークライアント |
スキーマリファレンスは、 スキーマは、http://www.jboss.org/schema/jbossas/xnio_3_5.xsd にも公開されています。 |
|
詳細と設定例は、 |
19.1.1. wildfly-config.xml ファイルを使用したクライアント認証設定
urn:elytron:client:1.2 ネームスペースにある authentication-client 要素を使用すると、wildfly-config.xml ファイルを使用してクライアント認証を設定できます。ここでは、この要素を使用したクライアント認証の設定方法について説明します。
authentication-client 要素および属性
authentication-client 要素には、任意で以下のトップレベル子要素とそれらの子要素を含むことが可能です。
credential-storesこの任意の要素は、設定内でクレデンシャルを埋め込む代わりに、設定内の他の場所から参照されるクレデンシャルストアを定義します。
任意数の
credential-store要素を含むことができます。例:
credential-stores設定<configuration> <authentication-client xmlns="urn:elytron:client:1.2"> <credential-stores> <credential-store name="..." type="..." provider="..." > <attributes> <attribute name="..." value="..." /> </attributes> <protection-parameter-credentials>...</protection-parameter-credentials> </credential-store> </credential-stores> </authentication-client> </configuration>
credential-storeこの要素は、設定の別の場所から参照されるクレデンシャルストアを定義します。
この要素は以下の属性を持ちます。
属性名 属性の説明 name
クレデンシャルストアの名前。必須の属性です。
type
クレデンシャルストアのタイプ。この属性は任意です。
provider
クレデンシャルストアのロードに使用する
java.security.Providerの名前。この属性は任意です。この要素には、以下の各子要素を 1 つのみ含めることができます。
attributesこの要素は、クレデンシャルストアの初期化に使用される設定属性を定義し、設定に必要な回数繰り返すことができます。
例:
attributes設定<attributes> <attribute name="..." value="..." /> </attributes>
protection-parameter-credentialsこの要素には、クレデンシャルストアを初期化するときに使用される保護パラメーターにアセンブルされる 1 つまたは複数のクレデンシャルを含むことができます。
クレデンシャルストアの実装に依存する以下の子要素を 1 つ以上含めることができます。
例:
protection-parameter-credentials設定<protection-parameter-credentials> <key-store-reference>...</key-store-reference> <credential-store-reference store="..." alias="..." clear-text="..." /> <clear-password password="..." /> <key-pair public-key-pem="..." private-key-pem="..." /> <certificate private-key-pem="..." pem="..." /> <public-key-pem>...</public-key-pem> <bearer-token value="..." /> <oauth2-bearer-token token-endpoint-uri="...">...</oauth2-bearer-token> </protection-parameter-credentials>
key-store-referenceこの要素は、JBoss EAP の認証メカニズムによって 現在使用されていません。キーストアへの参照を定義します。
この要素は以下の属性を持ちます。
属性名 属性の説明 key-store-name
キーストア名。必須の属性です。
alias
参照されたキーストアからロードするエントリーのエイリアス。単一のエントリーのみが含まれるキーストアのみ省略できます。
これには、以下の子要素の 1 つのみを含めることができます。
例:
key-store-reference設定<key-store-reference key-store-name="..." alias="..."> <key-store-clear-password password="..." /> <key-store-credential>...</key-store-credential> </key-store-reference>
credential-store-referenceこの要素はクレデンシャルストアへの参照を定義します。
この要素は以下の属性を持ちます。
属性名 属性の説明 store
クレデンシャルストア名。
alias
参照されたクレデンシャルストアからロードするエントリーのエイリアス。単一のエントリーのみが含まれるキーストアのみ省略できます。
clear-text
クリアテキストのパスワード。
clear-password- この要素は、クリアテキストパスワードを定義します。
key-pairこの要素は、JBoss EAP の認証メカニズムによって 現在使用されていません。パブリックキーとプライベートキーのペアを定義します。
これには、以下の子要素を含めることができます。
public-key-pem- この要素は、JBoss EAP の認証メカニズムによって 現在使用されていません。EPM エンコードのパブリックキーを定義します。
private-key-pem- この要素は、PEM エンコードのプライベートキーを定義します。
certificateこの要素は、JBoss EAP の認証メカニズムによって 現在使用されていません。証明書を指定します。
この要素は以下の属性を持ちます。
属性名 属性の説明 private-key-pem
PEM エンコードのプライベートキー。
pem
対応する証明書。
bearer-token- この要素はベアラートークンを定義します。
oauth2-bearer-tokenこの要素は、OAuth 2 のベアラートークンを定義します。
この要素には以下の属性があります。
属性名 属性の説明 token-endpoint-uri
トークンエンドポイントの URL。
この要素には、以下の各子要素を 1 つのみ含めることができます。
client-credentialsこの要素は、クライアントクレデンシャルを定義します。
この要素は以下の属性を持ちます。
属性名 属性の説明 client-id
クライアント ID。必須の属性です。
client-secret
クライアントシークレット。必須の属性です。
resource-owner-credentialsこの要素は、リソース所有者のクレデンシャルを定義します。
この要素は以下の属性を持ちます。
属性名 属性の説明 name
リソース名。必須の属性です。
pasword
パスワード。必須の属性です。
key-storesこの要素は任意で、設定の別の場所から参照されるキーストアを定義します。
例:
key-stores設定<configuration> <authentication-client xmlns="urn:elytron:client:1.2"> <key-stores> <key-store name="..."> <!-- The following 3 elements specify where to load the keystore from. --> <file name="..." /> <load-from uri="..." /> <resource name="..." /> <!-- One of the following to specify the protection parameter to unlock the keystore. --> <key-store-clear-password password="..." /> <key-store-credential>...</key-store-credential> </key-store> </key-stores> ... </authentication-client> </configuration>
key-storeこの要素は任意で、設定の他の場所から参照されるキーストアを定義します。
key-storeには以下の属性があります。属性名 属性の説明 name
キーストアの名前。必須の属性です。
type
JCEKSなどのキーストアタイプ。必須の属性です。provider
クレデンシャルストアのロードに使用する
java.security.Providerの名前。この属性は任意です。wrap-passwords
true の場合、
passwordsをラップします。パスワードは、クリアなパスワードコンテンツを UTF-8 でエンコードした後、結果のバイトを秘密鍵として格納します。デフォルトはfalseです。キーストアのロード元を定義する以下の要素の 1 つが必ず含まれる必要があります。
また、キーストアを初期化するときに使用する保護パラメーターを指定する以下の要素の 1 つが含まれている必要があります。
fileこの要素はキーストアファイルの名前を指定します。
この要素には以下の属性があります。
属性名 属性の説明 name
ファイルの完全修飾ファイルパスおよび名前。
load-fromこの要素は、キーストアファイルの URI を指定します。
この要素には以下の属性があります。
属性名 属性の説明 uri
キーストアファイルの URI。
resourceこの要素は、
Threadコンテキストクラスローダーからロードするリソースの名前を指定します。この要素には以下の属性があります。
属性名 属性の説明 name
リソースの名前。
key-store-clear-passwordこの要素はクリアテキストパスワードを指定します。
この要素には以下の属性があります。
属性名 属性の説明 password
クリアテキストのパスワード。
key-store-credentialこの要素は、このキーストアにアクセスするために保護パラメーターとして使用するエントリーを取得する別のキーストアへの参照を指定します。
key-store-credential要素には以下の属性があります。属性名 属性の説明 key-store-name
キーストア名。必須の属性です。
alias
参照されたキーストアからロードするエントリーのエイリアス。単一のエントリーのみが含まれるキーストアのみ省略できます。
これには、以下の子要素の 1 つのみを含めることができます。
例:
key-store-credential設定<key-store-credential key-store-name="..." alias="..."> <key-store-clear-password password="..." /> <key-store-credential>...</key-store-credential> </key-store-credential>
authentication-rulesこの要素は、適切な認証設定を適用するためにアウトバウンド接続と照合するルールを定義します。
authentication-configurationが必要である場合、アクセスされたリソースの URI と、任意の抽象型および抽象型オーソリティーは、設定に定義されたルールと照合され、使用するauthentication-configurationを特定します。この要素には、1 つまたは複数の子
rule要素を含めることができます。例:
authentication-rules設定<configuration> <authentication-client xmlns="urn:elytron:client:1.2"> ... <authentication-rules> <rule use-configuration="..."> ... </rule> </authentication-rules> ... </authentication-client> </configuration>
ruleこの要素は、適切な認証設定を適用するためにアウトバウンド接続と照合するルールを定義します。
この要素には以下の属性があります。
属性名 属性の説明 use-configuration
ルールが一致した時に選択される認証設定。
認証設定ルールの照合は、SSL コンテキストルールの照合とは独立しています。認証設定ルールは認証設定、SSL コンテキストルールは SSL コンテキストを参照すること以外は、認証ルールの構造は SSL コンテキストルールの構造と同じです。
これには、以下の子要素を含めることができます。
例: 認証の
rule設定<rule use-configuration="..."> <!-- At most one of the following two can be defined. --> <match-no-user /> <match-user name="..." /> <!-- Each of the following can be defined at most once. --> <match-protocol name="..." /> <match-host name="..." /> <match-path name="..." /> <match-port number="..." /> <match-urn name="..." /> <match-domain name="..." /> <match-abstract-type name="..." authority="..." /> </rule>
match-no-user-
URI 内に埋め込まれた
user-infoがない場合、このルールと一致します。
match-user-
URI 内に埋め込まれた
user-infoがこの要素に指定されたname属性と一致する場合、このルーツと一致します。
match-protocol-
URI 内のプロトコルがこの要素に指定されたプロトコル
name属性と一致する場合、このルールと一致します。
match-host-
URI 内に指定されたホスト名がこの要素に指定されたホスト
name属性と一致する場合、このルールと一致します。
match-path-
URI 内に指定されたパスがこの要素に指定されたパス
name属性と一致する場合、このルールと一致します。
match-port-
URI 内に指定されたポート番号がこの要素に指定されたポート
number属性と一致する場合、このルールと一致します。これは、URI 内に指定された番号のみと照合され、このプロトコルから派生するデフォルトのポート番号とは照合されません。
match-urn-
URI のスキーム固有の部分がこの要素に指定された
name属性と一致する場合、このルールと一致します。
match-domain-name-
URI のプロトコルが
domainで、URI のスキーム固有の部分がこの要素に指定されたname属性と一致する場合、このルールと一致します。
match-abstract-type-
抽象型が
name属性と一致し、オーソリティーがこの要素で指定されたauthority属性と一致する場合、このルールと一致します。
authentication-configurationsこの要素は、認証ルールによって選択される名前付きの認証設定を定義します。
これには、1 つまたは複数の
configuration要素を含めることができます。例:
authentication-configurations設定<configuration> <authentication-client xmlns="urn:elytron:client:1.2"> <authentication-configurations> <configuration name="..."> <!-- Destination Overrides. --> <set-host name="..." /> <set-port number="..." /> <set-protocol name="..." /> <!-- At most one of the following two elements. --> <set-user-name name="..." /> <set-anonymous /> <set-mechanism-realm name="..." /> <rewrite-user-name-regex pattern="..." replacement="..." /> <sasl-mechanism-selector selector="..." /> <set-mechanism-properties> <property key="..." value="..." /> </set-mechanism-properties> <credentials>...</credentials> <set-authorization-name name="..." /> <providers>...</providers> <!-- At most one of the following two elements. --> <use-provider-sasl-factory /> <use-service-loader-sasl-factory module-name="..." /> </configuration> </authentication-configurations> </authentication-client> </configuration>
configurationこの要素は、認証ルールによって選択される名前付きの認証設定を定義します。
これには、以下の子要素を含めることができます。
-
任意の
set-host-name、set-port-number、およびset-protocol要素は宛先をオーバーライドできます。 -
任意の
set-user-nameおよびset-anonymous要素は相互排他的で、認証の名前の設定や匿名認証への切り替えに使用できます。 -
次は任意の
set-mechanism-realm-name、rewrite-user-name-regex、sasl-mechanism-selector、set-mechanism-properties、credentials、set-authorization-name、およびproviders要素です。 -
最後の 2 つの要素
use-provider-sasl-factoryおよびuse-service-loader-sasl-factoryは任意で、相互排他的です。 SASL メカニズムファクトリーが認証に対して検出される方法を定義します。
-
任意の
set-host-nameこの要素は、認証された呼び出しのホスト名をオーバーライドします。
この要素には以下の属性があります。
属性名 属性の説明 name
ホスト名。
set-port-numberこの要素は、認証された呼び出しのポート番号をオーバーライドします。
この要素には以下の属性があります。
属性名 属性の説明 number
ポート番号。
set-protocolこの要素は、認証された呼び出しのプロトコルをオーバーライドします。
この要素には以下の属性があります。
属性名 属性の説明 name
プロトコル。
set-user-nameこの要素は、認証に使用するユーザー名を設定します。
set-anonymous要素とは使用しないでください。この要素には以下の属性があります。
属性名 属性の説明 name
認証に使用するユーザー名。
set-anonymous-
匿名認証への切り替えに使用されます。
set-user-name要素とは使用しないでください。
set-mechanism-realm-nameこの要素は、必要時に SASL メカニズムによって選択されるレルムの名前を指定します。
この要素には以下の属性があります。
属性名 属性の説明 name
レルムの名前。
rewrite-user-name-regexこの要素は、認証に使用されるユーザー名を再書き込みする正規表現パターンと代替を定義します。
この要素は以下の属性を持ちます。
属性名 属性の説明 pattern
正規表現パターン。
replacement
認証に使用されるユーザー名の再書き込みに使用する代替。
sasl-mechanism-selectorこの要素は、
org.wildfly.security.sasl.SaslMechanismSelector.fromString(string)メソッドからの構文を使用して SASL メカニズムを指定します。この要素には以下の属性があります。
属性名 属性の説明 selector
SASL メカニズムセレクター。
sasl-mechanism-selectorに必要な文法に関する詳細は、JBoss EAP の サーバーセキュリティーの設定方法 に記載されているsasl-mechanism-selector文法 を参照してください。
set-mechanism-properties-
この要素には、認証メカニズムに渡される 1 つまたは複数の
property要素を含めることができます。
propertyこの要素は、認証メカニズムに渡されるプロパティーを定義します。
この要素は以下の属性を持ちます。
属性名 属性の説明 key
プロパティー名。
value
プロパティーの値。
credentialsこの要素は、認証中に使用できる 1 つまたは複数のクレデンシャルを定義します。
クレデンシャルストアの実装に依存する以下の子要素を 1 つ以上含めることができます。
これらは、
protection-parameter-credentials要素に含まれる子要素と同じです。詳細と設定例は、protection-parameter-credentials要素の説明を参照してください。
set-authorization-nameこの要素は、承認に使用する名前が認証 ID とは異なる場合に、その名前を指定します。
この要素は以下の属性を持ちます。
属性名 属性の説明 name
承認に使用する名前。
use-provider-sasl-factory-
継承または設定に定義され、利用可能な SASL クライアントファクトリーの検索に使用される
java.security.Providerインスタンスを指定します。この要素はuse-service-loader-sasl-factory要素とは使用しないでください。
use-service-loader-sasl-factoryこの要素は、サービ出力ダー検出メカニズムを使用して SASL クライアントファクトリーの検出に使用されるモジュールを指定します。指定されたモジュールがない場合は、設定をロードしたクラスローダーが使用されます。この要素は
use-provider-sasl-factory要素とは使用しないでください。この要素には以下の属性があります。
属性名 属性の説明 module-name
モジュール名
net-authenticatorこの要素に含まれる設定はありません。この要素が存在する場合、
org.wildfly.security.auth.util.ElytronAuthenticatorがjava.net.Authenticator.setDefault(Authenticator)で登録されます。これにより、認証を必要とする HTTP 呼び出しに JDK API が使用された場合に Elytron 認証クライアント設定が認証に使用されます。注記JDK は JBM 全体で最初の呼び出し時に認証をキャッシュするため、同じ URI への複数の呼び出しに異なるクレデンシャルを必要としないスタンドアロンプロセスのみに使用することが推奨されます。
ssl-context-rulesこれは任意の要素で、SSL コンテキストルールを定義します。
ssl-contextが必要な場合、アクセスされたリソースの URI と、任意の抽象型および抽象型オーソリティーは、設定に定義されたルールと照合され、使用するssl-contextを特定します。この要素には、1 つまたは複数の子
rule要素を含めることができます。例:
ssl-context-rules設定<configuration> <authentication-client xmlns="urn:elytron:client:1.2"> <ssl-context-rules> <rule use-ssl-context="..."> ... </rule> </ssl-context-rules> ... </authentication-client> </configuration>
ruleこの要素は、SSL コンテキスト定義で照合するルールを定義します。
この要素には以下の属性があります。
属性名 属性の説明 use-ssl-context
ルールに一致したときに選択される SSL コンテキスト定義。
SSL コンテキストルールの照合は、認証ルールの照合とは独立しています。SSL コンテキストルールは SSL コンテキスト、認証ルールは認証設定を参照すること以外は、SSL コンテキストルールの構造は、認証設定ルールの構造と同じです。
これには、以下の子要素を含めることができます。
例: SSL コンテキストの
rule設定<rule use-ssl-context="..."> <!-- At most one of the following two can be defined. --> <match-no-user /> <match-user name="..." /> <!-- Each of the following can be defined at most once. --> <match-protocol name="..." /> <match-host name="..." /> <match-path name="..." /> <match-port number="..." /> <match-urn name="..." /> <match-domain name="..." /> <match-abstract-type name="..." authority="..." /> </rule>
ssl-contextsこれは任意の要素で、SSL コンテキストルールによって選択される SSL コンテキスト定義を定義します。
例:
ssl-contexts設定<configuration> <authentication-client xmlns="urn:elytron:client:1.2"> <ssl-contexts> <default-ssl-context name="..."/> <ssl-context name="..."> <key-store-ssl-certificate>...</key-store-ssl-certificate> <trust-store key-store-name="..." /> <cipher-suite selector="..." /> <protocol names="... ..." /> <provider-name name="..." /> <providers>...</providers> <certificate-revocation-list path="..." maximum-cert-path="..." /> </ssl-context> </ssl-contexts> </authentication-client> </configuration>
default-ssl-context-
この要素は、
javax.net.ssl.SSLContext.getDefault()によって返されるSSLContextを取り、ssl-context-rulesから参照されるように名前を割り当てます。この要素は繰り返すことができるため、異なる名前を使用してデフォルトの SSL コンテキストを参照することができます。
ssl-contextこの要素は、接続に使用する SSL コンテキストを定義します。
任意で以下の各子要素を 1 つずつ含めることができます。
key-store-ssl-certificateこの要素は、キーのキーストア内のエントリーへの参照と、この SSL コンテキストに使用する証明書を定義します。
この要素は以下の属性を持ちます。
属性名 属性の説明 key-store-name
キーストア名。必須の属性です。
alias
参照されたキーストアからロードするエントリーのエイリアス。単一のエントリーのみが含まれるキーストアのみ省略できます。
以下の子要素を含めることができます。
この構造は、
key-store-credential設定で使用される構造とほぼ同じですが、この構造ではキーと証明書のエントリーを取得します。しかし、入れ子のkey-store-clear-passwordおよびkey-store-credential要素は、エントリーをアンロックするために保護パラメーターを提供します。例:
key-store-ssl-certificate設定<key-store-ssl-certificate key-store-name="..." alias="..."> <key-store-clear-password password="..." /> <key-store-credential>...</key-store-credential> </key-store-ssl-certificate>
trust-storeこの要素は、
TrustManagerの初期化に使用されるキーストアへの参照です。この要素には以下の属性があります。
属性名 属性の説明 key-store-name
キーストア名。必須の属性です。
cipher-suiteこの要素は、有効化された暗号スイートにフィルターを設定します。
この要素には以下の属性があります。
属性名 属性の説明 selector
暗号スイートをフィルターするセレクター。セレクターは、
org.wildfly.security.ssl.CipherSuiteSelector.fromString(selector)メソッドによって作成される OpenSSL スタイルの暗号リスト文字列の形式を使用します。例: デフォルトのフィルターを使用した
cipher-suite設定<cipher-suite selector="DEFAULT" />
protocol-
この要素は、サポートされるプロトコルのスペース区切りリストを定義します。使用できるプロトコルのリストは、JBoss EAPサーバーセキュリティーの設定方法 のclient-ssl-context 属性の表を参照してください。Red Hat は
TLSv1.2の使用を推奨します。
provider-name- 使用できるプロバイダーの特定後、この要素で定義された名前を持つプロバイダーのみが使用されます。
certificate-revocation-listこの要素は、証明書失効リストへのパスと、証明書パスに存在可能な自己発行でない中間証明書の最大数の両方を定義します。この要素が存在する場合、ピア証明書を証明書失効リストと照合することができます。
この要素は以下の属性を持ちます。
属性名 属性の説明 path
証明書リストへのパス。この属性は任意です。
maximum-cert-path
証明書パスに存在可能な自己発行でない中間証明書の最大数。この属性は任意です。
providersこの要素は、必要時に
java.security.Providerインスタンスを探す方法を定義します。これには、以下の子要素を含めることができます。
authentication-clientの設定セクションはお互いに独立しているため、この要素は以下の場所に設定できます。例:
providers設定の場所<configuration> <authentication-client xmlns="urn:elytron:client:1.2"> <providers /> ... <credential-stores> <credential-store name="..."> ... <providers /> </credential-store> </credential-stores> ... <authentication-configurations> <authentication-configuration name="..."> ... <providers /> </authentication-configuration> </authentication-configurations> ... <ssl-contexts> <ssl-context name="..."> ... <providers /> </ssl-context> </ssl-contexts> </authentication-client> </configuration>providers設定は、オーバーライドされない限りは定義される要素と、その要素の子要素に適用されます。子要素のprovidersの仕様は、その親要素に指定されたprovidersをオーバライドします。指定されたproviders設定がない場合、デフォルトの動作は以下と同様になり、Elytron プロバイダーはグローバルに登録されたプロバイダーよりも優先されますが、グローバルに登録されたプロバイダーの使用も許可されます。例:
providers設定<providers> <use-service-loader /> <global /> </providers>
global-
この空の要素は、
java.security.Security.getProviders()メソッド呼び出しによってロードされるグローバルプロバイダーの使用を指定します。
use-service-loader- この空の要素は、指定のモジュールによってロードされるプロバイダーの使用を指定します。指定されたモジュールがない場合は、認証クライアントをロードしたクラスローダーが使用されます。
JBoss EAP の認証メカニズムによって現在使用されていない要素
Elytron クライアント設定の credentials 要素の以下の子要素は、JBoss EAP の認証メカニズムによって現在使用されていません。認証メカニズムのカスタム実装で使用することはできますが、サポートはされません。
-
key-pair -
public-key-pem -
key-store-reference -
certificate
19.1.2. wildfly-config.xml ファイルを使用した Jakarta Enterprise Beans クライアントの設定
urn:jboss:wildfly-client-ejb:3.0 ネームスペースにある jboss-ejb-client 要素を使用し、wildfly-config.xml ファイルを使用すると、Jakarta Enterprise Beans クライアント接続、グローバルインターセプター、および呼び出しのタイムアウトを設定できます。このセクションでは、この要素を使用して Jakarta Enterprise Beans クライアントを設定する方法について説明します。
jboss-ejb-client 要素および属性
jboss-ejb-client 要素には、任意で以下の 3 つのトップレベル子要素と、それらの子要素を含めることができます。
invocation-timeoutこの任意の要素は、Jakarta Enterprise Beans の呼び出しタイムアウトを指定します。この要素には以下の属性があります。
属性名 属性の説明 秒
Jakarta Enterprise Beans ハンドシェークまたはメソッド呼び出しの要求/応答サイクルのタイムアウト (秒単位)。この属性は必須です。
メソッドの実行時間がタイムアウトの時間よりも長くなった場合、呼び出しによって
jboss-ejb-clientが発生しますが、サーバー側は中断されません。
global-interceptors-
このオプションの要素は、グローバルな Jakarta Enterprise Beans クライアントインターセプターを指定します。任意の数の
interceptor要素を含めることができます。
interceptorこの要素は、Jakarta Enterprise Beans クライアントインターセプターを指定するために使用されます。この要素は以下の属性を持ちます。
属性名 属性の説明 class
org.jboss.ejb.client.EJBClientInterceptorインターフェイスを実装するクラスの名前。この属性は必須です。module
インターセプタークラスのロードに使用されるモジュールの名前。この属性は任意です。
connections-
この要素は、Jakarta Enterprise Beans クライアント接続を指定するために使用されます。任意の数の
connection要素を含めることができます。
connectionこの要素は、Jakarta Enterprise Beans クライアント接続を指定するために使用されます。任意で
interceptors要素を含めることができます。この要素には以下の属性があります。属性名 属性の説明 uri
接続の宛先 URI。この属性は必須です。
interceptors-
この要素は、Jakarta Enterprise Beans クライアントインターセプターを指定するために使用され、任意の数の
インターセプター要素を含めることができます。
wildfly-config.xml ファイルでの Jakarta Enterprise Beans クライアント設定の例
以下は、wildfly-config.xml ファイルの jboss-ejb-client 要素を使用して、Jakarta Enterprise Beans クライアント、グローバルインターセプター、および呼び出しタイムアウトを設定する例になります。
<configuration>
...
<jboss-ejb-client xmlns="urn:jboss:wildfly-client-ejb:3.0">
<invocation-timeout seconds="10"/>
<connections>
<connection uri="remote+http://10.20.30.40:8080"/>
</connections>
<global-interceptors>
<interceptor class="org.jboss.example.ExampleInterceptor"/>
</global-interceptors>
</jboss-ejb-client>
...
</configuration>19.1.3. wildfly-config.xml ファイルを使用した HTTP クライアント設定
以下は、wildfly-config.xml ファイルを使用して HTTP クライアントを設定する方法の例になります。
<configuration>
...
<http-client xmlns="urn:wildfly-http-client:1.0">
<defaults>
<eagerly-acquire-session value="true" />
<buffer-pool buffer-size="2000" max-size="10" direct="true" thread-local-size="1" />
</defaults>
</http-client>
...
</configuration>
wildfly-config.xml ファイルを使用した HTTP クライアント設定は、テクノロジープレビューとしてのみ提供されます。テクノロジープレビューの機能は、Red Hat の本番環境のサービスレベルアグリーメント (SLA) ではサポートされず、機能的に完全ではないことがあるため、Red Hat は本番環境での使用は推奨しません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。
テクノロジープレビュー機能のサポート範囲は、Red Hat カスタマーポータルの テクノロジープレビュー機能のサポート範囲 を参照してください。
19.1.4. wildfly-config.xml ファイルを使用したリモーティングクライアント設定
urn:jboss-remoting:5.0 ネームスペースにある endpoint 要素を使用すると、wildfly-config.xml ファイルを使用してリモーティングクライアントを設定できます。ここでは、この要素を使用したリモーティングの設定方法について説明します。
endpoint 要素および属性
endpoint 要素には、任意で以下の 2 つのトップレベル子要素と、それらの子要素を含めることができます。
さらに、以下の属性があります。
| 属性名 | 属性の説明 |
|---|---|
| name | エンドポイント名。この属性は任意です。指定がない場合、可能であればエンドポイント名はシステムのホスト名から派生します。 |
providers-
これは任意の要素で、リモートエンドポイントのトランスポートプロバイダーを指定します。任意の数の
providerを含めることができます。
providerこの要素は、リモートトランスポートプロバイダーを定義します。この要素は以下の属性を持ちます。
属性名 属性の説明 scheme
このプロバイダーに対応するプライマリー URI スキーム。この属性は必須です。
aliases
このプロバイダーに対しても認識される他の URI スキーム名のスペース区切りリスト。この属性は任意です。
module
プロバイダー実装が含まれるモジュールの名前。この属性は任意です。指定がない場合は、JBoss Remoting をロードするクラスローダーがプロバイダークラスを検索します。
class
トランスポートプロバイダーを実装するクラスの名前。この属性は任意です。指定がない場合は、プロバイダークラスの検索に
java.util.ServiceLoaderファシリティーが使用されます。
connections-
これは任意の要素で、リモートエンドポイントの接続を指定します。任意の数の
connection要素を含めることができます。
connectionこの要素は、リモートエンドポイントの接続を定義します。この要素は以下の属性を持ちます。
属性名 属性の説明 destination
エンドポイントの宛先 URI。この属性は必須です。
read-timeout
対応するソケットの読み取り操作に対するタイムアウト値 (秒単位)。この属性は任意ですが、
heartbeat-intervalが定義されている場合のみ指定してください。write-timeout
書き込み操作に対するタイムアウト値 (秒単位)。この属性は任意ですが、
heartbeat-intervalが定義されている場合のみ指定してください。ip-traffic-class
この接続のトラフィックに使用する数値の IP トラフィッククラスを定義します。この属性は任意です。
tcp-keepalive
TCP キープアライブを使用するかどうかを決定するブール値設定。この属性は任意です。
heartbeat-interval
接続ハートビートのチェック時に使用する間隔 (ミリ秒単位)。この属性は任意です。
wildfly-config.xml ファイルのリモートクライアント設定例
以下は、wildfly-config.xml ファイルを使用してリモーティングクライアントを設定する例になります。
<configuration>
...
<endpoint xmlns="urn:jboss-remoting:5.0">
<connections>
<connection destination="remote+http://10.20.30.40:8080" read-timeout="50" write-timeout="50" heartbeat-interval="10000"/>
</connections>
</endpoint>
...
</configuration>19.1.5. wildfly-config.xml ファイルを使用したデフォルトの XNIO ワーカー設定
urn:xnio:3.5 ネームスペースにある worker 要素を使用すると、wildfly-config.xml ファイルを使用して XNIO ワーカーを設定できます。ここでは、この要素を使用して XNIO ワーカークライアントを設定する方法を説明します。
worker 要素および属性
worker 要素には、任意で以下のトップレベル子要素とそれらの子要素を含むことが可能です。
daemon-threadsこれは任意の要素で、ワーカーおよびタスクスレッドがデーモンスレッドであるべきかどうかを指定します。この要素の内容はありません。この要素には以下の属性があります。
属性名 属性の説明 value
ワーカーおよびタスクスレッドがデーモンスレッドであるべきかどうかを指定するブール値。
trueの値はワーカーおよびタスクスレッドがデーモンスレッドであるべきであることを示します。falseの場合は、デーモンスレッドであるべきでないことを示します。この属性は必須です。この要素の指定がない場合、
trueの値が想定されます。
worker-nameこの要素はワーカーの名前を定義します。ワーカー名は、スレッドダンプと Jakarta Management に表示されます。この要素の内容はありません。この要素には以下の属性があります。
属性名 属性の説明 value
ワーカーの名前。この属性は必須です。
pool-sizeこれは任意の要素で、ワーカーのタスクスレッドプールの最大サイズを定義します。この要素の内容はありません。この要素には以下の属性があります。
属性名 属性の説明 max-threads
作成するスレッドの最大数を指定する正の整数。この属性は必須です。
task-keepaliveこれはオプションの要素で、タスクスレッドが期限切れになる前にキープアライブの時間を指定します。この要素には以下の属性があります。
属性名 属性の説明 value
アイドル状態のスレッドを保持する最小期間を秒数で指定する正の整数。この属性は必須です。
io-threadsこれは任意の要素で、維持する I/O セレクタースレッドの数を決定します。通常この数は、利用可能なコアの数の倍数で、小さな定数になります。この要素には以下の属性があります。
属性名 属性の説明 value
I/O スレッドの数を指定する正の整数。この属性は必須です。
stack-sizeこれは任意の要素で、ワーカースレッドの最低スレッドスタックサイズを指定します。この要素は、密度が非常に高い特殊な状態のみで定義する必要があります。この要素には以下の属性があります。
属性名 属性の説明 value
要求されたスタックサイズをバイト単位で指定する正の整数。この属性は必須です。
outbound-bind-addresses-
これは任意の要素で、アウトバウンド接続に使用するバインドアドレスを指定します。各バインドアドレスマッピングは、宛先 IP アドレスブロックと、そのブロック内の宛先への接続に使用するバインドアドレスおよびオプションのポート番号で設定されます。任意の数の
bind-address要素を含めることができます。
bind-addressこれは任意の要素で、個別のバインドアドレスマッピングを定義します。この要素は以下の属性を持ちます。
属性名 属性の説明 match
照合する CIDR 表記の IP アドレスブロック。
bind-address
アドレスブロックが一致した場合にバインドする IP アドレス。この属性は必須です。
bind-port
アドレスブロックが一致した場合にバインドするポート番号。この値のデフォルトは
0で、任意のポートにバインドします。この属性は任意です。
wildfly-config.xml ファイルの XNIO ワーカー設定例
以下は、wildfly-config.xml ファイルを使用してデフォルトの XNIO ワーカーを設定する方法の例になります。
<configuration>
...
<worker xmlns="urn:xnio:3.5">
<io-threads value="10"/>
<task-keepalive value="100"/>
</worker>
...
</configuration>