1.3. 新機能、機能拡張、および技術的な変更


このセクションでは、Red Hat build of Quarkus 3.8 で導入された新機能、拡張機能、および技術的な変更を概説します。

1.3.1. コア

1.3.1.1. Java 21 のサポート

Java 17 もサポートされていますが、現在は Java 21 が推奨バージョンです。

1.3.1.2. Java 11 のサポートが削除される

この 3.8 リリースでは、バージョン 3.2 で非推奨となった Java 11 のサポートが削除されました。

1.3.1.3. Red Hat build of Quarkus に仮想スレッドのサポートが追加

仮想スレッド (VT) を備えた Red Hat build of Quarkus を使用すると、次のことが実現します。

  • 同時実行タスクの管理を強化し、スケーラビリティーとリソース効率を向上させます。
  • ブロックにかかるコストが安い仮想スレッドを使用してリソース効率を改善することで、命令型プログラミングモデルを強化します。
  • 同時実行モデルを簡素化し、コードベースのメンテナンスを効率化します。
  • スレッドコンテキスト切り替えのオーバーヘッドが削減され、レイテンシーが短縮され、スループットが向上します。
  • マルチコアプロセッサーの使用率が向上し、コンテキスト切り替えによる大きなペナルティなしに、より多くの同時タスクを実行できるようになります。
注記

仮想スレッドは Java 21 JVM でのみサポートされます。詳細は、Oracle Java Core Libraries Developer GuideVirtual Threads セクションおよび OpenJDK の JEP 444: Virtual Threads を参照してください。

仮想スレッドの制限:

  • キャリアースレッドを固定するライブラリーは、Java エコシステムが仮想スレッドの互換性を完全に採用するまで採用を遅らせる可能性があります。
  • 長時間の計算では、リソースの独占を防ぐために慎重な分析が必要です。
  • キャリアースレッドプールの弾力性により、メモリー消費量が増加する可能性があります。
  • スレッドローカルオブジェクトポーリングパターンは、割り当てとメモリー使用量に大きな影響を与える可能性があります。
  • 仮想スレッドは本質的にスレッドの安全性の問題を解決するものではないため、注意深い管理が必要です。

1.3.2. データ

1.3.2.1. Hibernate ORM のバージョン 6.4 へのアップグレード

Red Hat build of Quarkus 3.8 では、Hibernate Object-Relational Mapping (ORM) がバージョン 6.4 にアップグレードされます。

詳細は、以下を参照してください。

1.3.2.2. Hibernate Reactive は Agroal と連携して動作

Red Hat build of Quarkus 3.8 では、Hibernate Reactive は Agroal と共存できます。つまり、Hibernate Reactive を Object-Relational Mapping (ORM) として使用しながら、アプリケーションで Flyway または Liquibase を使用できます。

注記

Red Hat build of Quarkus には制限があり、同じアプリケーションで Hibernate ORM と Hibernate Reactive の両方を使用することはできません。

詳細は、Quarkus の Hibernate Reactive ガイドを参照してください。

1.3.2.3. Hibernate Reactive のバージョン 2.2 へのアップグレード

Red Hat build of Quarkus 3.8 では、Hibernate Reactive エクステンションがバージョン 2.2 にアップグレードされ、Hibernate ORM 6.4.0 と互換性があります。

重要

Hibernate Reactive エクステンションは、Red Hat build of Quarkus 3.8 のテクノロジープレビューとして利用できます。

詳細は、Hibernate Reactive 2.2.0 のドキュメントを参照してください。

1.3.2.4. Hibernate Search のバージョン 7.0 へのアップグレード

Red Hat build of Quarkus 3.8 では、Hibernate Search がバージョン 7.0 にアップグレードされます。

Hibernate Search は、Red Hat build of Quarkus アプリケーションにインデックス作成機能と全文検索機能を提供します。バージョン 7.0 では、機能強化、新機能、およびジオポイントフィールドのデフォルト設定に対するいくつかの注目すべき変更が導入されています。

詳細は、以前のバージョンとの互換性に影響する変更点 を参照してください。

Hibernate Search 7.0 の詳細は、次のリソースを参照してください。

1.3.2.5. 新しい OpenSearch Dev Service

Red Hat build of Quarkus 3.8 では、新しい OpenSearch Dev Service が導入されています。

Hibernate Search を使用する場合、Dev Services はデフォルトで、Hibernate Search 設定に基づいて Elasticsearch または OpenSearch を起動します。

OpenSearch を使用するように Dev Services を設定するには、次の設定を指定します。

quarkus.elasticsearch.devservices.distribution=opensearch

詳細は、Quarkus の「Dev Services for Elasticsearch」ガイドの イメージの設定 セクションを参照してください。

1.3.3. 可観測性

1.3.3.1. MeterRegistry を使用した Micrometer のカスタマイズ

Red Hat build of Quarkus 3.8 では、コンテキストおよび依存関係の注入 (CDI) Bean として実装された新しい MeterRegistryCustomizer インターフェイスを使用して、Micrometer をカスタマイズするさまざまな方法が導入されています。

Micrometer は次の方法でカスタマイズできます。

  • MeterFilter インスタンスを使用して、MeterRegistry インスタンスが発行するメトリクスをカスタマイズします。Micrometer エクステンションは MeterFilter CDI Bean を検出し、MeterRegistry インスタンスを初期化するときにそれらを使用します。
  • サーバーの HTTP リクエストに HttpServerMetricsTagsContributor を使用して。ユーザーコードは、io.quarkus.micrometer.runtime.HttpServerMetricsTagsContributor を実装する CDI Bean を提供することで、HTTP リクエストの詳細に基づいて任意のタグを提供できます。
  • メーターレジストリーを任意にカスタマイズする MeterRegistryCustomizer を使用して。ユーザーコードは、io.quarkus.micrometer.runtime.MeterRegistryCustomizer を実装する CDI Bean を提供することで、アクティブ化された任意の MeterRegistry の設定を変更できます。

詳細は、Quarkus の「Micrometer メトリクス」ガイドの Micrometer のカスタマイズ セクションを参照してください。

1.3.3.2. Micrometer @MeterTag がサポートされる

Micrometer は、メソッドに追加できる 2 つのアノテーション @Counted@Timed を定義します。

Red Hat build of Quarkus 3.8 では、Micrometer は @Counted および @Timed でアノテーションが付けられたメソッドのパラメーターに @MeterTag アノテーションを追加できます。

@MeterTag アノテーションは、io.micrometer.common.annotation パッケージの ValueResolver または ValueExpressionResolver リゾルバーを使用して、メソッドカウンターまたはタイマーに追加のタグ値を動的に割り当てます。

詳細は、Quarkus の Micrometer Metrics ガイドを参照してください。

1.3.3.3. Micrometer でサポートされる Netty メトリクス

Red Hat build of Quarkus 3.8 では、Micrometer メトリクスライブラリーからの Netty アロケーターメトリクスの収集のサポートが導入されています。

quarkus.micrometer.binder.netty.enabled プロパティーが導入され、Micrometer サポートも有効になっている場合に Netty メトリクスの収集が可能になります。

Netty アロケーターメトリクスは、Netty フレームワーク内のメモリー割り当てと使用状況に関する分析情報を提供します。これにより、Netty を使用する Red Hat build of Quarkus アプリケーションのパフォーマンスを把握するのに役立ちます。

以下のメトリクスが収集されます。

Expand
メトリクス説明

netty.allocator.memory.used

アロケーターが使用するメモリーのサイズ (バイト単位)

netty.allocator.memory.pinned

割り当てられたバッファーが使用するメモリーのサイズ (バイト単位)。

netty.allocator.pooled.arenas

プールされたアロケーターのアリーナの数

netty.allocator.pooled.cache.size

プールされたアロケーターのキャッシュのサイズ (バイト単位)

netty.allocator.pooled.threadlocal.caches

プールされたアロケーターの ThreadLocal キャッシュの数

netty.allocator.pooled.chunk.size

プールされたアロケーターのメモリーチャンクのサイズ (バイト単位)

netty.eventexecutor.tasks.pending

イベント実行者の保留中のタスクの数

Micrometer の詳細は、Quarkus の Micrometer Metrics ガイドを参照してください。

1.3.3.4. OkHttp トレース gRPC エクスポーターを Vert.x に置き換える

Red Hat build of Quarkus 3.8 では、OpenTelemetry (OTel) エクステンション quarkus-opentelemetry が強化され、デフォルトの OTel エクスポーターが、Vert.x 上に構築された Red Hat build of Quarkus 実装に置き換えられました。

これにより、OkHttp ライブラリーへの依存が排除されます。エクスポーターは引き続きコンテキストおよび依存関係の注入 (CDI) と自動的に接続されるため、quarkus.otel.traces.exporter プロパティーはデフォルトで cdi に設定されます。

詳細は、Quarkus の Using OpenTelemetry ガイドを参照してください。

1.3.4. セキュリティー

1.3.4.1. 4KB を超える OIDC セッション Cookie を分割する機能

Red Hat build of Quarkus 3.8 では、コンテンツサイズが 4 KB を超える場合に、OpenID Connect (OIDC) セッション Cookie を小さな Cookie に分割できます。

通常、デフォルトで暗号化されるセッション Cookie は、ID トークン、アクセストークン、および更新トークンの 3 つのトークンの連結で構成されます。サイズが 4KB を超えると、一部のブラウザーでは処理できない可能性があります。

この更新により、サイズが 4 KB を超えるセッション Cookie は自動的に複数のチャンクに分割されます。

詳細は、Web アプリケーションを保護するための Quarkus OIDC 認証コードフローメカニズム ガイドを参照してください。

1.3.4.2. HTTP リクエストが完了したら OIDC SecurityIdentity インスタンスを作成する

Red Hat build of Quarkus 3.8 では、HTTP リクエストが完了した後に認証目的で OIDC SecurityIdentity インスタンスを作成できます。

このバージョンでは、quarkus-oidc エクステンションに io.quarkus.oidc.TenantIdentityProvider インターフェイスが含まれており、これを注入して呼び出すことで、HTTP リクエストの完了後にトークンを SecurityIdentity インスタンスに変換できます。

詳細は、次の Quarkus リソースを参照してください。

1.3.4.3. OIDC JavaScript リクエストチェックのカスタマイズ

Red Hat build of Quarkus 3.8 では、JavaScript リクエストチェックをカスタマイズするために使用できる OIDC JavaScriptRequestChecker Bean が導入されています。

Red Hat build of Quarkus でシングルページアプリケーション (SPA) と、FetchXMLHttpRequest(XHR) などの JavaScript API を使用する場合は、ブラウザースクリプトにヘッダーを設定して、リクエストを JavaScript リクエストとして識別する必要があります。ただし、スクリプトエンジンは、エンジン固有のリクエストヘッダー自体を設定することもできます。

この更新により、カスタム io.quarkus.oidc.JavaScriptRequestChecker Bean を登録できるようになりました。これにより、現在のリクエストが JavaScript リクエストであるかどうかが Red Hat build of Quarkus に通知され、冗長なヘッダーの作成を回避できるようになります。

1.3.4.4. 遅延 OIDC JWK 解決がサポートされるようになる

Red Hat build of Quarkus 3.8 では、遅延 OIDC JSON Web Key (JWK) 解決のサポートが導入され、トークンが利用可能になった瞬間にキーを解決できるようになりました。

このリリースでは、quarkus.oidc.jwks.resolve-early 設定プロパティーが追加されました。デフォルトでは、このプロパティーは true に設定されており、OIDC プロバイダー接続を確立した瞬間に JWK キーが解決されることを意味します。

ただし、これを false に設定すると、トークン検証と同時にキーの遅延解決が有効になります。遅延 JWK 解決では、初期化時に 1 回だけ読み取るアプローチではなく、現在のトークンが使用されます。たとえば、トークンはキーを正しく解決する方法に関する情報を提供する場合があります。

1.3.4.5. mTLS と HTTP 制限によるセキュリティー強化

mTLS クライアント認証 (quarkus.http.ssl.client-auth) が required に設定されていると、Red Hat build of Quarkus は、安全な HTTPS 要求のみが受け入れられるように、プレーン HTTP ポートを自動的に無効にします。プレーン HTTP を有効にするには、quarkus.http.ssl.client-authrequest に設定するか、quarkus.http.ssl.client-auth=requiredquarkus.http.insecure-requests=enabled の両方を設定します。

1.3.4.6. HTTP 権限とロールがランタイム設定に移動する

Red Hat build of Quarkus が更新され、HTTP 権限とロールのランタイム設定が可能になり、プロファイル全体で柔軟なセキュリティー設定が可能になりました。これにより、ネイティブ実行可能ファイルがビルド時のセキュリティー設定にロックされる問題が解決されます。セキュリティーはプロファイルごとに動的に調整できるようになり、JVM モードとネイティブモードの両方に適用できます。

1.3.4.7. ベアラートークン認証における OIDC スコープ属性と SecurityIdentity 権限のマッピング

Red Hat build of Quarkus で Bearer トークン認証を使用する場合は、検証済みの JWT アクセストークンから SecurityIdentity ロールをマップできます。Red Hat build of Quarkus 3.8 では、OIDC スコープパラメーターを SecurityIdentity オブジェクトの権限にマップする機能が導入されました。

たとえば、@PermissionAllowed("orders_read") を使用して、JWT トークンに orders_read 値を持つ scope 要求があることを要求できます。

詳細は、Quarkus の OIDC Bearer トークン認証 ガイドを参照してください。

1.3.4.8. CDI を使用したセキュリティーイベントの監視

Red Hat build of Quarkus 3.8 では、コンテキストと依存性の注入 (CDI) を使用して、認証および承認のセキュリティーイベントを監視できます。

CDI オブザーバーは同期または非同期のいずれかであり、次のセキュリティーイベントのレポートがサポートされています。

  • io.quarkus.security.spi.runtime.AuthenticationFailureEvent
  • io.quarkus.security.spi.runtime.AuthenticationSuccessEvent
  • io.quarkus.security.spi.runtime.AuthorizationFailureEvent
  • io.quarkus.security.spi.runtime.AuthorizationSuccessEvent
  • io.quarkus.oidc.SecurityEvent

詳細は、Quarkus の「Security tips and tricks」ガイドの セキュリティーイベントの監視 セクションを参照してください。

1.3.4.9. OIDC 認証コードフロー nonce をサポート

Red Hat build of Quarkus 3.8 では、OpenID Connect (OIDC) 認証コードフロー nonce 機能のサポートが導入されました。

OIDC 認可サーバーが認可要求に応答して ID トークンを発行する場合、ID トークンには nonce 認証要求クエリーパラメーターと一致する nonce クレームが含まれます。この機能は、ID トークンが元の承認要求への応答として返され、再生された応答ではないことを保証することで、リプレイ攻撃を軽減するのに役立ちます。

1.3.4.10. OIDC リクエストフィルターがサポートされている

Red Hat build of Quarkus 3.8 では、1 つ以上の OidcRequestFilter 実装を登録することで、quarkus-oidc-client または quarkus-oidc エクステンションによって行われた OIDC クライアント要求をカスタマイズし、新しい要求ヘッダーを更新または追加できます。

たとえば、OIDC リクエストフィルターはリクエスト本文を分析し、そのダイジェストを新しいヘッダー値として追加できます。

詳細は、Quarkus の「Web アプリケーションを保護するための OIDC 認証コードフローメカニズム」ガイドの OIDC 要求フィルター のセクションを参照してください。

Red Hat build of Quarkus 3.8 では、OIDC テナントへのバインド OpenID Connect (OIDC) 機能に新しい @TenantFeature アノテーションが導入されています。

io.quarkus.oidc.Tenant アノテーションがテナント設定の解決に使用されるようになりました。

1.3.4.12. OIDC トークンの伝播をサポート

Red Hat build of Quarkus 3.8 では、OIDC トークン伝播のサポートが導入されました。

この更新により、Red Hat build of Quarkus エンドポイントは REST クライアントを使用して、受信した OIDC アクセストークンを、アクセストークンを必要とする他のセキュアなエンドポイントに伝播します。

1.3.4.13. クライアント証明書のロールマッピング

Red Hat build of Quarkus 3.8 では、Mutual TLS (mTLS) 認証メカニズムを使用するときに、クライアントの X.509 証明書の共通名 (CN) 属性をロールにマッピングできるようになりました。この機能は特定の条件下で有効になります。

この機能は特定の条件下で有効になります。

  • quarkus.http.ssl.client-auth=required または quarkus.http.ssl.client-auth=request のいずれかで mTLS 認証メカニズムが有効になっている場合
  • application.properties ファイルは、quarkus.http.auth.certificate-role-properties プロパティーを持つロールマッピングファイルを参照します。

ロールマッピングファイルは CN=role1,role,…​,roleN 形式を持ち、UTF-8 を使用してエンコードされている必要があります。

1.3.4.14. インライン証明書チェーンによるトークン検証のサポート

Red Hat build of Quarkus 3.8 では、トークンにインライン化された X.509 証明書チェーンを使用して、OIDC ベアラーアクセストークンの検証が導入されています。

つまり、リーフ証明書から公開鍵を抽出する前に、証明書チェーンを検証することになります。リーフ証明書とは、証明書チェーンの最後に配置される X.509 証明書を指します。トークンの署名を検証するには、この公開鍵を使用します。

1.3.5. ツール

1.3.5.1. OpenRewrite による更新機能の拡張

quarkus update では、外部 Red Hat build of Quarkus エクステンションの OpenRewrite レシピがサポートされるようになり、組み込みエクステンションだけにとどまらない機能が拡張されました。新しいレシピが導入され、外部エクステンションの移行サポートが強化されました。

Red Hat は、Red Hat build of Quarkus アプリケーションのプロトタイプ作成、開発、テスト、およびデプロイを行うための Quarkus CLI を含む Quarkus 開発ツールの使用に対する 開発サポート を提供していることに注意してください。Red Hat は、実稼働環境での Quarkus 開発ツールの使用をサポートしていません。

1.3.6. Web

1.3.6.1. CDI 統合による /info エンドポイントの強化

quarkus-info を使用するアプリケーションは、CDI 統合を通じて /info エンドポイントを追加データで強化できるようになりました。この機能により、アプリケーション診断とメタデータの可視性をカスタマイズおよび拡張する機能が強化されます。

注記

詳細は、Quarkus コミュニティーの CDI 統合ガイド を参照してください。

1.3.6.2. REST Client Reactive における SSE サポートの改善

Red Hat build of Quarkus 3.8 では、REST Client の Server-Sent Events (SSE) 機能が強化され、完全なイベントの返送とフィルタリングが可能になります。REST Client のこれらの更新と新しい説明により、開発者はリアルタイムデータストリームの管理における制御と柔軟性が向上します。

1.3.6.3. REST Client Reactive Jackson での ObjectMapper のカスタマイズ

Red Hat build of Quarkus 3.8 では、rest-client-reactive-jackson エクステンションを使用するときに ObjectMapper をカスタマイズできます。アノテーション @ClientObjectMapper を使用して、クライアントのみが使用するカスタム ObjectMapper を追加できます。

重要

デフォルト設定を継承するカスタマイズアクションの場合は、デフォルトのオブジェクトマッパー defaultObjectMapper を変更しないでください。代わりにコピーを作成する必要があります。defaultObjectMapper は、Red Hat build of Quarkus 自体が設定し、CDI Bean として利用可能にし、RESTEasy Reactive および REST Client などのアプリケーションがデフォルトで使用する ObjectMapper のインスタンスです。

詳細は、Quarkus の「REST クライアントの使用」ガイドの REST Client Reactive Jackson での ObjectMapper のカスタマイズ セクションを参照してください。

1.3.6.4. @TestHTTPResource でのパスパラメーターのサポート

@TestHTTPResource アノテーションはパスパラメーターをサポートするようになりました。URI 形式に準拠していないため、URI 文字列としての検証は適用されなくなりました。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat