Websphere Application Server 8.5.5.8-MQRC 2035

Websphere Application Server 8.5.5.8-MQRC 2035,websphere,ibm-mq,Websphere,Ibm Mq,最近,我们将WebSphereApplicationServerV8.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

最近,我们将WebSphereApplicationServerV8.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'
作为“系统”用户运行的应用程序服务器的旧版本和新版本(Windows服务)


可以通过在第三方添加setmqauth来解决此问题。但是我们需要澄清为什么同一个应用程序不能在v8.5.5.8上运行,因为IBM MQ RA v7.0.1.7附带了v8.0.0.3。是v8.5.5.8 IBM MQ RA v7.1.0.6随附

IBM MQ的行为在v7.1中更改为不向空MCAUSER流动。这在IBM Technote“”中有记录

回答

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


如果第三方允许WAS v8.0.0.3使用空白的
MCAUSER
,这表明第三方没有验证您传递的内容,更糟糕的是,可能让您以MQ管理员的身份连接,允许您访问所有队列,包括队列管理器上的系统队列。

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

Hashtable mqht=新的Hashtable(); mqht.put(CMQC.USER\u ID\u属性,userID)


这仍然会在队列管理器上留下一个安全漏洞,因为它只接受您发送给它的任何值,包括变为MQ admin用户的blank值。