第18章 クライアントの設定
18.1. wildfly-config.xml ファイルを使用したクライアント設定
EJB や naming などの JBoss EAP クライアントライブラリーは、リリース 7.1 まで異なる設定ストラテジーを使用していました。サーバー設定と似た方法で、すべてのクライアント設定を 1 つの設定ファイルに統合するため、JBoss EAP 7.1 には wildfly-config.xml
ファイルが導入されました。
以下の表は、JBoss EAP の wildfly-config.xml
ファイルを使用して実現できるクライアント設定および設定タイプと、リファレンススキーマリンクを示しています。
クライアント設定 | スキーマの場所 / 設定情報 |
---|---|
認証クライアント |
スキーマリファレンスは、 スキーマは、http://www.jboss.org/schema/jbossas/elytron-client-1_2.xsd にも公開されています。 |
詳細と設定例は、「 詳細は、JBoss EAP『How to Configure Identity Management』の「Configure Client Authentication with Elytron Client」を参照してください。 | |
EJB クライアント |
スキーマリファレンスは、 スキーマは http://www.jboss.org/schema/jbossas/wildfly-client-ejb_3_0.xsd にも公開されます。 |
詳細と設定例は、「 その他の簡単な例は、JBoss EAP『移行ガイド』の「EJB クライアントの 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 にも公開されています。 |
詳細と設定例は、「 |
18.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『How to Configure Server Security』の「sasl-mechanism-selector Grammar
」を参照してください。
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『How to Configure Server Security』の「client-ssl-context Attributes」の表を参照してください。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
18.1.2. wildfly-config.xml ファイルを使用した EJB クライアント設定
urn:jboss:wildfly-client-ejb:3.0
ネームスペースにある jboss-ejb-client
要素を使用し、wildfly-config.xml
ファイルを使用すると、EJB クライアント接続、グローバルインターセプター、および呼び出しのタイムアウトを設定できます。ここでは、この要素を使用した EJB クライアントの設定方法について説明します。
jboss-ejb-client 要素および属性
jboss-ejb-client
要素には、任意で以下の 3 つのトップレベル子要素と、それらの子要素を含めることができます。
invocation-timeout
これは任意の要素で、EJB 呼び出しのタイムアウトを指定します。この要素には以下の属性があります。
属性名 属性の説明 seconds
EJB ハンドシェイクまたはメソッド呼び出しのリクエストと応答のサイクルに対するタイムアウト値 (秒単位)。必須の属性です。
メソッドの実行時間がタイムアウトの時間よりも長くなった場合、呼び出しによって
jboss-ejb-client
が発生しますが、サーバー側は中断されません。
global-interceptors
-
これは任意の要素で、グローバル EJB クライアントインターセプターを指定します。任意の数の
interceptor
要素を含めることができます。
interceptor
この要素は、EJB クライアント接続を指定するために使用されます。この要素は以下の属性を持ちます。
属性名 属性の説明 class
org.jboss.ejb.client.EJBClientInterceptor
インターフェースを実装するクラスの名前。必須の属性です。module
インターセプタークラスのロードに使用されるモジュールの名前。この属性は任意です。
connections
-
この要素は、EJB クライアント接続を指定するために使用されます。任意の数の
connection
要素を含めることができます。
connection
この要素は、EJB クライアント接続を指定するために使用されます。任意で
interceptors
要素を含めることができます。この要素には以下の属性があります。属性名 属性の説明 uri
接続の宛先 URI。必須の属性です。
interceptors
-
この要素は、EJB クライアントインターセプターを指定するために使用されます。任意の数の
interceptor
要素を含めることができます。
wildfly-config.xml
ファイルの EJB クライアント設定例
以下は、wildfly-config.xml
ファイルの jboss-ejb-client
要素を使用して、EJB クライアント、グローバルインターセプター、および呼び出しタイムアウトを設定する例になります。
<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>
18.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 カスタマーポータルの「テクノロジプレビュー機能のサポート範囲」を参照してください。
18.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>
18.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
この要素はワーカーの名前を定義します。ワーカー名はスレッドダンプおよび JMX に表示されます。この要素の内容はありません。この要素には以下の属性があります。
属性名 属性の説明 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>