Red Hat OpenShift Container Platform上のOpen Liberty 21.0.0.2のリリースノート

Open Liberty 2021

Red Hat OpenShift Container Platform での Open Liberty 2021 リリースノート

概要

本リリースノートには、Red Hat OpenShift Container Platform リリースの Open Liberty 2021 に含まれる新機能、機能拡張、修正、および問題に関する最新情報が含まれています。

第1章 機能

Open Liberty 21.0.0.2 では、IP アドレスワイルドカードおよびホスト名を使用して trustedHeaderOrigin および trustedSensitiveHeaderOrigin を設定できるようになりました。

Open Liberty 21.0.0.2 で以下を行います。

Open Liberty 21.0.0.2 now の実行

21.0.0.2. ''' で修正されたバグの一覧を表示し ます。

1.1. HTTP チャネル設定の改善

$WSXX 形式の「WebSphere private headers」は、 WebSphere 対応のプロキシーによって、元のリクエストに関する情報を提供します。これらのヘッダーによって提供される値は、getRemoteHost ()などの ServletRequest API 経由でアプリケーションで利用できます。Open Liberty では、2 つの HTTP Dispatcher カスタムプロパティーが提供され、trustedHeaderOrigin および trustedSensitiveHeaderOrigin のプライベートヘッダーを送信できるリモートホスト 制御 します。理想的には、これらのディスパッチャープロパティーは、Open Liberty サーバーへリクエストを転送する既知のプロキシーサーバーのみを信頼します。

以前は、trustedHeaderOrigin および trustedSensitiveHeaderOrigin は " * "、"none"、または完全な IP アドレスの一覧(例:)だけ受け付けました。" 127.0.0.1, 192.168.6.6 ").お客様がリクエストした際に、両方のプロパティーを追加で IP アドレスのワイルドカードおよびホスト名で設定できるようになりました。たとえば、"localhost, 127.0.0.1, 192.168. * . * , 0:0:0:0:ffff*:*, *.ibm.com " のいずれかに対して有効です。

server.xml の例と同じリストを使用します。

<httpDispatcher trustedHeaderOrigin="*" trustedSensitiveHeaderOrigin="localhost, 127.0.0.1, 192.168.*.*, 0:0:0:0:0:ffff:*:*, *.ibm.com"/>

これらのプロパティーに関する詳細は、Open Liberty docs on httpDispatcher を参照してください。

1.2. 本リリースでは重要なバグが修正されています。

Red Hat はバグの時間修正を費やしました。以下のセクションでは、本リリースで解決された問題の一部のみを説明します。21.0.0.2 で 修正されたバグの全リストを以下に示します

  • gRPC 依存関係を 1.35 に更新します。

    現在、Open Liberty は grpc-java バージョン 1.31.1 を使用して grpc-1.0 および grpcClient -1.0 機能を提供します。この問題は、grpc-java の依存関係を、1.35.0 である最新バージョンに更新します。1.35.0 リリースは、多くの改善およびバグ修正を提供します。完全なリストは『 GRPC Java リリースノート』を参照してください。

  • Expression Language 3.0 value lookup performance performance

    特定の Expression Language 3.0 値に対してルックアップのパフォーマンスが向上しました。EL 3.0 コンテキスト処理 および クラスローダー 呼び出しを最適化することで、EL のスコープ外および静的式の評価が、今回の修正により適切に実行されます。今回の修正には、Apache バグ修正 62453 および Apache bug 63781 が含まれ、複数の java レベルが正しくサポートされるように なりました。

  • システム Web アプリケーションバンドルは、サーバーが起動するまで、完全にプロビジョニングされない場合があります。

    Web Application Bundle(WAB)が Liberty 機能(system WAB とも呼ばれます)に含まれていると、サーバーが開始し、TCP ポートが Web コンテナーで完全にプロビジョニングされる前に開放され、リッスンされます。これは、サーバーが起動し、すべてのアプリケーションが起動するか、サーバーの起動時にタイムアウトが発生するまで TCP ポートは遅延します。

    これにより、WAB が Web コンテナーとオンラインになるまで、サーバーの起動初期の段階で 404 エラーが発生する可能性がありました。サーバーは TCP ポートをリッスンし、アプリケーションが起動するのを待つ方法と同様に、システム WAB のイベントを開始すべきです。

    これは、サーバーの起動時にメッセージを遅延し、システム WAB が対応できるまでリッスンする TCP ポートを遅延するか、タイムアウトが発生することで修正されています。これは、新しいサービスタイプ ServerReadyStatus を導入することで実行され まし た。ServerStarted を登録する前に機能マネージャーがこのサービスを呼び出し ます。ServerReadyStatus の実装 は、ServerStarted を登録する前にサーバーが準備できるのを待機している間にこれらのチェックメソッドがブロックできるようにし ます

    これにより、WABInstaller システム WAB のステータスをチェックして、Web コンテナーへのプロビジョニングが完了していることを確認できます。

  • FeatureUtility が liberty カスタム環境変数を解析しない

    エントリーが /${shared.config.dir}/server.xml" で、 環境変数が test /config/server.xml ファイルの WLP_USER_DIR=/test / の場合、ユーザーは "it't't't be found file in /user/test/wlp/usr/shared/config/server.xml" が見つからないことを示すエラーが表示 されます

    このバグにより、ここに見つかった環境変数を置き換えずにタグが正しく解析されないことがあり ました。

  • HttpServletRequest または HttpServletResponse コンテキストプロキシーの NullPointerException

    以前は null ランタイムコンテキストで HttpServletRequest または HttpServletResponse JAX-RS コンテキストプロキシーを使用すると、以下のような NullPointerException が発生 していました。

    java.lang.NullPointerException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:90)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
    at java.lang.reflect.Method.invoke(Method.java:508)
    at com.ibm.ws.jaxrs20.injection.HttpServletRequestInjectionProxy$1.invoke(HttpServletRequestInjectionProxy.java:58)

    この問題は、他のプロキシークラスのものと同様の 2 つのプロキシークラスに null チェックを追加することで解決されました。

  • 静的リソースを提供するときに ClassCastException

    以下の条件が発生した場合:

  • servlet-4.0 機能がインストールされている。
  • 要求が静的リソースの場合
  • アプリケーションはリクエストオブジェクトをフィルターでラップします。

    対応する静的リソースの情報をキャッシュしようとすると、リクエストサイクルの最後近くで java.lang.ClassCastException が発生することがあります(例: xml、html、html、css…​).通常、応答は問題なくクライアントに返信されます。

    例外の例を以下に示します。

    java.lang.ClassCastException: com.example.MyWrappedRequest incompatible with com.ibm.ws.webcontainer40.srt.SRTServletRequest40
    at com.ibm.ws.webcontainer40.servlet.CacheServletWrapper40.(CacheServletWrapper40.java:57)
    at com.ibm.ws.webcontainer40.servlet.factory.CacheServletWrapperFactory40Impl.createCacheServletWrapper(CacheServletWrapperFactory40Impl.java:30)
    at com.ibm.ws.webcontainer.WebContainer.addToCache(WebContainer.java:1231)
    at com.ibm.ws.webcontainer.extension.DefaultExtensionProcessor.handleRequest(DefaultExtensionProcessor.java:538)
    at com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:182)

    このバグは、servlet-4.0 機能で静的サーブレットラッパーをキャッシュする際に ClassCastException を修正することで削除されました。

1.3. 21.0.0.2 を使用してアプリケーションを実行します。

Maven を使用している場合、コーディネートは次のとおりです。

<dependency>
    <groupId>io.openliberty</groupId>
    <artifactId>openliberty-runtime</artifactId>
    <version>21.0.0.2</version>
    <type>zip</type>
</dependency>

また、Gradle の場合:

dependencies {
    libertyRuntime group: 'io.openliberty', name: 'openliberty-runtime', version: '[21.0.0.2,)'
}

または、Docker を使用している場合は、以下を行います。

FROM open-liberty

第2章 解決済みの問題

本リリースで解決した Open Liberty 21.0.0.2 の問題を参照して ください。

第3章 修正された CVE

Open Liberty 21.0.0.2 で修正された CVE の一覧は、「 セキュリティーの脆弱性 」を参照してください。

第4章 既知の問題

21.0.0.2 の開発中に見つかったものの、修正されていない問題の一覧を参照してください