付録A リファレンス資料
A.1. 提供される Undertow ハンドラー
ハンドラーの完全リストは、お使いの JBoss EAP インストールの Undertow コアと一致するバージョンの Undertow コアのソース JAR ファイルを確認してください。Undertow コアのソース JAR ファイルは JBoss EAP Maven リポジトリー からダウンロードでき、利用できるハンドラーは /io/undertow/server/handlers/
ディレクトリーで参照できます。
現在の JBoss EAP インストールで使用されている Undertow コアのバージョンを確認するには、JBoss EAP サーバーの起動中に出力される、以下と似た INFO
メッセージを server.log
ファイルで検索します。
INFO [org.wildfly.extension.undertow] (MSC service thread 1-1) WFLYUT0003: Undertow 1.4.18.Final-redhat-1 starting
AccessControlListHandler
クラス名: io.undertow.server.handlers.AccessControlListHandler
名前: access-control
リモートピアの属性に基づいて要求を受諾または拒否できるハンドラー。
名前 | 説明 |
---|---|
acl | ACL ルール。このパラメーターは必須です。 |
attribute | Exchange 属性文字列。このパラメーターは必須です。 |
default-allow |
ハンドラーがデフォルトで要求を受諾または拒否するかどうかを指定するブール値。デフォルトは |
AccessLogHandler
クラス名: io.undertow.server.handlers.accesslog.AccessLogHandler
名前: access-log
アクセスログハンドラー。このハンドラーは、提供された書式文字列に基づいてアクセスログメッセージを生成し、提供された AccessLogReceiver
にそれらのメッセージを渡します。
このハンドラーは、ExchangeAttribute
メカニズムにより提供されたすべての属性をログに記録できます。
このファクトリーは、以下のパターンのトークンハンドラーを生成します。
パターン | 説明 |
---|---|
%A | リモート IP アドレス |
%A | ローカル IP アドレス |
%b |
送信済みバイト数 (HTTP ヘッダーまたは |
%B | 送信済みバイト数 (HTTP ヘッダーを除く) |
%h | リモートホスト名 |
%H | 要求プロトコル |
%l |
|
%m | 要求メソッド |
%p | ローカルポート |
%q |
クエリー文字列 ( |
%r | 要求の最初の行 |
%s | 応答の HTTP ステータスコード |
%t | Common Log Format 形式の日時 |
%u | 認証されたリモートユーザー |
%U | 要求された URL パス |
%v | ローカルサーバー名 |
%D | 要求を処理するのにかかった時間 (ミリ秒単位) |
%T | 要求を処理するのにかかった時間 (秒単位) |
%I | 現在の要求スレッド名 (後でスタックトレースと比較できます) |
common |
|
combined |
|
クッキー、受信ヘッダー、またはセッションから情報を書き込むこともできます。
Apache 構文に基づきます。
-
%{i,xxx}
(受信ヘッダーの場合) -
%{o,xxx}
(送信応答ヘッダーの場合) -
%{c,xxx}
(特定のクッキーの場合) -
%{r,xxx}
(xxx
はServletRequest
の属性) -
%{s,xxx}
(xxx
はHttpSession
の属性)
名前 | 説明 |
---|---|
format | ログメッセージを生成するために使用する形式。これはデフォルトパラメーターです。 |
AllowedMethodsHandler
特定の HTTP メソッドのホワイトリストに登録するハンドラー。許可されたメソッドセットの 1 つを持つリクエストのみが許可されます。
クラス名: io.undertow.server.handlers.AllowedMethodsHandler
名前: allowed-methods
名前 | 説明 |
---|---|
methods |
許可されるメソッド ( |
BlockingHandler
ブロック要求を開始する HttpHandler。スレッドが現在 I/O スレッドで実行されている場合、スレッドはディスパッチされます。
クラス名: io.undertow.server.handlers.BlockingHandler
名前: blocking
このハンドラーにはパラメーターがありません。
ByteRangeHandler
範囲要求のハンドラー。これは、修正されたコンテンツの長さのリソース (たとえば、content-length
ヘッダーが設定されたリソース) に対する範囲要求を処理できる汎用ハンドラーです。コンテンツすべてが生成され、破棄されるため、これは必ずしも範囲要求を処理する最も効率的な方法ではありません。現時点では、このハンドラーは単純な単一の範囲要求しか処理できません。複数の範囲が要求された場合は、Range
ヘッダーが無視されます。
クラス名: io.undertow.server.handlers.ByteRangeHandler
名前: byte-range
名前 | 説明 |
---|---|
send-accept-ranges | 承認範囲を送信するかどうかを決定するブール値。これはデフォルトパラメーターです。 |
CanonicalPathHandler
このハンドラーは、相対パスを正規のパスに変換します。
クラス名: io.undertow.server.handlers.CanonicalPathHandler
名前: canonical-path
このハンドラーにはパラメーターがありません。
DisableCacheHandler
ブラウザーおよびプロキシーによる応答キャッシュを無効にするハンドラー。
クラス名: io.undertow.server.handlers.DisableCacheHandler
名前: disable-cache
このハンドラーにはパラメーターがありません。
DisallowedMethodsHandler
特定の HTTP メソッドをブラックリストに登録するハンドラー。
クラス名: io.undertow.server.handlers.DisallowedMethodsHandler
名前: disallowed-methods
名前 | 説明 |
---|---|
methods |
許可しないメソッド (たとえば、 |
EncodingHandler
このハンドラーは、コンテンツのエンコーディング実装の基礎となります。このハンドラーに委譲するものとして、エンコーディングハンドラーが、指定されたサーバー側の優先度で追加されます。
正しいハンドラーを決定するために q
値が使用されます。q
値なしで要求が行われた場合、サーバーは使用するエンコーディングとして最も優先度が高いハンドラーを選択します。
一致するハンドラーがない場合は、ID エンコーディングが選択されます。q
値が 0
であるため、ID エンコーディングが特別に許可されない場合は、ハンドラーにより応答コード 406 (Not Acceptable)
が設定され、返されます。
クラス名: io.undertow.server.handlers.encoding.EncodingHandler
名前: compress
このハンドラーにはパラメーターがありません。
FileErrorPageHandler
エラーページとして使用するファイルをディスクから提供するハンドラー。このハンドラーはデフォルトで応答コードを提供しません。応答コードは設定する必要があります。
クラス名: io.undertow.server.handlers.error.FileErrorPageHandler
名前: error-file
名前 | 説明 |
---|---|
file | エラーページとして使用するファイルの場所。 |
response-codes | 定義されたエラーページファイルにリダイレクトする応答コードのリスト。 |
HttpTraceHandler
HTTP トレース要求を処理するハンドラー。
クラス名: io.undertow.server.handlers.HttpTraceHandler
名前: trace
このハンドラーにはパラメーターがありません。
IPAddressAccessControlHandler
リモートピアの IP アドレスに基づいて要求を受諾または拒否できるハンドラー。
クラス名: io.undertow.server.handlers.IPAddressAccessControlHandler
名前: ip-access-control
名前 | 説明 |
---|---|
acl | アクセス制御リストを表す文字列。これはデフォルトパラメーターです。 |
failure-status | 拒否された要求で返されるステータスコードを表す文字列。 |
default-allow | デフォルトで許可するかしないかを表すブール値。 |
JDBCLogHandler
クラス名: io.undertow.server.handlers.JDBCLogHandler
名前: jdbc-access-log
名前 | 説明 |
---|---|
format |
JDBC ログパターンを指定します。デフォルト値は |
datasource | ログするデータソースの名前。このパラメーターは必須であり、デフォルトパラメーターです。 |
tableName | テーブル名。 |
remoteHostField | リモートホストアドレス。 |
userField | ユーザー名。 |
timestampField | タイムスタンプ。 |
virtualHostField | VirtualHost。 |
methodField | メソッド。 |
queryField | クエリー。 |
statusField | ステータス。 |
bytesField | バイト数。 |
refererField | 参照元。 |
userAgentField | UserAgent。 |
LearningPushHandler
ブラウザーが要求するリソースのキャッシュを構築し、サーバープッシュを使用してリソースをプッシュ (サポートされている場合) するハンドラー。
クラス名: io.undertow.server.handlers.LearningPushHandler
名前: learning-push
名前 | 説明 |
---|---|
max-age | キャッシュエントリーの最大期間を表す整数。 |
max-entries | キャッシュエントリーの最大数を表す整数。 |
LocalNameResolvingHandler
DNS ルックアップを実行してローカルアドレスを解決するハンドラー。フロントエンドサーバーが X-forwarded-host
ヘッダーを送信した場合、または AJP が使用中の場合は、未解決のローカルアドレスが作成されることがあります。
クラス名: io.undertow.server.handlers.LocalNameResolvingHandler
名前: resolve-local-name
このハンドラーにはパラメーターがありません。
PathSeparatorHandler
URL のスラッシュでない区切り文字をスラッシュに変換するハンドラー。一般的に、Windows システムではバックスラッシュはスラッシュに変換されます。
クラス名: io.undertow.server.handlers.PathSeparatorHandler
名前: path-separator
このハンドラーにはパラメーターがありません。
PeerNameResolvingHandler
リバース DNS ルックアップを実行してピアアドレスを解決するハンドラー。
クラス名: io.undertow.server.handlers.PeerNameResolvingHandler
名前: resolve-peer-name
このハンドラーにはパラメーターがありません。
ProxyPeerAddressHandler
X-Forwarded-For
ヘッダーの値にピアアドレスを設定するハンドラー。これは、このヘッダーを常に設定するプロキシーの背後でのみ使用してください。 そのように使用しないと、攻撃者がピアアドレスを偽造することがあります。
クラス名: io.undertow.server.handlers.ProxyPeerAddressHandler
名前: proxy-peer-address
このハンドラーにはパラメーターがありません。
RedirectHandler
302
リダイレクトを使用して、指定された場所にリダイレクトするリダイレクトハンドラー。場所は exchange 属性文字列として指定されます。
クラス名 io.undertow.server.handlers.RedirectHandler
名前: redirect
名前 | 説明 |
---|---|
value | リダイレクトの宛先。これはデフォルトパラメーターです。 |
RequestBufferingHandler
すべての要求データをバッファーするハンドラー。
クラス名: io.undertow.server.handlers.RequestBufferingHandler
名前: buffer-request
名前 | 説明 |
---|---|
buffers | バッファーの最大数を定義する整数。これはデフォルトパラメーターです。 |
RequestDumpingHandler
exchange をログにダンプするハンドラー。
クラス名: io.undertow.server.handlers.RequestDumpingHandler
名前: dump-request
このハンドラーにはパラメーターがありません。
RequestLimitingHandler
同時リクエストの最大数を制限するハンドラー。この制限を超えたリクエストは、前のリクエストが完了するまでブロックされます。
クラス名: io.undertow.server.handlers.RequestLimitingHandler
名前: request-limit
名前 | 説明 |
---|---|
requests | 同時リクエストの最大数を表す整数。これはデフォルトパラメーターであり、必須です。 |
ResourceHandler
リソースを提供するハンドラー。
クラス名: io.undertow.server.handlers.resource.ResourceHandler
名前: resource
名前 | 説明 |
---|---|
location | リソースの場所。これはデフォルトパラメーターであり、必須です。 |
allow-listing | ディレクトリーのリストを許可するかどうかを決定するブール値。 |
ResponseRateLimitingHandler
設定された数のバイト/時間にダウンロードレートを制限するハンドラー。
クラス名: io.undertow.server.handlers.ResponseRateLimitingHandler
名前: response-rate-limit
名前 | 説明 |
---|---|
bytes | ダウンロードレートを制限するバイトの数。このパラメーターは必須です。 |
time | ダウンロードレートを制限する時間 (秒単位)。このパラメーターは必須です。 |
SetHeaderHandler
修正された応答ヘッダーを設定するハンドラー。
クラス名: io.undertow.server.handlers.SetHeaderHandler
名前: header
名前 | 説明 |
---|---|
header | ヘッダー属性の名前。このパラメーターは必須です。 |
value | ヘッダー属性の値。このパラメーターは必須です。 |
SSLHeaderHandler
以下のヘッダーに基づいて接続の SSL 情報を設定するハンドラー。
- SSL_CLIENT_CERT
- SSL_CIPHER
- SSL_SESSION_ID
このハンドラーがチェーンに存在する場合は、これらのヘッダーが存在しなくても SSL セッション情報が常に上書きされます。
このハンドラーは、リクエストごとに常にヘッダーを指定するよう設定されている、あるいはSSL 情報が存在しない場合に、これらの名前を持つ既存のヘッダーを削除するように設定されている、リバースプロキシーの背後にあるサーバー上でのみ使用する必要があります。このように使用しないと、悪意のあるクライアントが SSL 接続を偽装できる可能性があります。
クラス名: io.undertow.server.handlers.SSLHeaderHandler
名前: ssl-headers
このハンドラーにはパラメーターがありません。
StuckThreadDetectionHandler
このハンドラーは処理に時間がかかるリクエストを検出します (処理中のスレッドが停止していることを示すことがあります)。
クラス名: io.undertow.server.handlers.StuckThreadDetectionHandler
名前: stuck-thread-detector
名前 | 説明 |
---|---|
threshhold |
リクエストを処理する時間のしきい値を決定する整数値 (秒単位)。デフォルト値は |
URLDecodingHandler
指定された文字セットに URL およびクエリーパラメーターをデコードするハンドラー。このハンドラーを使用している場合は、UndertowOptions.DECODE_URL パラメーターを false
に設定する必要があります。
これはパーサーの組み込み UTF-8 デコーダーを使用する場合よりも効率的ではありません。UTF-8 以外の文字セットにデコードする必要がない限り、パーサーのデコードを使用してください。
クラス名: io.undertow.server.handlers.URLDecodingHandler
名前: url-decoding
名前 | 説明 |
---|---|
charset | デコードする文字セット。これはデフォルトパラメーターであり、必須です。 |
A.2. 永続ユニットプロパティー
永続ユニット定義は、persistence.xml
ファイルから設定できる以下のプロパティーをサポートします。
プロパティー | 説明 |
---|---|
jboss.as.jpa.providerModule |
永続プロバイダーモジュールの名前。デフォルトは |
jboss.as.jpa.adapterModule | JBoss EAP が永続プロバイダーと動作するようにする統合クラスの名前。 |
jboss.as.jpa.adapterClass | 統合アダプターのクラス名。 |
jboss.as.jpa.managed |
コンテナー管理の Jakarta Persistence の永続ユニットへのアクセスを無効にするには |
jboss.as.jpa.classtransformer |
永続ユニットのクラストランスフォーマーを無効にするには
クラスのトランスフォームを有効にするには、Hibernate の永続ユニットプロパティー |
jboss.as.jpa.scopedname |
使用されるアプリケーションスコープの修飾永続ユニット名を指定します。デフォルトでは、アプリケーション名と永続ユニット名の組み合わせに設定されます。 |
jboss.as.jpa.deferdetach |
非 Jakarta Transactions トランザクションスレッドで使用されるトランザクションスコープの永続コンテキストが各 |
wildfly.jpa.default-unit |
アプリケーションのデフォルトの永続ユニットを選択する場合は |
wildfly.jpa.twophasebootstrap |
永続プロバイダーを使用すると、2 フェーズ永続ユニットブートストラップが可能になり、Jakarta Persistence の Contexts および Dependency Injection との統合が改善されます。 |
wildfly.jpa.allowdefaultdatasourceuse |
永続ユニットがデフォルトのデータソースを使用しないようにするには、 |
wildfly.jpa.hibernate.search.module |
クラスパスに含まれる Hibernate Search のバージョンを制御します。デフォルトは |
A.3. ポリシープロバイダープロパティー
プロパティー | 説明 |
---|---|
custom-policy | カスタムのポリシープロバイダー定義。 |
jacc-policy | Jakarta Authorization および関連サービスを設定するポリシープロバイダー定義。 |
プロパティー | 説明 |
---|---|
class-name |
ポリシープロバイダーを参照する |
module | プロバイダーのロード元となるモジュールの名前。 |
プロパティー | 説明 |
---|---|
policy |
ポリシープロバイダーを参照する |
configuration-factory |
ポリシー設定ファクトリープロバイダーを参照する |
module | プロバイダーのロード元となるモジュールの名前。 |
A.4. JBoss EAP と対応する Jakarta EE 仕様に関連する Java EE 仕様
JBoss EAP 7.4 では、主に Jakarta EE 仕様のサポートに移行されました。しかし、JBoss EAP 7.4 は特定の Java EE 仕様をサポートします。
Java EE 8 仕様 | Java EE 8 省略形 | Jakarta EE 8 仕様 |
---|---|---|
Java Servlet | Jakarta Servlet | |
JavaServer Faces | JSF | Jakarta Server Faces |
Java API for WebSocket | Jakarta WebSocket | |
Concurrency Utilities for Java EE | Jakarta Concurrency | |
Interceptors | Jakarta Interceptors | |
Java Authentication Service Provider Interface for Containers | JASPIC | Jakarta Authentication |
Java Authorization Contract for Containers | JACC | Jakarta Authorization |
Java EE Security API | Jakarta Security | |
Java Message Service | JMS | Jakarta Messaging |
Java Persistence API | JPA | Jakarta Persistence |
Java Transaction API | JTA | Jakarta Transactions |
Batch Applications for the Java Platform | JBatch | Jakarta Batch |
JavaMail API | Jakarta Mail | |
Java EE Connector Architecture | JCA | Jakarta Connectors |
Common Annotations for Java Platform | Jakarta Annotations | |
JavaBeans Activation Framework | JAF | Jakarta Activation |
Bean Validation | JBV | Jakarta Bean Validation |
Expression Language | JEL | Jakarta Expression Language |
Enterprise JavaBeans 3.2 | EJB | Jakarta Enterprise Beans |
Java Architecture for XML Binding | JAXB | JAXB |
Java API for JSON Binding | JSON-B | Jakarta JSON Binding |
JavaServer Pages | JSP | Jakarta Server Pages |
Java API for XML-Based Web Services | JAX-WS | Jakarta XML Web Services |
Java API for RESTful Web Services | JAX-RS | Jakarta RESTful Web Services |
JavaServer Pages Standard Tag Library | JSTL | Jakarta Standard Tag Library |
Contexts and Dependency Injections | CDI | Jakarta Contexts and Dependency Injection |
Java API for JSON Processing | JSON-P | Jakarta JSON Processing |
Java API for XML-Based RPC | JAX-RPC | Jakarta XML RPC |
Java API for XML Registries | JAXR | Jakarta XML Registries |
A.5. Jakarta EE プロファイルおよびテクノロジーリファレンス
以下の表では Jakarta EE テクノロジーとカテゴリーごとに表し、これらかが Web Profile または Full Platform プロファイルに含まれているかどうかを記載しています。
仕様は、「Jakarta EE Specification」を参照してください。
テクノロジー | Web Profile | Full Platform |
---|---|---|
Jakarta WebSocket 1.1 | ✔ | ✔ |
Jakarta JSON Binding 1.0 | ✔ | ✔ |
Jakarta JSON Processing 1.1 | ✔ | ✔ |
Jakarta Servlet 4.0 | ✔ | ✔ |
Jakarta Server Faces 2.3 | ✔ | ✔ |
Jakarta Expression Language 3.0 | ✔ | ✔ |
Jakarta Server Pages 2.3 | ✔ | ✔ |
Jakarta Standard Tag Library 1.2 1 | ✔ | ✔ |
1 Jakarta Standard Tag Library 情報:
JBoss EAP には既知のセキュリティーリスクが存在します。Jakarta Standard Tag Library が信頼できない XML ドキュメントにおける外部エンティティー参照の処理を許可するため、ホストシステム上のリソースへアクセスし、任意コードが実行される可能性があります。
このリスクを回避するには、通常空の文字列を値として適切に設定されたシステムプロパティー org.apache.taglibs.standard.xml.accessExternalEntity
を使用して JBoss EAP サーバーを実行する必要があります。これを行う方法は 2 つあります。
システムプロパティーを設定してサーバーを再起動する。
org.apache.taglibs.standard.xml.accessExternalEntity
-
-Dorg.apache.taglibs.standard.xml.accessExternalEntity=""
を引数としてstandalone.sh
またはdomain.sh
スクリプトに渡す。
テクノロジー | Web Profile | Full Platform |
---|---|---|
Jakarta Batch 1.0 | ✔ | |
Jakarta Concurrency 1.0 | ✔ | |
Jakarta Contexts and Dependency Injection 2.0 | ✔ | ✔ |
Jakarta Contexts and Dependency Injection 1.0 | ✔ | ✔ |
Jakarta Bean Validation 2.0 | ✔ | ✔ |
Jakarta Managed Beans 1.0 | ✔ | ✔ |
Jakarta Enterprise Beans 3.2 | ✔ | |
Jakarta Interceptors 1.2 | ✔ | ✔ |
Jakarta Connectors 1.7 | ✔ | |
Jakarta Persistence 2.2 | ✔ | ✔ |
Jakarta Annotations 1.3 | ✔ | |
Jakarta Messaging 2.0 | ✔ | |
Jakarta Transactions 1.2 | ✔ | ✔ |
Jakarta Mail 1.6 | ✔ |
テクノロジー | Web Profile | Full Platform |
---|---|---|
Jakarta RESTful Web Services 2.1 | ✔ | |
Jakarta Enterprise Web Services 1.3 | ✔ | |
Web Services Metadata for the Java Platform 2.1 | ✔ | |
Jakarta XML RPC 1.1 (任意) | ||
Jakarta XML Registries 1.0 (任意) |
テクノロジー | Web Profile | Full Platform |
---|---|---|
Jakarta Security 1.0 | ✔ | ✔ |
Jakarta Authentication 1.1 | ✔ | ✔ |
Jakarta Authorization 1.5 | ✔ | |
Jakarta Deployment 1.2 (任意) | ✔ | |
Jakarta Management 1.1 | ✔ | |
Jakarta Debugging Support for Other Languages 1.0 | ✔ |
Revised on 2021-05-17 08:56:25 CEST