26.0.0.5 中的 Jakarta EE 11、Spring Boot 4.0 及更多功能
此版本在 Open Liberty 中引入了对 Jakarta EE 11、Spring Boot 4.0 应用程序以及更新的 TLS/SSL 密码处理的正式支持,包括增强的 Spring Boot 部署支持和简化的 SSL 密码配置。
Open Liberty 26.0.0.5 的内容:
查看 26.0.0.5 中已修复的错误列表。
使用 26.0.0.5 开发和运行应用程序
如果您使用 Maven,请在 pom.xml 文件中包含以下内容:
<plugin>
<groupId>io.openliberty.tools</groupId>
<artifactId>liberty-maven-plugin</artifactId>
<version>3.12.0</version>
</plugin>
或者对于 Gradle,请在 build.gradle 文件中包含以下内容:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'io.openliberty.tools:liberty-gradle-plugin:4.0.0'
}
}
apply plugin: 'liberty'
或者如果您使用 容器镜像:
FROM icr.io/appcafe/open-liberty
或者查看我们的 下载页面。
如果您使用 IntelliJ IDEA、Visual Studio Code 或 Eclipse IDE,您还可以利用我们的开源 Liberty 开发者工具,在 IDE 中实现有效的开发、测试、调试和应用程序管理。
Jakarta EE 11 核心配置文件、Web 配置文件和平台
Jakarta EE 11 核心配置文件、Web 配置文件和平台现已在 Open Liberty 中正式支持!我们首先要感谢所有在各种测试版中提供反馈的人。
Jakarta EE 11 标志着一个重要的里程碑。这是自 2017 年 Java EE 8 以来,Jakarta 首次向平台添加新规范,因此也是自该平台被 Eclipse 基金会接管以来首次提供新的组件规范。在对现有 Java 规范进行许多更新的同时,它还从平台中删除了所有可选规范和功能。当与 Jakarta EE 11 功能结合使用时,Liberty 继续支持这些可选规范和功能。
核心配置文件规范在 Jakarta EE 10 中引入,旨在为轻量级云原生应用程序(如基于 MicroProfile 的应用程序)提供配置文件。随着此版本中引入 Jakarta EE 11 支持,MicroProfile 7.0 和 7.1 功能现在也可以与 Jakarta EE 11 一起使用。您可以使用 Jakarta EE 10 或 Jakarta EE 11 功能运行 MicroProfile 7 应用程序。
以下规范构成了 Jakarta 平台以及核心和 Web 配置文件:
Jakarta EE 核心配置文件 11
| 规范 | 更新 | Liberty 功能文档 |
|---|---|---|
主要更新 |
||
主要更新 |
||
次要更新 |
||
次要更新 |
||
未更改 |
||
未更改 |
||
未更改 |
Jakarta EE Web 配置文件 11
| 规范 | 更新 | Liberty 功能文档 |
|---|---|---|
主要更新 |
请参阅前面的表格 |
|
新增 |
||
主要更新 |
||
主要更新 |
||
主要更新 |
||
次要更新 |
||
次要更新 |
||
次要更新 |
||
次要更新 |
||
次要更新 |
||
次要更新 |
||
次要更新 |
||
次要更新 |
||
未更改 |
不适用 |
|
未更改 |
||
未更改 |
||
未更改 |
不适用(请参阅 Javadoc) |
Jakarta EE 平台 11
| 规范 | 更新 | Liberty 功能文档 |
|---|---|---|
主要更新 |
请参阅前面的表格 |
|
主要更新 |
||
未更改 |
||
未更改 |
||
未更改 |
||
未更改 |
||
未更改 |
||
未更改 |
注意:Enterprise Beans 4.0 未更改,但当 enterpriseBeans-4.0 功能与其他 Jakarta EE 11 功能一起配置时,可选的 EJB 2.x 功能不再启用。想要使用 EJB 2.x API 的用户还必须添加 enterpriseBeansHome-4.0 功能。
Liberty 提供了便捷功能,用于运行 Jakarta EE 11 Web 配置文件(webProfile-11.0)和 Jakarta EE 11 平台(jakartaee-11.0)中包含的所有组件规范。这些便捷功能使您能够使用各自规范中包含的所有 API 快速开发应用程序。对于应用程序客户端中的 Jakarta EE 11 功能,请使用 jakartaeeClient-11.0 Liberty 功能。
要启用 Jakarta EE 平台 11 功能,请将 jakartaee-11.0 功能添加到 server.xml 文件中:
<featureManager>
<feature>jakartaee-11.0</feature>
</featureManager>
或者,要启用 Jakarta EE Web 配置文件 11 功能,请将 webProfile-11.0 功能添加到 server.xml 文件中:
<featureManager>
<feature>webProfile-11.0</feature>
</featureManager>
虽然核心配置文件没有便捷功能,但您可以通过将以下功能添加到 server.xml 文件来启用其等效功能:
<featureManager>
<feature>jsonb-3.0</feature>
<feature>jsonp-2.1</feature>
<feature>cdi-4.1</feature>
<feature>restfulWS-4.0</feature>
</featureManager>
要在应用程序客户端容器上运行 Jakarta EE 11 功能,请在 client.xml 文件中添加以下条目:
<featureManager>
<feature>jakartaeeClient-11.0</feature>
</featureManager>
更多信息参考:
Spring Boot 4.0
Open Liberty 目前支持运行 Spring Boot 1.5.x、2.x 和 3.x 应用程序。随着新的 springBoot-4.0 功能的引入,用户现在可以部署 Spring Boot 4.x 应用程序。虽然 Liberty 一直支持打包为 WAR 文件的 Spring Boot 应用程序,但此增强功能将支持扩展到 Spring Boot 4.x 应用程序的 JAR 和 WAR 格式。
springBoot-4.0 功能提供了在 Open Liberty 上运行 Spring Boot 4.x 应用程序的完整支持,以及在构建容器化应用程序时精简应用程序的能力。
要使用此功能,用户必须运行 Java 17 或更高版本并启用 Jakarta EE 11 功能。如果应用程序使用 servlet,则必须配置为使用 servlet-6.1。在 server.xml 文件中包含以下功能以配置服务器。
<featureManager>
<feature>springBoot-4.0</feature>
<feature>servlet-6.1</feature>
</featureManager>
部署 Spring Boot 应用程序的 server.xml 配置遵循早期 Liberty Spring Boot 版本中使用的相同方法。
<springBootApplication id="spring-boot-app" location="spring-boot-app-0.1.0.jar" name="spring-boot-app" />
与早期版本一样,可以通过将 Spring Boot 应用程序 JAR 放置在 /dropins/spring 文件夹中部署。使用此部署方法时,可以省略 server.xml 文件中的 springBootApplication 配置。
TLS/SSL 密码支持更新
Liberty 现在使用 JDK 的有效密码列表进行 SSL 配置。不再使用 SSL 配置中的 securityLevel 属性。此外,SSL 配置中的 enabledCiphers 属性已更新,以更灵活的方式自定义 SSL 密码。
Liberty 基于 securityLevel 的密码类别不再提供有意义的价值。MEDIUM 和 LOW 类别不包含任何剩余的密码。
enabledCiphers 属性现在有两种互斥模式:(1) 指定用空格分隔的自定义密码列表,或 (2) 指定过滤条件以从有效的 JDK 密码列表中添加 (+) 或删除 (-) 密码套件。如果 enabledCiphers 中设置的值包含静态条目和 +/- 条目,则会记录错误,服务器通过返回有效的 JDK 密码列表来忽略 enabledCiphers 值。
现有用法: 用户将 securityLevel 设置为 HIGH
<ssl id="defaultSSL" securityLevel=HIGH/>
现在忽略 securityLevel 属性,因此前面的 <ssl> 配置等同于此处显示的配置,其中没有配置 securityLevel 属性。
<ssl id="defaultSSL"/>
现有用法: 用户指定有效 JDK 列表中的所有密码,排除所有 TLS_RSA 密码,但保留一个 (TLS_RSA_WITH_AES_128_GCM_SHA256)
<ssl id="defaultSSL" securityLevel="CUSTOM" enabledCiphers="TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 TLS_DHE_DSS_WITH_AES_256_GCM_SHA384 TLS_DHE_DSS_WITH_AES_128_GCM_SHA256 TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA TLS_DHE_DSS_WITH_AES_256_CBC_SHA TLS_DHE_DSS_WITH_AES_128_CBC_SHA TLS_RSA_WITH_AES_128_GCM_SHA256">
使用新语法的示例: 使用通配符实现相同的逻辑
<ssl id="defaultSSL" enabledCiphers="-TLS_RSA* +TLS_RSA_WITH_AES_128_GCM_SHA256"/>
要了解有关传输安全性的更多信息,请参阅 SSL Constants Javadoc、JSSEProvider Javadoc 和 SSL 配置参考。
此版本中的安全漏洞 (CVE) 修复
| CVE | CVSS 评分 | 漏洞评估 | 受影响的版本 | 备注 |
|---|---|---|---|---|
7.5 |
身份欺骗 |
17.0.0.3-26.0.0.4 |
有关过去安全漏洞修复的列表,请参阅 安全漏洞 (CVE) 列表。
此版本中修复的值得注意的错误
立即获取 Open Liberty 26.0.0.5
可通过 Maven、Gradle、Docker 和可下载的存档获取。