Red Hat Training

A Red Hat training course is available for Red Hat JBoss Enterprise Application Platform

第18章 クライアントの設定

18.1. wildfly-config.xml ファイルを使用したクライアント設定

EJB や naming などの JBoss EAP クライアントライブラリーは、リリース 7.1 まで異なる設定ストラテジーを使用していました。サーバー設定と似た方法で、すべてのクライアント設定を 1 つの設定ファイルに統合するため、JBoss EAP 7.1 には wildfly-config.xml ファイルが導入されました。

以下の表は、JBoss EAP 7.1 の wildfly-config.xml ファイルを使用して実現できるクライアント設定および設定タイプと、リファレンススキーマリンクを示しています。

クライアント設定スキーマの場所 / 設定情報

認証クライアント

スキーマリファレンスは、EAP_HOME/docs/schema/elytron-1_0_1.xsd の製品インストールに提供されます。

スキーマは、http://www.jboss.org/schema/jbossas/elytron-1_0_1.xsd にも公開されています。

詳細と設定例については、「wildfly-config.xml ファイルを使用したクライアント認証設定」を参照してください。

詳細は、JBoss EAP『How to Configure Identity Management』の「Configure Client Authentication with Elytron Client」を参照してください。

EJB クライアント

スキーマリファレンスは、 EAP_HOME/docs/schema/wildfly-client-ejb_3_0.xsd の製品インストールに提供されます。

スキーマは http://www.jboss.org/schema/jbossas/wildfly-client-ejb_3_0.xsd にも公開されます。

詳細と設定例については、「wildfly-config.xml ファイルを使用した EJB クライアント設定」を参照してください。

その他の簡単な例は、JBoss EAP『Migration Guide』の「Migrate an EJB Client to Elytron」を参照してください。

HTTP クライアント

スキーマリファレンスは、EAP_HOME/docs/schema/wildfly-http-client_1_0.xsd の製品インストールに提供されます。

スキーマは http://www.jboss.org/schema/jbossas/wildfly-http-client_1_0.xsd にも公開されます。

注記

この機能はテクノロジープレビューとしてのみ提供されます。

詳細と設定例については、「wildfly-config.xml ファイルを使用した HTTP クライアント設定」を参照してください。

リモーティングクライアント

スキーマリファレンスは EAP_HOME/docs/schema/jboss-remoting_5_0.xsd の製品インストールに提供されます。

スキーマは、http://www.jboss.org/schema/jbossas/jboss-remoting_5_0.xsd にも公開されています。

詳細と設定例については、「wildfly-config.xml ファイルを使用したリモーティングクライアント設定」を参照してください。

XNIO ワーカークライアント

スキーマリファレンスは、EAP_HOME/docs/schema/xnio_3_5.xsd の製品インストールに提供されます。

スキーマは、http://www.jboss.org/schema/jbossas/xnio_3_5.xsd にも公開されています。

詳細と設定例については、「wildfly-config.xml ファイルを使用したデフォルトの XNIO ワーカー設定」を参照してください。

18.1.1. wildfly-config.xml ファイルを使用したクライアント認証設定

urn:elytron:1.0.1 ネームスペースにある authentication-client 要素を使用すると、wildfly-config.xml ファイルを使用してクライアント認証を設定できます。ここでは、この要素を使用したクライアント認証の設定方法について説明します。

authentication-client 要素および属性

authentication-client 要素には、任意で以下のトップレベル子要素とそれらの子要素を含むことが可能です。

credential-stores

この任意の要素は、設定内でクレデンシャルを埋め込む代わりに、設定内の他の場所から参照されるクレデンシャルストアを定義します。

任意数の credential-store 要素を含むことができます。

例: credential-stores 設定

<configuration>
  <authentication-client xmlns="urn:elytron:1.0.1">
    <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 つまたは複数のクレデンシャルを含むことができます。

It can contain one or more of the following child elements, which are dependent on the credential store implementation:

例: 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 7.1 の認証メカニズムによって 現在使用されていません。キーストアへの参照を定義します。

この要素は以下の属性を持ちます。

属性名属性の説明

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 7.1 の認証メカニズムによって 現在使用されていません。パブリックキーとプライベートキーのペアを定義します。

これには、以下の子要素を含めることができます。

public-key-pem
この要素は、JBoss EAP 7.1 の認証メカニズムによって 現在使用されていません。EPM エンコードのパブリックキーを定義します。
private-key-pem
この要素は、PEM エンコードのプライベートキーを定義します。
certificate

この要素は、JBoss EAP 7.1 の認証メカニズムによって 現在使用されていません。証明書を指定します。

この要素は以下の属性を持ちます。

属性名属性の説明

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:1.0.1">
    <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

The name of the resource.

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:1.0.1">
    ...
    <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:1.0.1">
    <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

この要素は、認証された呼び出しのホスト名をオーバーライドします。

これには以下の属性があります。

属性名属性の説明

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 つまたは複数のクレデンシャルを定義します。

It can contain one or more of the following child elements, which are dependent on the credential store implementation:

これらは、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.ElytronAuthenticatorjava.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:1.0.1">
    <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 コンテキスト定義を定義します。

<configuration>
  <authentication-client xmlns="urn:elytron:1.0.1">
    <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」の表を参照してください。
provider-name
使用できるプロバイダーの特定後、この要素で定義された名前を持つプロバイダーのみが使用されます。
certificate-revocation-list

この要素は、証明書失効リストへのパスと、証明書パスに存在可能な自己発行でない中間証明書の最大数の両方を定義します。この要素が存在する場合、ピア証明書を証明書失効リストと照合することができます。

この要素は以下の属性を持ちます。

属性名属性の説明

path

証明書リストへのパス。この属性は任意です。

maximum-cert-path

証明書パスに存在可能な自己発行でない中間証明書の最大数。この属性は任意です。

providers

この要素は、必要時に java.security.Provider インスタンスを探す方法を定義します。

これには、以下の子要素を含めることができます。

authentication-client の設定セクションはお互いに独立しているため、この要素は以下の場所に設定できます。

例: providers 設定の場所

<configuration>
  <authentication-client xmlns="urn:elytron:1.0.1">
    <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 7.1 の認証メカニズムによって現在使用されていない要素

The following child elements of the credentials element in the Elytron client configuration are not currently used by any authentication mechanisms in JBoss EAP. They can be used in your own custom implementations of authentication mechanism; however, they are not supported.

  1. key-pair
  2. public-key-pem
  3. key-store-reference
  4. 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>