Open Liberty 22.0.0.13では、CVEやその他の重要なバグ修正とともに、FFDCの最大使用期間を設定することが可能です。
Open Liberty 22.0.0.13 では、FFDC ログファイルが設定された期間に達した後、自動的に消去する機能が提供されます。このリリースでは、gRPC と gRPC クライアントの CVE に対処した 2 つのバグを含む、多くの重要なバグ修正も提供されます。 gRPC と WebSocket のトピックをカバーする 2 つの新しいガイドも、私たちの広範なガイドのリストに加わっています。 Jakarta EE 10、MicroProfile 6、InstantOn など、私たちが現在進行中の機能や特徴に興味がある場合は、最近の ベータ版ブログ記事 をご覧ください。
Open Liberty 22.0.0.13 の場合:
ランタイムに追加された新機能と合わせて、前回のリリース以降の新しいガイドと更新されたガイドも行いました。
22.0.0.13で修正されたバグの一覧を見ることができます。 .
Open Liberty GA の過去のリリースブログ記事をチェックしてください。
22.0.0.13 を使用してアプリを実行する
Mavenを使う時には下記の設定を使ってください。
<dependency>
<groupId>io.openliberty</groupId>
<artifactId>openliberty-runtime</artifactId>
<version>22.0.0.13</version>
<type>zip</type>
</dependency>
Gradle:の場合は、下記の設定を使ってください。
dependencies {
libertyRuntime group: 'io.openliberty', name: 'openliberty-runtime', version: '[22.0.0.13,)'
}
Dockerを使っているときは、下記のイメージを使ってください。
FROM open-liberty
または、Open Libertyのダウンロード・ページからダウンロードしてください。
最大FFDC期間の設定
Open Libertyは、First Failure Data Capture(FFDC)機能を提供し、不具合が発生するまでのイベントや条件についての情報を即座に収集することができます。 特定のシナリオでは、FFDCディレクトリのファイル数が非常に大きくなることがあります。これまで、Open Liberty は 500 を超える FFDC ファイルを自動的に消去しており、この値は設定することができませんでした。このリリースでは、FFDC ログファイルが設定された期間に達すると自動的に消去される新しい機能が導入されています。この年齢は、新しい設定属性 maxFfdcAge
で指定できます。
maxFfdcAge
は、FFDCファイルが削除される前に期待される最大期間です。毎日午前0時になると、設定された最大期間に達した FFDC ファイルは削除されます。正の整数の後に、日 (d
)、時間 (h
)、分 (m
) のいずれかの時間単位を指定します。例えば、2日を指定する場合は 2d
となります。1つのエントリに複数の値を含めることができる。例えば、2d6h
は 2 日と 6 時間と同じ意味です。
server.xml の設定例です。
<server>
<logging maxFfdcAge="2d"/>
</server>
このリリースにおけるセキュリティ脆弱性 (CVE) の修正
CVE | CVSSスコア | 脆弱性評価 | 影響を受けるバージョン | ノート |
---|---|---|---|---|
5.7 |
Denial of service |
21.0.0.2 - 22.0.0.12 |
grpc-1.0 と grpcClient-1.0 フィーチャーに影響あり |
|
5.7 |
Denial of service |
21.0.0.2 - 22.0.0.12 |
grpc-1.0 と grpcClient-1.0 フィーチャーに影響あり |
過去のセキュリティ脆弱性の修正のリストについては、Security vulnerability (CVE) listを参照してください。
主なバグ修正
以下のセクションでは、このリリースで修正したバグの一部について説明します。興味がある場合はfull list of bugs fixed in 22.0.0.13を参照してください。
-
NullPointerException in InstallFeatureAction for .esa files
featureUtility コマンドに導入されたバグにより、拡張子
.esa
で示される Enterprise Subsystem Archive (ESA) パッケージを使用して機能をインストールしようとすると、NullPointerException
が発生java.lang.NullPointerException at com.ibm.ws.install.internal.InstallUtils.getFeatureName(InstallUtils.java:794) at com.ibm.ws.install.featureUtility.cli.InstallFeatureAction.esaInstallInit(InstallFeatureAction.java:188) ....
この問題は解決され、ESA 機能をインストールするために
./featureUtility installFeature x.esa
を起動しても、NPEは発生しません。 -
[HTTP/2ストリームが例外で終了したときに、断続的にサーバーの停止に失敗する [HTTP/2ストリームが例外で終了したときに、断続的にサーバーの停止に失敗する]
HTTP/2接続で例外が発生すると、スレッドがハングアップする問題が断続的に発生することがあります。この結果、サーバー停止時にquiesce警告が発行されます。
この問題は解決され、HTTP/2のストリームと接続、および管理するスレッドは、例外状態でもエラーなしで停止するようになりました。
-
LibertyのデフォルトのHttpAuthenticationMechanismsは、HttpMessageContext.responseUnauthorizedを呼び出さない
HttpMessageContextWrapper
はresponseUnauthorized
メソッドをオーバーライドする必要があります。バグのため、Liberty のHttpAuthenticationMechanisms
はHttpMessageContext.responseUnauthorized
を呼び出さないので、ユーザーが例えばヘッダーを追加してレスポンスをエンリッチ化することができませんでした。この問題は解決され、デフォルトの
HttpAuthenticationMechanisms
は認証されていないリクエストに対してHttpMessageContext.responseUnauthorized
を適切に呼び出すようになりました。 -
JspFactory.getDefaultFactory().getEngineInfo().getSpecificationVersion()不正なバージョンを返す
Pages (旧 JSP) アプリケーションが
JspFactory.getDefaultFactory().getEngineInfo().getSpecificationVersion()
を呼び出すと、間違ったバージョンが返されることがあります。この値は、正しい仕様のバージョンではなく、2.1
を返すようにコード化されています。この問題は解決され、正しいバージョンが返されるようになりました。 例えば、
jsp-2.2
は2.2
を返し、pages-3.0
は3.0
を返します。 -
OidcClientImplがSecurityServiceへの依存関係を正しく宣言していない
フォームベースのログアウトURLである
ibm_security_logout
へのトラフィックを遮断するServletFilter
からrequest.logout()
を呼び出すと、以下のNPEが発生する可能性があります。:
java.lang.NullPointerException Stack Dump = java.lang.NullPointerException at com.ibm.ws.security.openidconnect.client.internal.OidcClientImpl.authenticateSubject(OidcClientImpl.java:749) at com.ibm.ws.security.openidconnect.client.internal.OidcClientImpl.handleOidcCookie(OidcClientImpl.java:722) at com.ibm.ws.security.openidconnect.client.internal.OidcClientImpl.logout(OidcClientImpl.java:663) at com.ibm.ws.webcontainer.security.AuthenticateApi.logoutUnprotectedResourceServiceRef(AuthenticateApi.java:244) at com.ibm.ws.webcontainer.security.AuthenticateApi.logout(AuthenticateApi.java:189) at com.ibm.ws.webcontainer.security.AuthenticateApi.logoutServlet30(AuthenticateApi.java:627) at com.ibm.ws.webcontainer.security.WebAppSecurityCollaboratorImpl.logout(WebAppSecurityCollaboratorImpl.java:1212) at com.ibm.ws.webcontainer.srt.SRTServletRequest.logout(SRTServletRequest.java:3956) at javax.servlet.http.HttpServletRequestWrapper.logout(HttpServletRequestWrapper.java:376) at com.ibm.bpm.servlet.filters.GenericSecurityServletFilter.doFilter(GenericSecurityServletFilter.java:327) at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:201)
+
この問題は、 OidcClientImpl
dependent on SecurityService
を宣言することで解決され、NPE は発生しなくなりました。
前回のリリース以降の新しいガイドと更新されたガイド
Open Libertyの特徴や機能が増え続ける中、できるだけ簡単に導入できるように、それらのトピックに関するopenliberty.ioへの新しいガイドを追加しています。既存のガイドも、報告されたバグや問題に対処し、内容を最新に保ち、トピックの内容を拡張するために更新されます。
-
Jakarta WebSocketを用いたサービス間双方向通信
-
Jakarta WebSocketを使用して、接続を終了せずにサービス間でメッセージを送受信する方法について説明します。
-
-
gRPCを用いたクライアントとサーバサービス間のメッセージのストリーミング
-
Open Libertyを使用して、gRPC単体呼び出し、サーバストリーミング、クライアントストリーミング、双方向ストリーミングを使用して、Javaクライアントとサーバサービス間の通信を行う方法について説明します。
-
今すぐOpen Liberty 22.0.0.13を入手する
下記のリンク Maven, Gradle, Docker から入手可能です。