2. 新功能、增强和技术预览


2.1. 新的功能

JBoss EAP 6.4 添加了下列新的功能和改进。
Apache 服务器和连接器
mod_snmp 和 mod_rt 在 ppc64 现在可用了

从JBoss EAP 6.4 开始,mod_snmpmod_rt 在 ppc64 上的 Red Hat Enterprise Linux 系统里可用了。

API
通过管理 API 启用 Web 容器的全局会话超时设置。

全局 HTTP 会话超时现在可以用管理 API 来进行配置。

对 WebSockets 用例开放公用的 API

Websockets API 的 javax.websocketjavax.websocket.server 软件包里的所有类现在都开放为公用的了。

验证管理者
在 org.jboss.security.AuthenticationManager 接口里添加 logout() 方法

我们在 org.jboss.security.AuthenticationManager 接口里添加了 logout 方法。如果您已经实现了如下例的自定义 org.jboss.security.ServerAuthenticationManager,请注意这一点。

<valve>
 <class-name>org.jboss.as.web.security.jaspi.WebJASPIAuthenticator</class-name>
 <param>
  <param-name>serverAuthenticationManagerClass</param-name>
  <param-value>com.acme.ServerAuthenticationManager</param-value>
 </param>
</valve>
群集
mod_cluster 的 fail_on_status

在 mod_cluster 里添加了对 fail_on_status 的支持。fail_on_status 可以用于指定一个或多个 HTTP 状态码,所以如果群集里的工作节点返回其中一个指定的状态码,它将导致工作节点故障。然后负载平衡器将发送进一步的请求到群集里的另外一个工作节点。

域管理
支持的嵌套表达式

表达式可以嵌套,这允许使用高级表达式来替代固定值。管理 CLI 在允许表达式的地方都是允许嵌套表达式的。至于普通表达式,解析嵌套表达式的来源是:系统属性、环境变量和 Vault。

通过 Admin API 读取引导错误的能力

我们创建了一个新的管理 CLI 命令,它输出发生在引导时的任何错误的细节。这个命令是 read-boot-errors,它没有参数。

基于 HTTP/HTTPS 的管理的 Kerberos 验证

现在您可以配置通过 HTTP/HTTPS 进行的管理操作的 Kerberos 验证。这意味着管理控制台现在可以用 Kerberos 验证。

EE
无需 EAR 名称在 jboss-ejb3.xml 里指定资源适配器引用的能力

jboss-ejb3.xml 部署描述符里,当部署描述符和资源适配器位于相同的 EAR 里时,您可以为 Message Driven Bean (MDB) 指定资源适配器而无需指定 EAR 名称,

EJB
新的 StrictMaxPool 实现

通过修改底层的数据结构消除了 EJB StrictMaxPool 里出现的争夺。

对非群集的 EJB 定时器使用替代的持久化库

现在 EJB 定时器的数据可以存储在数据库里并在群集服务器实例间共享。这个方法的优点适用于高可用性环境。

为 jboss-ejb3.xml 里的 <ejb-name> 启用通配符

为 jboss-ejb3.xml 里的 <ejb-name> 启用对通配符(*)的支持。

Hibernate
为 MySQL 5.7 添加新的 Hibernate 方言

为了支持 MySQL 5.7,我们添加了新的 Hibernate 方言。要防止日期和时间里小数位的四舍五入,对方言现在有下列限制:对 "timestamp" 字段,Hibernate 假定 datetime(6),而对于 "time",Hibernate 假定 time(0)

HornetQ
关闭目的地上所有消费者和这些消费者的连接的能力

我们添加了关闭目的地上所有消费者和这些消费者的连接的能力。这个命令可以通过管理 CLI、管理 API 和 JMX 来使用。

中止慢速的 HornetQ 消费者

现在系统可以自动监控消息消费者的速度,如果其速度没有达到指定的标准会采取行动。最小的消费速度以消息每秒指定,如果没有达到,消费者连接被终止或由应用程序发出管理通知。默认情况下这个功能是禁用的。

按照 JMS 用户终止连接的能力

HornetQ 现在支持以 JMS 用户为标准来终止连接。之前只能按照客户 ID 或 IP 地址来终止连接。

Hibernate Search
将 Hibernate Search 设置为默认模块

Hibernate Search 现在是 JBoss EAP 的标准组件了。

安装程序
在安装程序里测试数据源和 LDAP 连接

当通过图形界面或控制台模式安装 JBoss EAP 时,在安装过程中安装程序现在会提供检测 LDAP 和数据源连接性的选项。这确保了安装过程中提供的参数是有效的。

JBoss Web
从 JBoss Module 里的 JAR 加载 taglibs

Tag Library Descriptors (TLDs) 可以从各自的应用程序分离出来,让添加和更新更为容易。要使用这个功能,请创建一个包含 TLD JAR 的自定义 JBoss EAP 6 模块,然后在应用程序里声明对该模块的依赖关系。

配置 Http-Only SSO cookies 的能力

我们在虚拟服务器的 SSO 配置里添加了一个新的属性:http-only。当将其设置为 true 时,这个属性添加 HttpOnly 到 Cookie 头部,指示浏览器应该限制来自非 HTTP API 的访问。

用户应该意识到支持这个限制的选项取决于客户(Web 浏览器)。
通过限制非 HTTP API(如 JavaScript)的访问,这个动作可能减轻安全漏洞的风险。
JCA
启用对 "datasource_class" 系统属性的支持

在默认情况下,当数据库驱动 JAR 包含了一个 services/javax.sql.Driver 文件时,数据源定义里的datasource_class 属性将被忽略而使用 JAR 里的 Driver 类。要覆盖这种默认的行为并使用 datasource_class 属性,请设置属性 -Dironjacamar.jdbc.prefer_datasource_class=true

检测到 JCA 1.7 资源适配器并抛出部署异常

如果检测到 JCA 1.7 资源适配器会抛出异常,因为它属于基于 EE7 的平台。

添加 Leak detector 池

IronJacamar 现在推出了一个连接池实现,它监控连接并在应用程序永不释放时提供反馈。当这个池被关闭或冲刷时,系统日志里将记录跟踪栈信息。要启用这个连接池,请将系统属性 ironjacamar.mcp 设置为 org.jboss.jca.core.connectionmanager.pool.mcp.LeakDumperManagedConnectionPool。要将跟踪栈信息输出到单独的文件里,请将系统属性 ironjacamar.leaklog 设置为相应的文件名及路径。

-Dironjacamar.mcp=org.jboss.jca.core.connectionmanager.pool.mcp.LeakDumperManagedConnectionPool
-Dironjacamar.leaklog=leaks.txt
JMS 操作
为 JMS 资源添加 remove-jndi 操作

现在 JMS 资源里启用了 remove-jndi 操作。

JMX
为 EAP 6 里的 facade MBean 启用 JMX MBean 注册和取消注册的通知。

jboss.asjboss.as.expr 域里的 MBean 不是真正的 MBean 而是 facade。因此,MBean 的注册和取消注册事件是不可用的。现在我们启用了这些域的注册和取消注册事件,并允许监控这些事件。

日志
为基于大小的文件轮换添加后缀支持

我们为基于大小的文件轮换添加了对时间戳的支持,在日志文件轮换时它附加到每个日志文件。时间戳的格式可根据需要进行配置。之前它只能有数字后缀,在某些情况下查找相关的日志文件会比较困难。

在 JBoss Logging 里实现 java.util.logging.LogManager.getLoggerNames()

getLoggerNames() 方法已被添加至 java.util.logging.LogManager,它返回所有 logger 的名称。

审计 syslog handler 应该能够自动重连

审计 syslog handler 添加了新的属性 reconnect-timeout,它指定重连 syslog 服务器的间隔。

使 PeriodicSizeRotatingFileHandler 可以直接通过 CLI/Web 控制台来配置

PeriodicSizeRotatingFileHandler 现在可以通过管理控制台或 CLI 来配置。之前这样的处理程序只能使用自定义处理程序来配置。新的配置方法更容易使用且不容易出错。

为系统属性的 "password" 设置掩码

任何包含文本 password(不区分大小写)的系统属性在通过 logger 输出时将用 redacted 进行替换。这避免了在日志文件里出现明文密码,从而提高了安全性。

管理 CLI
CLI 应该支持元素名的属性替换,而不仅仅是参数。

我们添加元素名称的属性替换。之前管理 CLI 只支持参数的属性替换。

添加 echo 命令以用于 CLI 脚本

我们添加了一个新的 echo 管理 CLI 命令。它逐字输出命令后的任何文本。

管理控制台
在图形化控制台里显示服务器日志

您现在可以在 JBoss EAP 管理控制台里查看服务器和应用程序日志以帮助诊断错误、性能和其他问题。对于在管理控制台的日志查看器里可查看的日志,它必须位于服务器的 jboss.server.log.dir 目录。日志查看器也承认用户的 RBAC 角色分配,所有登录到管理控制台的用户只能查看被授权访问的日志。

访问 Red Hat 插件

现在您可以在管理控制台里访问常用的 Red Hat 客户门户功能。管理控制台顶部的导航条包含一个下拉菜单:Red Hat Access。点击这个菜单会显示三个任务专有的到客户门户的链接:Search Customer PortalOpen CaseModify Case

在控制台里开放 Web 容器的全局会话超时设置

全局 HTTP 会话超时现在可以用管理控制台来进行配置。

Naming
对于远程 TIBCO EMS 查找使用外部上下文

当使用普通的 JMS 资源适配器来连接外部消息服务器时,您可以使用外部上下文而不是编写自定义 ObjectFactory。下面是一个使用 <external-context>示例摘录。请用适合您的 JMS 供应商的属性替换下面例子里的属性。

<external-context name="java:global/tibco" module="com.tibco.tibjms" class="javax.naming.InitialContext">
 <environment>
  <property name="java.naming.factory.initial" value="com.tibco.tibjms.naming.TibjmsInitialContextFactory"/>
  <property name="java.naming.provider.url" value="TIBCO_EMS_SERVER_HOST_NAME:PORT"/>
  <property name="java.naming.factory.url.pkgs" value="com.tibco.tibjms.naming"/>
  <property name="org.jboss.as.naming.lookup.by.string" value="true"/>
 </environment>
</external-context>
补丁
改进了对补丁细节的访问

管理 CLI 命令 patch 有两个额外的参数: inspectinfoinfo 参数输出 installed 补丁的信息,而 inspect 参数则输出 downloaded 补丁的信息。

改进了管理控制台的 Patch Management 面板,包含每个补丁的简短描述以及到更详细内容的链接。
性能
从 1.2 版本里删除向后移植 AbstractPool initLock() 同步

当调用从池里获得连接后注册事务时会创建一个锁。既然事务注册表已经处理了锁且使用并行连接,额外的锁处理是没有必要的,所以会被删除。

新的受管连接池

在 JCA 子系统里创建了新的受管连接池,提高性能并消除服务器里的线程竞争。

PicketLink
集成 PicketLink 子系统到 EAP 控制台的插件

PicketLink 子系统现在可以通过 JBoss EAP 管理控制台来配置,更易于管理。

修改 PicketLink IDP 以支持 SAML 2.0 自发响应

增强了 PicketLink Identity Provider (IDP),它现在可以发送 SAML 2.0 自发响应到服务提供者。

PicketLink 应该是可配置的以忽略 ajax 调用

当用户没有验证并使用 AJAX 发送请求到 IdP 和 SP 时,PicketLink 将用 403 HTTP 状态码而不是登录页面来响应。用 XMLHttpRequest 值检查 X-Requested-With 头部的存在可以确认 AJAX 请求。

RESTEasy
使用 JBossLogging 的 RESTEasy 日志

RESTEasy 的日志功能现在是由 JBossLogging 处理的。这样做的好处包括对日志消息国际化的支持。

新的安全性参数

RESTEasy 有两个新的参数来增强处理 org.w3c.dom.Document 的安全性。两者都是 context-param 参数且都可以在应用程序的 web.xml 里进行设置。

resteasy.document.secure.processing.feature 强制实施了在处理 org.w3c.dom.Document 文档和 JAXB 对象表示形式时的安全约束。
The parameter resteasy.document.secure.disableDTDs 禁止在 org.w3c.dom.Document 和JAXB 对象表示形式里使用 DTD。
resteasy.document.secure.processing.featureresteasy.document.secure.disableDTDs 的默认值是 true。要都禁用或禁用其只一个,请在应用程序的 web.xml 文件里添加下列内容:
<context-param>
 <param-name>resteasy.document.secure.processing.feature</param-name>
 <param-value>false</param-value>
</context-param>
<context-param>
 <param-name>resteasy.document.secure.disableDTDs</param-name>
 <param-value>false</param-value>
</context-param>
RPM 安装和更新
现在可以选择 RPM 频道或资料库来订阅 JBoss EAP 的 RPM 安装和更新。目前的 JBoss EAP 频道提供了最新的版本,而次要频道则提供专门的次要版本及所有的补丁。这允许您保持着相同的次要版本,而仍可以使用重要的安全补丁。关于可用频道的详情,请参考 https://access.redhat.com/solutions/1346093
安全性
SSLValve 允许用户配置的头部名称

以前 SSLValve 用来传递来自发起者的 SSL/TLS 信息的 HTTP 头部的名称是预定义的,如:ssl_client_cert、ssl_cipher、ssl_session_id 和 ssl_cipher_usekeysize。进行修改后,头部名称现在是可以定制的,发起者可以使用 SSLValve 配置里指定的任意的 HTTP 头部名称。

Remoting 的基于 Kerberos 的验证

现在启用了对 EJB 和 EJB 客户的 Kerberos 验证。

管理安全区应该缓存 LDAP 数据

管理安全区现在缓存 LDAP 数据,这有助于减少 LDAP 请求的次数。

对 Oracle JVM 上的 Oracle DB 的静态 Kerberos 凭证的授权

添加了在 Oracle JVM 上的 Oracle DB 数据源里使用静态 Kerberos 凭证的授权。请注意这要求 Oracle DB 驱动 11.2.0.3 或更新的版本,而且必须启用安全区缓冲。

对 Oracle JVM 上的 SQLServer 的静态 Kerberos 凭证的授权

添加了在 Microsoft SQL Server 数据源里使用静态 Kerberos 凭证的授权。请注意只有 Non-XA 连接支持这个功能。

在 PicketBoxVault 实现里添加对密钥库外部密码的支持

Vault 功能现在支持通过外部命令或自定义提供的密钥库密码。

在 Vault 工具里添加 "remove vault entry" 选项

我们改进了 Vault CLI 工具,添加了删除 Valut 里保存的 Vault 的功能。

在 Java 安全管理者的配置里使用 -secmgr 标记

在启动脚本里添加 -secmgr 参数或启用配置文件里的 SECMGR="true" 选项可以让 JBoss EAP 在 Java 安全管理者里运行。现在不可以再用 -Djava.security.manager Java 系统属性来启用 Java 安全管理者,因此自定义安全管理者不能再使用了。启用自定义安全管理者来启动 JBoss EAP 将导致非零的退出代码。关于启用 Java 安全管理者所需的修改,请参考《安全指南》

支持的配置
Oracle JDK 8

Oracle Java Platform, Standard Edition 1.8 (JDK 8) 已被添加到被支持的配置列表里。

IBM JDK 8

IBM JDK 8 已被添加到被支持的配置列表里。

DBMS

下列的 DBMS 已通过认证且被完全支持:

  • Enterprise DB Postgres Plus Advanced Server 9.3
  • MySQL 5.7
  • IBM DB2 10.5
  • Microsoft SQL Server 2014
  • PostgreSql 9.3

为 PPC 上的 RHEL 测试版本提供 mod_snmp

运行 Red Hat 企业版 Linux 6 和 Red Hat 企业版 Linux 7 的 PowerPC64 架构现在支持简单网络管理协议(Simple Network Management Protocol,SNMP)模块 mod_snmp 了。

WebSockets 1.0
WebSocket 1.0 协议提供 Web 客户端和服务器间的两种通讯方式。客户端和服务器间的通讯是基于事件的,和轮询方法相比,它有更快的处理速度和更小的带宽。
JBoss EAP 6.4 WebSocket 实现为服务器端点提供了完整的依赖关系注入支持,然而它没有为客户端点提供 CDI 服务。CDI 服务限于 EE6 平台要求的内容,因此,EE7 功能如端点拦截器不被支持。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.