迁移到 8.12
edit迁移到 8.12
edit本节讨论了在将应用程序迁移到 Elasticsearch 8.12 时需要注意的更改。
重大变更
edit8.12 版本没有重大变更
显著变化
edit8.12中有一些显著的变化,您需要了解,我们可能认为显著的变化包括
- 对处于技术预览版的功能的更改。
- 对日志格式的更改。
- 对非公开API的更改。
- 修复关键错误的行为更改。
授权变更
edit从声明中修复JWT主体
详情
这会在JWT被任何JWT领域实际验证之前更改JWT主体的格式。JWT主体是一种方便的方式来指代尚未被JWT领域验证的JWT。JWT主体会打印在审计和常规日志中(特别是在审计认证失败时)以及智能领域链重新排序优化中。JWT主体不需要与JWT认证用户的主题相同,但通常它们应该是相似的。以前,JWT主体是由各个领域以与领域构建认证用户主体相同的方式构建的。这有一个优点,即在更简单的JWT领域配置中(例如,链中只有一个JWT领域),JWT主体和认证用户主体非常相似。然而,缺点是,通常情况下,JWT主体和用户主体可能非常不同(即在一个JWT领域构建JWT主体而另一个构建用户主体的情况下)。另一个缺点是,未认证的JWT主体依赖于领域顺序,这使得从其主体识别JWT依赖于ES认证领域配置。此PR实现了一致且固定的逻辑来构建JWT主体,该逻辑仅依赖于JWT的声明,而不依赖于ES配置。
影响
用户将观察到在JWT(失败)认证情况下,authentication_failed审计日志事件中的user.name属性的格式和值发生了变化。
Java API 变更
editPlugin.createComponents 方法已被重构为接受一个单一的 PluginServices 对象
详情
Plugin.createComponents 目前接受几个不同的服务参数。每次添加新服务时,此方法的签名都会发生变化。该方法现已修改为接受一个单一的接口对象,新服务将添加到该对象中。这将减少未来引入新服务时的API不兼容问题。
影响
需要重构覆盖createComponents的插件以覆盖ES 8.12+上的新方法
REST API 变更
edit[ES|QL] pow 函数总是返回 double
详情
这纠正了ES|QL语言设计中的一个早期错误。最初我们曾考虑让pow返回与其输入相同的类型,但实际上即使对于整数输入,结果也很快超出了可表示的范围,我们很多时候返回了null。这也导致了许多关于在双精度数之间进行类型转换的边缘情况(底层java函数使用的是双精度数)。此PR中的版本遵循java规范,通过始终将其输入转换为双精度数,并返回一个双精度数。这样做还可以显著减少代码行数。
影响
低。大多数查询应继续在此更改下正常运行。