Eclipse Temurin 不包含来自 OpenJDK 上游发行版的结构更改。
有关 Eclipse Temurin 的最新 OpenJDK 17 发行版本中包含的更改和安全修复的列表,请参阅
OpenJDK 17.0.4 发行版本
。
新功能及功能增强
查看以下发行注记以了解 Eclipse Temurin 17.0.4 发行版本中包含的新功能和功能增强:
Java Generic Security Services (GSS)或 Kerberos 的 HTTPS 频道绑定支持
当 Negotiate 选择使用
javax.net.HttpsURLConnection
的 Kerberos 身份验证时,OpenJDK 17.0.4 发行版本支持 TLS 频道绑定令牌。
需要频道绑定令牌,因为中间(MITM)攻击。频道绑定令牌是一种增强的安全性形式,可以缓解某些类型的社交攻击。
MITM 通过从客户端到服务器进行通信来运行。客户端在安全性之间创建连接,如 TLS 服务器证书和更高级别的身份验证凭据,如用户名和密码。服务器会检测 MITM 是否表示客户端,因此服务器会关闭连接。
jdk.https.negotiate.cbt
系统属性控制此功能。请参阅
Misc HTTP URL 流协议 handler 属性(Oracle 文档)。
请参阅
JDK-8285240 (JDK Bug System)
。
在
ProcessBuilder
中处理带引号参数的处理错误
在 OpenJDK 17.0.4 发行版本之前,在 Microsoft Windows 上向
ProcessBuilder
的参数包含打开双引号(")、反斜杠(\)和结束双引号("),导致命令失败。例如,Microsoft Windows 上的命令提示符无法正确处理参数
"C:\\Program Files\"
,因为参数包含关闭双引号标记。
OpenJDK 17.0.4 发行版本通过将包含双引号标记的任何参数恢复到
ProcessBuilder
,从而解决了这个问题。
ProcessBuilder
不再对包含反斜杠(\)的参数应用任何特殊处理,然后再关闭双引号标记。
请参阅
JDK-8283137 (JDK Bug System)
。
当遇到
IOException
时默认 JDK 压缩器关闭
OpenJDK 17.0.4 发行版本修改
DeflaterOutputStream.close ()
和
GZIPOutputStream.finish ()
方法。在这个版本中,在将
Throwable
类传播到堆栈前关闭关联的默认 JDK 压缩程序。
此发行版本还修改
ZIPOutputStream.closeEntry ()
方法。在这个版本中,在将
IOException
消息传播到堆栈前关闭关联的默认 JDK compressor。
请参阅
JDK-8278386 (JDK Bug System)
。
在
java.io.File
中禁用 Microsoft Windows Alternate Data Stream 支持的新系统属性
java.io.File
的 Microsoft Windows 实现默认提供对 NTFS Alternate Data Streams (ADS)的访问。这些流采用
filename:streamname
格式。OpenJDK 17.0.4 发行版本添加了系统属性。使用这个系统属性,您可以通过将系统属性
jdk.io.File.enableADS
设置为
false
来禁用
java.io.File
File.File.enableADS 中的 ADS 支持。
在
java.io.File
中禁用 ADS 支持会导致更严格的路径检查,以防止使用特殊设备文件,如
NUL:
。
请参阅
JDK-8285660 (JDK Bug System)
。
更新于 2024-05-04