本期 Java 近期新闻综述内容主要涉及 Oracle、JDK 18、JDK 19、JDK 20、Spring Boot 和 Spring Security 里程碑版本和点版本、Spring for GraphQL 1.0.1、Liberica JDK 更新、Quarkus 2.10.3、CVE in Grails、JobRunr 5.1.6、JReleaser 维护版本、Apache Tomcat 9.0.65 和 10.1.0-M17、Tornado VM on Apple M1 和 JBNC 大会。
作为 2022 年 7 月 关键补丁更新 的一部分,Oracle 发布了 Oracle Java SE 的 18.0.1.1、17.0.3.1、11.0.15.1、8u333 和 7u343 版本。要了解更多细节信息,请分别查看 JDK 18 、 JDK 17 、 JDK 11 、 JDK 8 和 JDK 7 的发布说明。
JDK 18.0.2 与 Oracle 的关键补丁更新同时 发布 ,带来了小幅升级,并删除了 Subject
类中 current()
和 callAs()
方法的备用 ThreadLocal
类实现。不过,默认实现支持得以保留。要了解更多细节信息,请查看 发布说明 。
根据 JDK 19发布计划 ,Oracle Java 平台组首席架构师 Mark Reinhold 正式 宣布 ,JDK 19 进入 Rampdown 第二阶段,这标志着将于 9 月份发布的 GA 版本越来越稳定。重大 Bug,如回归或严重的功能问题,多半还会得到解决,但必须通过 Fix-Request 流程批准。
JDK 19 版本最终将包含以下 7 个特性:
JEP 405: 记录模式(预览)
JEP 422: Linux/RISC-V移植
JEP 424: 外部函数&内存API(预览)
JEP 425: 虚拟线程(预览)
JEP 426: Vector API(第四个孵化阶段)
JEP 427: Switch模式匹配(第三个预览版)
JEP 428: 结构化并发(孵化器阶段)
JDK 19 早期访问构建 的 Build 32 在上周发布,它是 Build 31 的 升级 ,修复了各种 问题 。要了解更多细节信息,请查看 发布说明 。
JDK 20 早期访问构建 的 Build 7 在上周发布,它是 Build 6 的 升级 ,修复了各种 问题 。发布说明尚未提供。
对于 JDK 19 和 JDK 20 ,我们鼓励开发者通过 Java Bug数据库 报告缺陷。
Spring Boot 2.7.2 发布 ,带来了 Bug 修复、文档改进和依赖项升级,如 Spring Framework 5.3.22、Spring Data 2021.2.2、Spring GraphQL 1.0.1、Tomcat 9.0.65、Micrometer 1.9.2、Reactor 2020.0.21 和 MariaDB 3.0.6。要了解关于这个版本的详细信息,请查看 发布说明 。
Spring Boot 2.6.10 发布 ,带来了 Bug 修复、文档改进和依赖项升级,如 Spring Framework 5.3.22、Spring Data 2021.1.6、Jetty Reactive HTTPClient 1.1.12、Hibernate 5.6.10.Final、Micrometer 1.8.8、Netty 4.1.79.Final 和 Reactor 2020.0.21。要了解关于这个版本的详细信息,请查看 发布说明 。
在通往 Spring Boot 3.0 的道路上, 第四个里程碑版本 正式发布,支持:新的 Elasticsearch Java客户端 ;Flyway 9;Hibernate 6.1。要了解关于这个版本的详细信息,请查看 发布说明 。
Spring Security 5.8.0-M1 和 6.0.0-M6 发布 ,特性包括: SecurityContextHolder
类新增 setDeferredContext()
方法,支持 SecurityContext
查找惰性访问;支持 SecurityContextHolderStrategy
接口,消除存在多个应用程序上下文时的条件竞争;支持 AuthorizationManager
接口,延迟 Authentication
(如 Supplier
)查找以及直接 Authentication
查找;在 Remember-Me
token 中提供一个 MD5 哈希的替代方案。6.0.0-M6 版本有许多破坏性的更改。要了解关于这些版本的详细信息,请查看 5.8.0-M1 和 6.0.0-M6 的发布说明。
Spring for GraphQL 1.0.1 发布 ,特性包括:改进需要 source/parent 但其为 null
时的处理方式;支持解析来自 GraphQL 订阅 的异常; DataBinder
类的 DEFAULT_AUTO_GROW_COLLECTION_LIMIT
字段新增默认限制。这个版本也是随 Spring Boot 2.7.2 发布的,有个依赖项升级到了 GraphQL Java 18.2。要了解关于这个版本的详细信息,请查看 发布说明 。
与 Oracle 2022 年 7 月的 关键补丁更新 (CPU)同时,BellSoft 发布 了 Liberica JDK (OpenJDK 的一个下游分发版) 17.0.3.1.1、11.0.15.1.1 和 8u341 版本的 CPU 补丁。此外,补丁集更新(PSU)版本 18.0.2、17.0.4、11.0.16 和 8u342,包含 CPU 和非关键补丁,也已经发布。
Quarkus 2.10.3.Final 发布 ,解决了 CVE-2022-2466 ,这是在服务器扩展 SmallRye GraphQL 中发现的一个漏洞,其中的服务器请求没有正确终止。这个漏洞只影响到 2.10.x 版本序列。我们鼓励开发者升级到这个最新版本。要了解关于这个版本的详细信息,请查看 发布说明 。
Micronaut 基金会在 Grails 框架中 发现 了一个远程代码执行漏洞。该漏洞已被记录为 CVE-2022-35912 。它让攻击者可以“通过发出一个专门构造作的 Web 请求,获得类加载器访问授权,从而在 Grails 应用程序运行时中远程执行恶意代码”。
该攻击利用了 Grails 中的一部分 数据绑定 能力。为了防范这个漏洞,5.2.1、5.1.9、4.1.1 和 3.3.15 版本已经打了补丁。
JobRunr 是一个 Java 后台处理工具,其创始人和主要开发者 Ronald Dehuysser 发布 了支持 Micrometer Metrics(现在可以暴露定时作业和后台作业服务器的数量)的 5.1.6 版本。
JReleaser (一个简化项目发布的 Java 实用程序)的一个 早期访问版本 发布,修复了 Gradle 中一个属性在访问之前没做适当检查的问题。
Apache 软件基金会发布了 Apache Tomcat 的里程碑版本和点版本。
Tomcat 9.0.65 发布, 特性 包括:修复了 CVE-2022-34305 ,这是表单认证示例中的一个低风险漏洞;支持可重复构建;将 Tomcat Native Library 软件包的版本升级到 1.2.35,其中包括使用 OpenSSL 1.1.1q 构建的 Windows 二进制文件。要了解关于这个版本的详细信息,请查看 变更日志 。
Apache Tomcat 10.1.0-M17(Beta)发布, 特性 包括:将 Tomcat Native Library 软件包的版本升级到 2.0.1,其中包括使用 OpenSSL 3.0.5 构建的 Windows 二进制文件;支持可重复构建;升级实验性模块 Panama,支持 OpenSSL 3.0+。Apache Tomcat 10.1.0-M17 是一个 Alpha 里程碑版本,开发人员可以借此提前试用 Apache Tomcat 10.1 发布序列的新特性。要了解关于这个版本的详细信息,请查看 变更日志 。