【问题标题】:Websphere Application Server 8.5.5.8 - MQRC 2035Websphere 应用服务器 8.5.5.8 - MQRC 2035
【发布时间】:2018-04-10 13:12:13
【问题描述】:

最近我们将 websphere 应用服务器 v8.0.0.3 迁移到 8.5.5.8。一个应用程序正在运行,它使用 IBM MQ java API 通过 MQ 服务器连接通道连接一台第三方机器。

同一应用程序在 v8.0.0.3 中运行良好,但同一应用程序在 v8.5.5.8 中未与 MQ 连接。我们得到“MQRC 2035”(未授权)。

确切错误:

Could be configuarion, network or service availability issue. Root Cause: MQJE001: Completion Code '2', Reason '2035'

以“SYSTEM”用户(Windows 服务)运行的新旧版本的应用服务器。

可以通过在第三方端添加setmqauth来解决。但我们需要澄清一下为什么同一个应用程序无法在 v8.5.5.8 上运行

【问题讨论】:

    标签: websphere ibm-mq


    【解决方案1】:

    WAS v8.0.0.3 随 IBM MQ RA v7.0.1.7 一起提供。是 v8.5.5.8 随附 IBM MQ RA v7.1.0.6。

    IBM MQ MQ 的行为在 v7.1 中已更改为不流动空白 MCAUSER。这在 IBM 技术说明“Changes in the default user identifier between WebSphere MQ V7.0.1 classes for JMS and WebSphere MQ V7.1 classes for JMS”中有记录。

    回答

    WebSphere MQ 访问控制基于用户标识符。有一个 故意更改 WebSphere MQ 之间的默认行为 JMS 的 V7.0.1 类和 WebSphere MQ V7.1(及更高版本)类 对于 JMS,关于流入队列的默认用户标识符 经理。从用于 JMS 的 WebSphere MQ V7.1 类开始,一个 非空白用户标识符总是流向队列管理器时 创建到 WebSphere MQ 的连接。

    如果第三方方在 WAS v8.0.0.3 中允许空白 MCAUSER,则表明第三方方未验证您通过的内容,更糟糕的是可能让您连接作为 MQ 管理员,您可以访问所有队列,包括队列管理器上的 SYSTEM 队列。

    【讨论】:

      【解决方案2】:

      在 MQEnvironment 中显式添加用户 ID 后问题得到解决。

      哈希表 mqht = new Hashtable(); mqht.put(CMQC.USER_ID_PROPERTY, userID);

      http://www-01.ibm.com/support/docview.wss?uid=swg21138961

      【讨论】:

      • 这仍然在队列管理器上留下了一个安全漏洞,因为它只接受您发送给它的任何值,包括成为 MQ 管理员用户的空白。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-05
      • 2011-12-04
      • 1970-01-01
      • 2016-06-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多