现在,您可以使用 Keycloak SAML 适配器 Galleon 功能软件包安装红帽构建的 Keycloak SAML 适配器。有关红帽构建的 Keycloak 的详情,请查看
红帽构建的 Keycloak 产品页
。
JBoss EAP 8.0 现在支持 EAP 操作器。现在,您可以使用 JBoss EAP 操作器部署 JBoss EAP 8.0 应用程序。如需更多信息,请参阅
JBoss EAP Operator 支持政策
。
JBoss EAP 8.0 引入了以下新功能和增强:
JBoss EAP 8 支持 Jakarta EE 10,并实施 Jakarta EE 10 核心配置文件、Web 配置文件和完整平台标准,包括:
jakarta Activation 2.1
Jakarta Annotations 2.1
Jakarta Authentication 3.0
Jakarta Authorization 2.1
Jakarta Batch 2.1
Jakarta Bean Validation 3.0
jakarta Concurrency 3.0
Jakarta Connectors 2.1
Jakarta 上下文和依赖注入 4.0
Jakarta Debugging Support for Other Languages 2.0
Jakarta Dependency Injection 2.0
Jakarta Enterprise Beans 4.0
Jakarta Enterprise Web Services 2.0
Jakarta Expression Language 5.0
Jakarta Interceptors 2.1
Jakarta JSON Binding 3.0
Jakarta JSON Processing 2.1
Jakarta Mail 2.1
Jakarta Messaging 3.1
Jakarta Persistence 3.1
Jakarta RESTful Web Services 3.1
jakarta Security 3.0
Jakarta Server Faces 4.0
Jakarta Server Pages 3.1
Jakarta Servlet 6.0
Jakarta SOAP with Attachments 1.3
Jakarta Standard Tag Library 3.0
Jakarta Transactions 2.0
Jakarta WebSocket 2.1
Jakarta XML Binding 4.0
Jakarta XML Web Services 4.0
与 Jakarta EE 8 相比,Jakarta EE 10 有很多变化。如需更多信息,请参阅
如何将 JBoss EAP 应用程序从 Jakarta EE 8 迁移到 Jakarta EE 10
。
软件包命名空间更改
用于所有 EE API 的软件包已从
javax
改为
jakarta
。这遵循 Java EE 迁移到 Eclipse Foundation 并建立 Jakarta EE。
这个更改不会影响作为 Java SE 一部分的
javax
软件包。
如需更多信息,请参阅
javax 到 jakarta Package Namespace Change
。
3.2. Red Hat Insights Java 客户端
JBoss EAP 8.0 版本包含 Red Hat Insights Java 客户端。只有在 Red Hat Enterprise Linux (RHEL)上安装了 JBoss EAP,并且 RHEL 系统已安装、配置并注册了 Red Hat Insights 客户端时,Red Hat Insights Java 客户端才会为 JBoss EAP 启用。如需更多信息,
请参阅 Red Hat Insights 的客户端配置指南
。
Red Hat Insights 仪表板 for Runtimes 将在以后的
Red Hat Hybrid Cloud Console
上提供。与 Red Hat Hybrid Cloud Console 上可用的
RHEL 仪表板
类似,Runtimes 仪表板将显示运行时安装的清单、CVE 详情并帮助您选择 JVM 选项。
您可以通过将环境变量
RHT_INSIGHTS_JAVA_OPT_OUT
设置为
true
来选择不使用 Red Hat Insights 客户端。如需更多信息,请参阅
Red Hat Insights for Runtimes
知识库文章。
包容性语言,标签变化
对于红帽承诺在我们的代码、文档和 Web 属性中替换有问题的语言,从 8.0 开始,JBoss EAP 管理控制台将显示更丰富的字词和标签。特别是,您会注意到对管理控制台资源地址和用户界面元素的以下变化:
新术语
|
之前的术语
|
primary
master
secondary
slave
blocklist
blacklist
allowlist
whitelist
|
向响应消息添加、编辑和删除不变的 HTTP 标头
在 JBoss EAP 8.0 管理控制台中,您现在可以添加、编辑或删除恒定的 HTTP 响应标头。若要添加新路径和标头,请从 Server 页面中选择
Constant Headers
,然后单击
Add
。要编辑或删除现有的路径标头,请选择您要修改的标头的路径,然后点击
Edit
或
Remove
。
显示处理消息的 Java 消息服务网桥统计信息
消息网桥消费来自源队列或主题的消息,然后将它们发送到不同服务器上的目标队列或主题。网桥也可以将消息从一个集群发送到另一个集群。Java 消息服务(JMS)网桥提供有关网桥处理的消息的统计信息。具体来说,它收集以下数据:
成功提交的消息数(消息计数)
中止的消息数(中止的消息)
在这个版本中,JBoss EAP 8.0 管理控制台包含一个新的
JMS Bridge
列,用于在 Runtime 部分显示这些统计信息。请注意,这个新功能会影响
/subsystem= messaging-topic/jms-bridge=*
资源。
配置增强的审计日志记录
在 JBoss EAP 8.0 管理控制台中,您可以在
/subsystem=elytron/syslog-audit-log
netobserv 资源中配置以下两个额外的审计日志记录属性:
syslog-format
定义审计日志消息的格式。支持的值为
RFC3164
和
RFC5424
.("RFC" 代表"请求评论"。)
reconnect-attempts
定义在关闭端点前 JBoss EAP 尝试连接到 syslog 服务器的最大失败次数。
/deployment
subresources require
include-runtime=true
使用 Red Hat JBoss Enterprise Application Platform 8.0 时,
/deployment
的子模式已改为 runtime。对于使用
/deployment
子资源的管理操作,您必须添加
include-runtime=true
。
在暂停模式下启动服务器
现在,您可以使用 JBoss EAP 8.0 管理控制台在暂停模式下启动服务器。在以下下拉菜单中选择新的
Start in suspended mode
选项:
Runtime > Topology
Runtime > Server Groups
Runtime > Server Groups > Server
Runtime > Host > Server
为 certificate-authority-account 资源配置 certificate-authority 属性
借助 JBoss EAP 8.0,您可以将任何证书颁发机构用于
certificate-authority-account
Elytron 资源。在以前的版本中,JBoss EAP 仅支持 Let 的 Encrypt 证书颁发机构,并且
certificate-authority
属性不可配置。
有了这个更新,您可以通过打开 JBoss EAP 管理控制台,并点击
Configuration > Subsystems > Security > Other Settings > Other Settings > Certificate Authority
来添加、配置或删除任何证书颁发机构。在这里点击
Add
来添加新证书颁发机构。要修改已有的,请选择它,然后单击
Edit
。要删除证书颁发机构,请选择它,然后点击
Remove
。
将 OCSP 配置为 Elytron 信任管理器
使用 JBoss EAP 8.0,您可以将在线证书状态协议(OCSP)配置为 Elytron
undertow
子系统的信任管理器。在以前的版本中,JBoss EAP 仅支持证书撤销列表(CRL)作为信任管理器。
有了这个更新,您可以通过打开 JBoss EAP 管理控制台,并点击
Configuration > Subsystems > Elytron > Other Settings > SSL > Trust Manager
将 OCSP 配置为您的信任管理器。接下来,可以选择或创建一个信任管理器,然后从 信任管理器窗口中选择
OCSP
选项卡,并点击
Add
。
暂停 Java 消息服务主题
在 JBoss EAP 8.0 管理控制台中,您现在可以导航到
Runtime > Messaging > Server > Server Name > Destination
以选择,然后暂停 Java Message Service (JMS)主题。解决了相关的消息问题后,您还可以恢复暂停的主题。JMS 之前将消息发送到所有活跃的订阅者,而没有任何方法中断它们。
非堆内存使用情况添加到服务器状态预览
使用 JBoss EAP 8.0,您可以在服务器状态预览中看到有关服务器的内存消耗的更多信息。在以前的版本中,预览仅显示堆内存使用情况:
Used
和
Committed
。有了这个更新,它还显示非堆内存使用情况的同样的信息。
添加或更新数据源时,自动添加或更新凭证存储密码
从 JBoss EAP 8.0 开始,当您从管理控制台创建数据源时,您可以自动将该数据源的密码添加到凭据存储中。在管理控制台中,选择
Configuration > Subsystems > Datasources
,然后点击
Add
来添加新的数据源。接下来,输入您要为新数据源保存密码,为凭证保存别名的凭证存储名称,以及您要使用的纯文本密码。要修改现有的数据源,请选择它,然后点击
Edit
。
创建、读取、更新和删除 Elytron 资源
在 JBoss EAP 8.0 管理控制台中,您现在可以创建、读取、更新或删除以下四个证据解码器:
聚合证据解码器
自定义证据解码器
X500 主题证据解码器
X509 主题更改名称证据解码器
要采取其中任何一个操作,请导航到
Configuration > Subsystems > Security > Mappers & Decoders > Evidence Decoder
。
查看部署哈希值
JBoss EAP 8.0 管理控制台现在可以在部署预览中显示您的部署哈希值。这意味着,您可以一眼就能确定您的部署是否有效和成功。
在 EJB 3 子系统中添加和配置拦截器
在 JBoss EAP 8.0 管理控制台中,您现在可以在
ejb3
子系统中添加和配置系统范围的、服务器端拦截器。在控制台中,选择
Configuration > EJB > Container
进行添加或更改。
配置 Infinispan 分布式 Web 会话关联性
借助 JBoss EAP 8.0,在
distributable-web
子系统中,您现在可以对分布式 Web 会话的关联性或负载均衡器"粘性"具有更多控制。要将会话关联更改为
Primary-owner
默认值之外的内容,请在管理控制台中点击
Configuration > Distributable Web > View > Infinispan Session
。接下来,选择一个会话并选择
Affinity
进行更改。关联性选项现在包含以下内容:
Local
Primary-owner
Ranked
在以前的版本中,唯一可用的关联性是
Primary-owner
。
在 EE 子系统中配置全局目录
借助 JBoss EAP 8.0 管理控制台,您现在可以配置一个新的
ee
子系统资源
/subsystem=ee/global-directory=*
。您可以使用全局目录来将内容添加到部署类路径中,而无需列出目录的内容。要配置全局目录资源,请导航到
Configuration > Subsystems > EE > Globals
。
在 Elytron 中配置密码套件
有了 JBoss EAP 8.0 管理控制台,您现在可以使用
cipher-suite-names
属性启用 TLS 1.3 密码套件来保护网络连接。特别是,您现在可以配置以下
elytron
子系统资源:
/subsystem=elytron/client-ssl-context=*
/subsystem=elytron/server-ssl-context=*
要从管理控制台为
/subsystem=elytron/client-ssl-context=*
资源配置
cipher-suite-names
属性,请导航到
Configuration > Subsystems > Security > Other Settings > Client SSL Context
。
要从管理控制台中为
/subsystem=elytron/server-ssl-context=*
资源配置
cipher-suite-names
属性,请导航到
Configuration > Subsystems > Security > Other Settings > Server SSL Context
。
使用 OIDC 保护应用程序和管理控制台
借助 JBoss EAP 8.0,您可以从管理控制台保护部署到 JBoss EAP 的应用,以及使用 OpenID Connect (OIDC)的 JBoss EAP 管理控制台。JBoss EAP 8.0 为 OpenID Connect (OIDC)提供
elytron-oidc-client
子系统的原生支持。
要从管理控制台配置
elytron-oidc-client
子系统,请导航到
Configuration > Subsystems > Elytron OIDC Client
。
要保护部署到 JBoss EAP 的应用,请配置以下资源:
provider
secure-deployment
如需更多信息,请参阅在
JBoss EAP 中使用单点登录指南中的使用
OIDC 保护应用程序
。
要保护 JBoss EAP 管理界面,请配置以下资源:
provider
secure-deployment
secure-server
另外,您可以通过进入到
Access Control
并点
Enable RBAC
,为管理控制台配置基于角色的访问控制(RBAC)。
如需更多信息,请参阅
Using single sign-on with JBoss EAP
指南中的使用 OpenID 供应商保护 JBoss EAP 管理控制台
。
您可以使用
realm
资源来配置红帽构建的 Keycloak 域。这为方便用户提供。您可以在 keycloak 客户端适配器中复制配置,并在
realm
资源配置中使用它。但是,建议使用
供应商
资源。
部署应用程序时注册 Web 上下文
您可以从管理命令行界面(CLI)使用
部署 deploy-file
命令,将应用程序部署到单机服务器或受管域中。
elytron
子系统中的 JAAS 域
在 JBoss EAP 8.0 中,旧的 security 子系统已被删除。要继续使用
elytron
子系统的自定义登录模块,请使用新的 Java 身份验证和授权服务(JAAS)安全域
jaas-realm
。
JAAS-realm
仅支持与 JAAS 兼容的登录模块。有关 JAAS 的详情,请参阅
Java 身份验证和授权服务(JAAS)参考指南
。
jaas-realm
不支持扩展或依赖于 PicketBox API 的自定义登录模块。
虽然
elytron
子系统提供
jaas-realm
,但最好使用子系统提供的其他现有安全域。这包括
jdbc-realm
、
ldap-realm
、
token-realm
等等。您还可以通过配置
aggregate-realm
、
distributed-realm
或
failover-realm
来将不同的安全域组合在一起。如果这些都不适合您的目的,请实现一个自定义安全域并使用它,而不是使用自定义登录模块。
以下是您应该使用
jaas-realm
而不是实现自定义安全域的情况:
您将从旧的安全模式、并已实施了自定登录模块的系统迁移到
elytron
子系统。
您将从其他应用服务器迁移到 JBoss EAP,并且已实现了登录模块。
您需要将多个登录模块与提供给这些登录模块的各种标志和选项合并。对于
elytron
子系统中提供的安全域,这些标志和选项可能无法配置。
如需更多信息,请参阅
使用多个身份存储保护应用程序和管理界面
指南中的创建
JAAS 域
。
在 Elytron 和 Elytron 客户端中配置多个证书撤销列表
现在,当您使用多个证书颁发机构 (CA) 时,您可以在
elytron
子系统中配置多个证书撤销列表(CRL)。您可以指定
trust-manager
的
certificate-revocation-lists
属性中使用的 CRL 列表。
如需更多信息,请参阅在
JBoss EAP 中配置 SSL/TLS 指南中的配置
Elytron 中的
证书撤销检查
。
Keycloak SAML 适配器功能 pack
JBoss EAP 不再提供 Keycloak SAML 适配器的归档分发。您可以使用 Keycloak SAML 适配器功能 pack 来安装
keycloak-saml
子系统和相关配置。
Keycloak SAML 适配器功能 pack 提供以下层,您可以根据您的用例安装它们:
keycloak-saml
keycloak-client-saml
keycloak-client-saml-ejb
如需更多信息,请参阅 在
JBoss EAP 中使用单点登录
指南
。
原生 OpenID Connect 客户端
JBoss EAP 现在通过
elytron-oidc-client
子系统提供对 OpenID Connect (OIDC)的原生支持。因此,本发行版本中不提供红帽构建的 Keycloak Client Adapter。
elytron-oidc-client
子系统充当 Relying party (RP)。
elytron-oidc-client
子系统支持仅 bearer 身份验证,还提供多租户支持。例如,您可以使用多租户支持从多个红帽构建的 Keycloak 域验证应用程序的用户。
JBoss EAP 原生 OIDC 客户端不支持 RP-Initiated logout。
您可以使用
elytron-oidc-client
子系统来保护部署到 JBoss EAP 以及使用 OIDC 的 JBoss EAP 管理控制台。
另外,您可以在以下任一情况下,将安全身份从 OIDC 供应商从 Servlet 传播到 Jakarta Enterprise Beans:
Servlet 和 Jakarta Enterprise Beans 位于同一部署中。
Servlet 和 Jakarta Enterprise Beans 位于不同的部署中。
如需更多信息,请参阅 在
JBoss EAP 中使用单点登录
指南
。
用于对密码进行哈希处理的新
hash-encoding
和
hash-charset
属性
现在,您可以使用
hash-charset
和
hash-encoding
属性为
elytron
子系统安全域中的散列密码指定字符集和字符串格式。默认的
hash-charset
值是
UTF-8
。您可以将
hash-encoding
值设置为
base64
或
hex
;
base64
是所有域的默认值,唯一的例外是
properties-realm
,它的默认值是
hex
。
新属性包含在以下安全域中:
filesystem-realm
jdbc-realm
ldap-realm
properties-realm
如需更多信息,
请参阅使用身份存储保护应用程序和管理界面
指南。
基于 Elytron 文件的审计日志的新
编码
属性
现在,您可以使用 encoding 属性在 Elytron 中指定基于文件的审计日志的
编码
。默认值为
UTF-8
。可能会有以下值:
UTF-8
UTF-16BE
UTF-16LE
UTF-16
US-ASCII
ISO-8859-1
如需更多信息,
请参阅使用身份存储保护应用程序和管理界面
指南中的
Elytron 审计日志记录
。
SSLv2Hello
从 JBoss EAP 8.0 Beta 开始,您可以在
elytron
子系统中为
server-ssl-context
和
client-ssl-context
指定
SSLv2Hello
协议。
如果要配置
SSLv2Hello
,您必须配置另一个加密协议,因为后者的目的是确定连接的服务器支持哪个加密协议。
IBM JDK
在其客户端中不支持
SSLv2Hello
,虽然服务器端连接始终接受这个协议。
filesystem-realm
更新
现在,您可以加密与
filesystem-realm
中身份关联的明确密码、哈希密码和属性,以提高安全性。您可以通过两种方式执行此操作:
通过在
add
操作中引用 secret 密钥来创建加密的
filesystem-realm
。
使用 WildFly Elytron 工具中的新的
filesystem-realm-encrypt
命令加密现有的
filesystem-realm
。
现在,您还可以为
filesystem-realm
启用完整性检查,以确保自上次授权写入后
filesystem-realm
中的身份没有被修改。当使用
add
操作创建
filesystem-realm
时,您可以通过引用密钥对来完成此操作。WildFly Elytron 使用密钥对为身份文件生成签名。每当读取身份文件时,完整性检查都会运行。
如需更多信息,
请参阅使用身份存储保护应用程序和管理界面
指南中的 Elytron 中的 Filesystem 域
。
对
distributed-realm
的更新
现在,您可以通过将新属性
ignore-unavailable-realms
设置为
true
,将
distributed-realm
配置为继续搜索引用的安全域,即使连接到任何身份存储的连接也失败。
默认情况下,如果在匹配身份前与任何身份存储的连接失败,身份验证会失败,但
RealmUnavailableException
除外。
当您将
ignore-unavailable-realms
设置为
true
时,如果任何查询的域不可用,则会发出
SecurityEvent
。您可以通过将
emit-events
设置为
false
来配置此行为。
如需更多信息,请参阅
使用多个身份存储保护应用程序和管理界面
指南中的以下资源:
Elytron 中的分布式域
distributed-realm
attibutes
Elytron 支持 Artemis 中的 SSLContext
在 JBoss EAP 8 中,提供了 Elytron 支持来实例化 Messaging 子系统中的
SSLContext
变量。此功能帮助您在多个位置配置
SSLContext
,因为 Elytron 会实例化这个变量。SSLContext 的连接器必须在客户端的 JBoss EAP 服务器的
elytron
子系统中定义,这意味着您无法从独立的消息传递客户端应用定义它。
新的 Elytron 客户端 java 安全供应商
Elytron 客户端现在提供了一个 Java 安全供应商
org.wildfly.security.auth.client.WildFlyElytronClientlytronClientDefaultSSLContextProvider
,您可以使用它来注册 Java 虚拟机(JVM)范围的默认
SSLContext
。
当您在 JVM 中注册具有高优先级的提供程序时,使用
SSLContext.getDefault ()
方法的所有客户端库都会获取在 Elytron 客户端配置中配置为默认 SSL 上下文的实例。这样,您可以在不直接与 Elytron API 交互的情况下使用 Elytron 客户端的 SSL 上下文配置。
如需更多信息,请参阅 JBoss EAP 指南中的
在 JBoss EAP 客户端中使用 Elytron 客户端默认
SSL
context 安全供应商
。
可以从 Elytron 获取自定义主体
在 JBoss EAP 8.0 中,您现在可以从 Elytron 获取自定义主体。在以前的版本中,Elytron 需要主体作为
NamePrincipal
实例进行身份验证。虽然可以使用从当前
SecurityDomain
获取的
SecurityIdentity
,并使用
SecurityIdentity
属性从域获取信息,但它需要依赖
SecurityDomain
和
SecurityIdentity
而不是更通用的和标准化方法,如
jakarta.security.enterprise.SecurityContext.getCallerPrincipal ()
。
现在,在使用 Elytron 时,您可以从
getCallerPrincipal ()
方法获取自定义主体。如果您的使用旧安全的应用程序代码依赖于从
getCallerPrincipal ()
方法获取自定义主体,您可以在不需要代码更改的情况下迁移应用程序。
Jakarta EE Core Profile
Jakarta EE 10 Core Profile 现在包括在 JBoss EAP 8.0 中。Core Profile 是一个小型轻量级配置集,提供适合较小的运行时的 Jakarta EE 规格,如微服务和云服务。Jakarta EE 10 Core Profile 作为 Galleon 置备层
ee-core-profile-server
提供。
如需有关 Core Profile Galleon 层的更多信息,请参阅
JBoss EAP 中的 Capability pruning for OpenShift: Base layer
。
Hibernate Search 6 替换 Hibernate Search 5 API
Hibernate Search 5 API 已被删除,并被 JBoss EAP 8.0 中的 Hibernate Search 6 API 替换。
要查看删除的功能列表,请参阅
JBoss EAP 7.4 中的 Hibernate Search 5 API 已弃用,并在 EAP 8.0 中删除
。
Hibernate Search 6 API
与 Hibernate Search 5 API 向后兼容
。您需要将您的应用程序迁移到 Hibernate Search 6。
JBoss EAP 8.0 中包含的 Hibernate Search 6 的最新版本是 6.2。如果您要从 Hibernate Search 5 迁移,您应该考虑迁移到 6.0、6.1
和
6.2 版本。
如需更多信息,请参阅以下迁移指南:
要从 Hibernate Search 5 迁移应用程序,请查看
Hibernate Search 6.0 迁移指南
。
要将应用程序从 Hibernate Search 6.0 迁移到 6.1,请参阅
Hibernate Search 6.1 迁移指南
。
要将应用程序从 Hibernate Search 6.1 迁移到 6.2,请参阅
Hibernate Search 6.2 迁移指南
Hibernate Search 6.2 与 Hibernate ORM 6.2 兼容。如需更多信息,请参阅 Hibernate Search 6.2 参考文档中的
Hibernate ORM 6
部分。
Hibernate Search 6 支持 Elasticsearch
JBoss EAP 8.0 还支持在 Hibernate Search 6 中使用 Elasticsearch 后端,将数据索引到远程 Elasticsearch 或 OpenSearch 集群中。
要查看可能的 Hibernate 搜索架构和后端列表,请参阅
Table 2。构架的比较
中的 Hibernate Search 6.2 参考文档。
有关配置 Hibernate Search 6 的更多信息,请参阅 WildFly Developer
指南中的使用 Hibernate Search
。
支持 Infinispan 分布式查询、计数器和锁定 API 和 CDI 模块
现在,您可以在 JBoss EAP 8.0 中使用 Infinispan API 进行分布式查询、计数器和锁定。
JBoss EAP 8.0 中还提供了 Infinispan CDI 模块来创建和注入缓存。
如需更多信息,请参阅
EAP 8 现在支持 Infinispan 查询、计数器、锁定和 CDI
。
添加新的 Galleon 层
添加了一个新的 Galleon 层,以支持与嵌入式 ActiveMQ Artemis 代理的 Jakarta 消息传递服务(JMS)集成。如需更多信息,请参阅迁移指南中的
嵌入式代理消息传递部分 Galleon 层
。
JBoss EAP 8.0 服务器与 JBoss EAP 7 和 JBoss EAP 6 的互操作性
在 JBoss EAP 8.0 中,您可以启用 JBoss EAP 8.0 和 JBoss EAP 服务器的旧版本之间的互操作性。JBoss EAP 支持其 API 类使用
jakarta
软件包命名空间的 Jakarta EE 10。但是,旧版 JBoss EAP 使用
javax
软件包命名空间。
JBoss EAP 6 和 JBoss EAP 7 支持的旧版本
JBoss EAP 6 和 JBoss EAP 7 之间的互操作性不受此问题的影响,因为两个服务器都支持
javax
软件包命名空间。
有关如何在 JBoss EAP 8.0 和 JBoss EAP 旧版本之间启用互操作性的更多信息,请参阅
如何启用互操作性
。
基于 Infinispan 的分布式计时器
在 JBoss EAP 8.0 中,您现在可以使用基于 Infinispan 的分布式计时器来调度集群中的持久 Jakarta Enterprise Bean 计时器,您可以扩展到大型集群。如需更多信息,请参阅
EAP 8 - 如何配置基于 Infinispan 的分布式计时器
。
可分布式 EJB 子系统
使用
distributable-ejb
子系统配置
ejb3
子系统功能所需的集群抽象提供程序,例如:
有状态会话 Bean (SFSB) 缓存工厂
EJB 客户端应用程序的客户端映射 registry
分布式 EJB 计时器
目前,您可以在系统范围的级别上定义这些供应商。计划通过自定义
ejb3
子系统来开发功能,以启用特定于部署的提供程序。有关更多信息,请参阅
EAP 8 中的 distributable-ejb 子系统
。
Red Hat build of Keycloak SAML 支持 JBoss EAP 8.0
在发布适配器时,支持将红帽构建的 Keycloak SAML 适配器与 JBoss EAP 8.0 Source-to-Image (S2I)镜像搭配使用。如需更多信息,请参阅
OpenShift、SSO SAML 对 EAP 8 的支持
。
使用 Maven 插件调配 JBoss EAP 服务器
现在,您可以使用 OpenShift 上的 JBoss EAP Maven 插件:
使用 Galleon 置备修剪的服务器。
在置备的服务器上安装您的应用程序。
使用 JBoss EAP 管理 CLI 调整服务器配置。
将额外文件打包到服务器安装中,如
keystore
文件。
将插件集成到 JBoss EAP 8.0 source-to-image 应用构建中。
如需更多信息,请参阅使用
Maven 插件置备 JBoss EAP 服务器
。
JBoss EAP Source-to-image 的 OpenID Connect 支持
现在,您可以使用新的
elytron-oidc-client
子系统来保护部署到带有 OpenID Connect (OIDC)的应用程序,而不是安装之前所需的 Keycloak 客户端适配器。您可以使用环境变量配置
elytron-oidc-client
子系统,以使用 OIDC 保护应用程序。这个版本不提供 Red Hat build of Keycloak Client Adapter。如需更多信息,
请参阅使用 OpenID Connect 来保护 OpenShift 上的 JBoss EAP 应用
。
使用 Source-to-Image 构建应用程序镜像
在 JBoss EAP 8.0 中,已安装的服务器已从 Source-to-Image (S2I)构建器镜像中删除。Galleon 功能包和层现在用于在 S2I 构建阶段置备服务器。若要调配服务器,请将 JBoss EAP Maven 插件包含在应用的
pom.xml
文件中。如需更多信息,请参阅在
OpenShift 中使用 Source-to-image 构建应用程序镜像
。
使用环境变量覆盖管理属性
若要更轻松地将 JBoss EAP 服务器配置适应您的服务器环境,您可以使用环境变量覆盖任何管理属性的值,而无需编辑配置文件。您不能覆盖类型为
LIST
、
OBJECT
或
PROPERTY
的管理属性。在 JBoss EAP 8.0 OpenShift 运行时镜像中,这个功能会被默认启用。如需更多信息,
请参阅使用环境变量 覆盖管理属性
。
环境变量检查来解析管理模型表达式
JBoss EAP 现在在解析管理模型表达式时支持环境变量检查。在以前的 JBoss EAP 版本中,JBoss EAP 服务器仅检查管理表达式中是否有 Java 系统属性。现在,服务器会检查相关的环境变量和系统属性。如果同时使用这两个属性,JBoss EAP 将使用 Java 系统属性而不是 环境变量来解析管理模型表达式。有关使用环境变量解析管理模型表达式的更多信息,
请参阅使用环境变量和模型表达式解析
。
Maven 兼容性
Maven 版本 3.8.5 或更早版本,包括早于 3.3.2 的 Apache Maven WAR 插件版本。这会导致使用
eap-maven-plugin
打包错误。要解决这个问题,您必须升级到 Maven 版本 3.8.6 或更高版本。或者,您可以将
maven-war-plugin
依赖项(版本 3.3.2 或更高版本)添加到应用程序
pom.xml
中。
节点命名的改进
jboss.node.name
系统属性的值是从 pod 主机名生成的,可以使用
JBOSS_NODE_NAME
环境变量进行自定义。此系统属性不再充当事务 ID,并且长度没有限制 23 个字符,因为它在之前的 JBoss EAP 版本中使用。
但是,在 JBoss EAP 8.0 中,新的系统属性
jboss.tx.node.id
也会从 pod 主机名生成,并可使用
JBOSS_NODE_NAME
环境变量进行自定义。这个系统属性现在长度限制为 23 个字符,并充当事务 ID。
JBoss EAP 8.0 镜像中的 Java 选项更改
JVM 在 JBoss EAP 8.0 镜像中自动调整内存和 cpu 限制和垃圾收集器配置。镜像不使用计算
-Xms
和
-Xmx
选项,使用
-XX:InitialRAMPercentage
和
-XX:MaxRAMPercentage
选项来动态实现相同的功能。
CONTAINER_CORE_LIMIT
和
JAVA_CORE_LIMIT
已被删除。另外,
-XX:ParallelGCThreads,
-Djava.util.concurrent.ForkJoinPool.common.parallelism
, 和
-XX:CICompilerCount
不再使用。
在 OpenShift 上部署第三方应用程序
使用 JBoss EAP 8.0,您可以使用编译的 WAR 文件或 EAR 归档为 OpenShift 部署创建应用程序镜像。通过使用 Dockerfile,您可以使用完整的运行时堆栈(包括操作系统、Java 和 JBoss EAP 组件)将这些存档部署到 JBoss EAP 服务器中。您可以根据 Source-to-Image (S2I)创建应用程序镜像。
OpenShift 上的 JBoss EAP 8.0 服务器安装中排除的文件
在 OpenShift 上安装 JBoss EAP 8.0 服务器时,不需要以下文件,并被有意排除:
bin/appclient.sh
bin/wsprovide.sh
bin/wsconsume.sh
bin/jconsole.sh
bin/client
JBoss EAP 8.0 Operator
JBoss EAP 8.0 Operator 很快就会可用。当 JBoss EAP Operator 可用时,您将能够使用操作器部署 JBoss EAP 8.0 应用程序。如需更多信息,请参阅
JBoss EAP Operator 支持政策。
使用 JBoss EAP 8.0 Operator 增强的 Health Probe 配置
JBoss EAP 8.0 Operator 现在为健康探测提供了改进的配置选项,专注于在 JBoss EAP 8.0 和 JBoss EAP 7.4 镜像之间更好地探测自定义和兼容性。此功能增强可确保两个镜像间的平稳互操作性,允许探测灵活地调整其执行方法。
JBoss EAP 8.0 实例中的主要改进:
-
使用 JBoss EAP 8.0 和 JBoss EAP 7 的镜像的功能。
能够配置
存活度Probe
、
ReadinessProbe
和
StartupProbes
。
支持的 EAP 8 快速入门
所有支持的 JBoss EAP 8 快速入门都位于
jboss-eap-quickstarts
中。
Maven 的新 JBoss EAP BOMs
JBoss EAP BOM 提供 Maven BOM 文件,它指定了构建或测试 Maven 项目所需的 JBoss EAP 依赖项版本。此外,Jakarta EE 10 BOM 为相关框架提供依赖项管理,如 Hibernate、RESTasy 和专有组件,如 Infinispan 和 Client BOMs。
无法在 ActiveMQ 服务器上添加网桥
在 JBoss EAP 7 中,您可以在创建源队列前在
messaging-activemq
子系统中创建 Java 消息服务(JMS)网桥。网桥在源队列创建前保持不活跃。
在 JBoss EAP 8 中,您必须先创建源队列,然后才能使用
bridge:add
命令创建 JMS 网桥。如果您在创建源队列前创建 JMS 网桥,则
bridge:add
命令将失败。
在
messaging-activemq
子系统中添加新连接器
在 JBoss EAP 8.0 中,当使用
messaging-activemq
子系统中的 CLI 添加新连接器时,您必须重新启动或重新加载服务器,以便系统的其他部分可以访问连接器。在 JBoss EAP 7.4 中,一个连接器会被系统的其他部分添加和引用,但无法在重启或重新加载服务器的情况下使用它。
MyFaces 的 Jakarta Faces 实施的更改
在以前的版本中,您可以将 Jakarta Faces 实施替换为替代方案。但是,对于 JBoss EAP 8.0 中的
MyFaces
,此功能已移到需要使用 Galleon 工具置备的外部功能软件包中。如果要使用非默认 Mojarra 版本,则需要手动配置。如需更多信息,
请参阅如何在 EAP 8 中配置 Multi-JSF 功能
。
JGroup 协议堆栈的更新
在 JBoss EAP 8.0 中的 JGroup 协议堆栈中添加了新的 "RED" 协议。另外,现有协议已被升级。
下表列出了协议更新:
旧协议
|
升级的协议
|
FD_SOCK
FD_SOCK2
FD_ALL
FD_ALL3
VERIFY_SUSPECT
VERIFY_SUSPECT2
FRAG3
FRAG4
虽然旧协议堆栈仍可在 JBoss EAP 8.0 中工作,但使用升级的堆栈来获得最佳结果。
3.21.
jboss-eap-installation-manager
现在,您可以使用
jboss-eap-installation-manager
安装和更新 JBoss EAP 8.0。您还可以执行服务器管理操作,包括更新、恢复和各种频道管理任务。
如需更多信息,请参阅
安装指南
。
3.22.
jboss-eap-installation-manager
的管理 CLI 集成
在 JBoss EAP 8.0 中,引入了一个显著的增强,它随着在
安装程序
命令下的管理 CLI 集成
jboss-eap-installation-manger
。此功能增强允许您在独立或受管域模式中无缝执行广泛的服务器管理操作,如更新、恢复和管理频道操作。
如需更多信息,请参阅更新
指南
。
3.23.
jboss-eap-installation-manager
的 Web 控制台集成
在 JBoss EAP 8.0 中,您现在可以使用 Web 控制台在 JBoss EAP 安装中更新、恢复和管理频道。但是,建议您使用
jboss-eap-installation-manager
。
如需更多信息,请参阅更新
指南
。
如果您使用
galleon/provisioning.xml
配置文件,使用有效的 S2I 置备 JBoss EAP 7.4 安装,并希望将该文件转换为 JBoss EAP 8 的有效配置,您必须注意以下更改:
在
galleon/provisioning.xml
配置文件中,您必须使用
org.jboss.eap:wildfly-ee-galleon-pack
和
org.jboss.eap:eap-cloud-galleon-pack
feature packs 而不是
eap-s2i
feature pack。
要成功使用这些功能软件包,还必须通过在应用程序
pom.xml
中配置
eap-maven-plugin
或使用 S2I 环境变量来启用使用 JBoss EAP 8 频道。
Galleon 置备文件
。
使用
传统 S2I 调配功能 创建 S2I 构建
。
Maven 插件配置属性
。
红帽不支持以下功能。
JBoss EAP 8.0 不支持 Apache Log4j 版本 1 API。如果应用程序没有打包
log4j.jar
,并将 Log4j 配置作为应用程序的一部分,则您必须更新它们。有关迁移或更新应用程序的更多信息,请参阅红帽知识库解决方案
迁移:EAP 8 中不再提供 Apache Log4j 版本 1
。
Agroal 子系统
JBoss EAP 8.0 不再支持 Agroal 子系统。
JBoss EAP 8.0 删除了以下功能:
Jolokia
和
Prometheus
本发行版本中已删除
Jolokia
和
Prometheus
。这些功能已被丢弃,不再受到红帽的支持。JBoss EAP 服务器通过服务器指标端点公开指标:
<server address>:<management port>/metrics
。
红帽已在 JBoss EAP 8.0 中删除了以下环境变量:
GALLEON_PROVISION_DEFAULT_FAT_SERVER
AB_JOLOKIA_AUTH_OPENSHIFT
AB_JOLOKIA_CONFIG
AB_JOLOKIA_DISCOVERY_ENABLED
AB_JOLOKIA_HOST
AB_JOLOKIA_HTTPS
AB_JOLOKIA_ID
AB_JOLOKIA_OFF
AB_JOLOKIA_OPTS
AB_JOLOKIA_PASSWORD
AB_JOLOKIA_PASSWORD_RANDOM
AB_JOLOKIA_PORT
AB_JOLOKIA_USER
AB_PROMETHEUS_ENABLE
AB_PROMETHEUS_JMX_EXPORTER_CONFIG
AB_PROMETHEUS_JMX_EXPORTER_PORT
JGROUPS_ENCRYPT_SECRET
JDK 8
JDK 8 已从 Red Hat JBoss Enterprise Application Platform 8.0 中删除。JDK 11 或 JDK 17 需要。
旧的安全域
旧的安全域已从 JBoss EAP 8.0 中删除。改为使用
elytron
子系统中提供的安全域。
如需更多信息,
请参阅使用身份存储保护应用程序和管理界面
,以及
使用多个身份存储保护应用程序和管理界面
指南。
Picketbox
PicketBox 已从 Red Hat JBoss Enterprise Application Platform 8.0 中删除。任何旧的安全配置都必须迁移到
elytron
子系统。有关将安全配置迁移到
elytron
子系统的更多信息,请参阅
迁移到 Elytron
。
PicketBox vault
PicketBox vault 已从 JBoss EAP 8.0 中删除。使用
elytron
子系统提供的凭据存储来存储敏感字符串。
如需更多信息,请参阅
JBoss EAP 指南中的安全存储凭证
中的 Elytron 中的凭证和
凭证存储
。
PicketLink 子系统
PicketLink 子系统已从 JBoss EAP 8.0 中删除。使用红帽构建的 Keycloak 而不是 PicketLink 身份提供程序,以及 Keycloak SAML 适配器功能提供的 Galleon 层,而不是 PicketLink 服务供应商。
如需更多信息,请参阅在
JBoss EAP 中使用单点登录指南中的使用
SAML 保护应用程序
。
discovery-group
和
broadcast-group
资源
Red Hat JBoss Enterprise Application Platform 7.4 删除了
discovery-group
和
broadcast-group
资源。这些资源仍然在 JBoss EAP8.0 中删除。
另外,红帽 JBoss Enterprise Application Platform 7.4 通过将
discovery-group
和
broadcast-group
资源的所有实例替换为
jgroups-discovery-group
和
socket-discovery-group
资源降低了对其 Web 控制台的影响。
JBoss EAP 7.3 在
messaging
子系统中弃用了以下资源:
/subsystem=messaging-activemq/discovery-group=*
/subsystem=messaging-activemq/server=default/broadcast-group=*
/subsystem=messaging-activemq/server=default/discovery-group=*
JBoss EAP 7.3 将这些已弃用的资源替换为
jgroups-discovery-group
和
socket-discovery-group
资源。每个弃用的资源都包含来自每个替换资源的一个属性,该资源的一个属性设为
null
,另一个属性设为大于
0
的值。这些设置导致
discovery-group
和
broadcast-group
保持活跃状态,但仍将其所有功能分配给
jgroups-discovery-group
和
socket-discovery-group
资源。
Quickstarts
以下过时的或冗余快速入门已从 JBoss EAP 8.0 中删除:
app-client
bean-validation
EJB-asynchronous
ejb-in-ear
ejb-in-war
EJB-security
ejb-security-jaas
greeter
helloworld-html5
helloworld-mbean
helloworld-mdb-propertysubstitution
helloworld-rs
helloworld-ssl
inter-app
jaxws-addressing
jaxws-pojo
jts-distributed-crash-rec
kitchensink-angularjs
kitchensink-ear
kitchensink-jsp
kitchensink-ml
logging-tools
managed-executor-service
messaging-clustering
payment-cdi-event
resteasy-jaxrs-client
spring-greeter
spring-kitchensink-basic
spring-kitchensink-springmvctest
tasks-rs
websocket-client
xml-jaxp
Red Hat build of Keycloak Client Adapter
Red Hat JBoss Enterprise Application Platform 8.0 不提供红帽构建的 Keycloak 客户端适配器。使用新的
elytron-oidc-client
子系统来保护部署到带有 OpenID Connect (OIDC) 的 JBoss EAP 的应用。
Red Hat Enterprise Linux 中的 Java 服务
在 Red Hat Enterprise Linux (RHEL)上运行的 Java 服务(JSVC)已从 JBoss EAP 8.0 中删除。
以下 BOM 已被删除:
JBoss Jakarta EE 8 规范 API
BOM 已被删除。在 Maven 项目中使用
JBoss EAP EE
BOM。
移除了
EAP Runtime Artifacts
BOM。在 Maven 项目中使用
JBoss EAP EE
BOM。
JBoss EJB 客户端旧的
BOM 已被删除。
如需更多信息,请参阅
迁移指南中的
将 JBoss EAP 应用的 Maven 项目迁移到 JBoss EAP 8.0
。
连接器属性
在 JBoss EAP 7.4 中,modcluster 子系统弃用 proxy 元素上的
connector
属性,并将其替换为
listener
属性以避免混淆。JBoss EAP 7.4 中的管理模式使用
listener
属性,但也允许设置
connector
属性。在 JBoss EAP 8.0 中,已弃用的
连接器
属性已被删除,现在您必须使用
listener
属性。如需更多信息,请参阅
Red Hat JBoss Enterprise Application Platform (EAP) 7 中已弃用
。
对
iiop-openjdk
子系统的更改
在 JBoss EAP 8.0 中,旧的 security 子系统已被删除,并由
elytron
子系统替代。您可以将
elytron
子系统安装为对象资源代理(ORB)的安全拦截器。
为了保持与 JBoss EAP 7 的互操作性,例如,使用 JBoss EAP 8.0 主机控制器将 JBoss EAP 作为受管域运行时,已保留了配置旧安全拦截器的功能。
但是,当将 JBoss EAP 作为单机服务器运行时,
不支持
为
iiop-openjdk/security
属性设置值
client
和
identity
。
Hibernate Search 5 API
Hibernate Search 5 API 在 JBoss EAP 7.4 中已弃用,并在 JBoss EAP 8.0 中删除,并替换为 Hibernate Search 6 API。
Hibernate Search 6 API
与 Hibernate Search 5 API 向后兼容
。您需要将您的应用程序迁移到 Hibernate Search 6 以保持可操作性。要迁移应用程序,请参阅
Hibernate Search 6.0 迁移指南
。
要查看已删除 API 的列表,请参阅
JBoss EAP 7.4 中的 Hibernate Search 5 API 已弃用,并在 EAP 8.0 中删除
。
Apache Log4j 版本 1
JBoss EAP 8.0 不支持 Apache Log4j 版本 1 API。如果您的应用程序没有打包
log4j.jar
和 Log4j 配置作为应用程序的一部分,您必须更新这些软件包。有关迁移或更新应用程序的更多信息,请参阅红帽知识库解决方案
迁移:EAP 8 中不再提供 Apache Log4j 版本 1
。
如需更多信息,请参阅
Apache Log4j 版本 1 API 的 Removal
。
Apache Xerces 和 Apache Xalan
Apache Xerces 和 Apache Xalan JBoss 模块(实施 JAXP 版本 1.5)已从 JBoss EAP 8.0 中删除。使用 JDK 的
java.xml
JPMS 模块提供的默认 JAXP 实施,后者实施 JAXP 版本 1.6。如需更多信息,请参阅
JBoss EAP 中的 JDK 提供的 JAXP 实现
。
请参阅 Red Hat JBoss Enterprise Application Platform 8.0
的已知问题以查看本发行版本的已知问题列表。
在默认的非 HA 服务器配置上执行时,
/subsystem=distributable-web/infinispan-session-managementPROFILE:add
操作可能会失败
-
Issue -
JBEAP-24997
-
/subsystem=distributable-web/infinispan-session-managementPROFILE:add
操作会自动添加
affinity=primary-owner
子资源,它需要
routing=infinispan
资源。此操作可能会失败,因为默认的非 HA 服务器配置中没有定义所需的
routing=infinispan
资源。
-
临时解决方案
-
为避免这种无效的中间状态,请在批处理中执行
infinispan-session-management:add
和
affinity=local:add
操作。
HotRod 无法为 Infinispan 进行外部化创建分布式会话
-
Issue -
JBEAP-26062
-
涉及 Red Hat JBoss Enterprise Application Platform 8.0 和 Red Hat Data Grid on OpenShift Container Platform 的互操作性测试显示写入 Infinispan 远程缓存会导致内部服务器错误的问题。当
remote-cache-container
配置为使用默认的 marshaller 时,JBoss Marshalling,缓存写入会导致 HotRod 抛出错误,因为只支持 byte[] 实例。
-
临时解决方案
-
将
remote-cache-container
配置为使用 ProtoStream marshaller
marshaller=PROTOSTREAM
:
存活度探测
:9990/health/live
在 Deployment Error 时不会重启 pod
-
Issue -
JBEAP-24257
-
在 JBoss EAP 7.4 中,当有部署错误导致重启容器时,python 存活度探测会报告 "not alive"。
在 JBoss EAP 8.0 中,存活度探测
:9990/health/live
使用服务器管理模型来确定就绪度。如果 server-state 正在运行,且没有引导或部署错误,则存活度检查会在服务器进程运行时报告
UP
。
因此,部署错误可能会导致 pod 正在运行,但为 "not ready"。这只会影响部署期间出现间歇性错误的应用程序。如果部署期间始终发生这些错误,容器将永不就绪,并且 pod 处于
CrashLoopBackoff
状态。
:9990/health/live
是 Helm chart 和 JBoss EAP operator 使用的默认存活度探测。
临时解决方案
如果有部署错误会导致 pod 正在运行,但报告了 "not ready",请检查服务器引导过程,解决导致错误的部署问题,然后验证服务器是否已正确部署。
如果无法修复部署错误,请将启动探测更改为使用
/ready
HTTP 端点,以便引导错误会触发 pod 重启。例如,如果您使用 Helm 部署 JBoss EAP 应用程序,请通过更新
deploy.livenessProbe
字段来配置存活度探测:
deploy:
livenessProbe:
httpGet:
path: /health/ready
弃用
org.apache.activemq.artemis
模块和警告信息
IBM MQ 资源适配器的限制和已知问题
IBM MQ 资源适配器受到一些限制的支持。如需更多信息
,请参阅部署 IBM MQ 资源适配器
。
更新于 2024-02-08
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at
http://creativecommons.org/licenses/by-sa/3.0/
. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux
® is the registered trademark of Linus Torvalds in the United States and other countries.
Java
® is a registered trademark of Oracle and/or its affiliates.
XFS
® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL
® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js
® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
|