MicroProfile GraphQL 2.0,Open Liberty 22.0.0.6中的安全漏洞(CVE)和错误修复

360 阅读4分钟

Open Liberty 22.0.0.6提供了MicroProfile GraphQL 2.0,它结合了Jakarta EE 9.1的依赖性,允许使用更新的Jakarta组件,如CDI 3.0、Jakarta REST 3.0、JSON-B 2.0等等。该版本还包含一些重要的错误修复以及重要的安全漏洞(CVE)修复。

Open Liberty22.0.0.6:

查看22.0.0.6中修复的bug列表。

使用22.0.0.6运行您的应用程序

如果你使用Maven,这里有坐标:

<dependency>
    <groupId>io.openliberty</groupId>
    <artifactId>openliberty-runtime</artifactId>
    <version>22.0.0.6</version>
    <type>zip</type>
</dependency>

或者使用Gradle

dependencies {
    libertyRuntime group: 'io.openliberty', name: 'openliberty-runtime', version: '[22.0.0.6,)'
}

或者如果你使用的是Docker:

FROM open-liberty

或者看一下我们的下载页面

Ask a question on Stack Overflow

MicroProfile GraphQL 2.0

MicroProfile GraphQL 2.0结合了Jakarta EE 9.1的依赖性。 这使得开发者可以继续使用MP GraphQL 1.0提供的相同功能,但也可以使用更新的Jakarta特性,如CDI 3.0restfulWS 3.0JSON-B 2.0等。在功能上,2.0版的行为与1.0版相同,因为它使用相同版本的底层实现(SmallRye GraphQL)。 如果你想了解更多关于MicroProfile GraphQL的信息,请查看我们的《用GraphQL优化微服务的REST查询》指南,或者看看我们的《用MicroProfile GraphQL构建GraphQL应用》文档和我们关于如何使用GraphiQL UI和第三方客户端API的博文

要启用MicroProfile GraphQL 2.0功能,请将其添加到你的server.xml

<featureManager>
  <feature>mpGraphQL-2.0</feature>
</featureManager>

此版本中的安全漏洞(CVE)修复

CVECVSS评分漏洞评估受影响的版本笔记
CVE-2022-22475

影响App Security 1.0App Security 2.0App Security 3.0App Security 4.0的功能。

关于过去安全漏洞修复的列表,请参考安全漏洞(CVE)列表

此版本中修复的值得注意的bug

我们花了一些时间来修复错误。下面几节只描述了在这个版本中解决的一些问题。如果你有兴趣,这里是22.0.0.6中修复的全部bug列表

  • Liberty的OIDC错误被返回了不正确的字符

    以前,Liberty的OIDC 错误是以不正确的字符返回的。当调用OP的/authorize 端点时,如果有缺失或不正确的繁体中文参数,返回的错误信息中有一些???? ,而不是中文字符。同样的情况也发生在其他非ascii语言上。

    错误页面显示:

    "Accept-Language: zh-TW"
    HTTP/1.1 200 OK
    X-Powered-By: Servlet/3.0
    Content-Language: en-DE
    Transfer-Encoding: chunked
    Date: Fri, 06 May 2022 08:42:36 GMT
    
    CWOAU0033E: ????????????client_id
    

    这个问题现在已经被修复,页面应该包含正确翻译的错误信息,而不是????????????

  • 当发出JWT access_token时,刷新令牌没有被清理掉

    OIDCend_session 实例的refresh_token 清理是不同的,取决于发出的访问_令牌的类型。Liberty OP可以发出不透明的或JWTaccess_tokens 。当运行end_session ,在创建不透明的access_tokensrefresh_token 被从缓存中删除,然而在创建JWTaccess_tokensrefresh_token 没有被删除。这个问题已经得到解决,在生成JWT access_tokens的提供者上运行end_session ,应该会使refresh_token

  • 自定义索赔没有传递到后端

    当使用MicroProfile Starterstart.microprofile.io 生成service-aservice-b 在Open Liberty上运行时,在通过localhost:9080 调用JWT后端时,对服务b 的调用不再送出自定义索赔。这个缺陷是由于在Claims.putAll 方法中暴露了一个隐藏的问题,当有空值的索赔时,这个缺陷已经被修复。

  • 将netty的依赖性提升到4.1.77.Final

    Open Liberty中的Netty组件是2022年3月发布的版本4.1.75.Final 。最新的版本4.1.77.Final ,包含了各种错误修复和对当前版本的改进。这些组件已被更新,以确保Open Liberty与上游的修复和改进保持同步。

  • 默认会话元缓存名称在RH DataGrid中失效

    当Liberty创建的infinispan 缓存名称采用百分比编码时,Datagrid Administration GUI Console未能检索到缓存名称。一个例子是:

    com.ibm.ws.session.meta.default_host%2FGestionPedidos
    

    其中GestionPedidos 是应用程序的网络环境,%2F/ 的编码字符。RH DataGrid未能检索到上述缓存名称。

立即获取Open Liberty 22.0.0.6

可通过Maven、Gradle、Docker以及可下载的存档获得。