Websphere MQ 7.5:用户ID访问

时间:2013-07-22 11:51:15

标签: java spring authentication ibm-mq

我已经安装了Websphere MQ 7.5并编写了一个Java客户端来连接到队列。为了执行任务,我创建了一个基于SYSTEM.DEF.SVRCONN频道的自定义连接服务器频道。

首先,要阻止具有管理员权限的所有用户以及所有通道的所有授权用户,我都会输入这样的命令(runmqsc TEST_MANAGER):SET CHLAUTH(*) TYPE(BLOCKUSER) USERLIST('nobody', *MQADMIN)。现在我在MQ Explorer中看到了这个限制(TEST_MANAGER - >频道 - >频道识别记录)。

之后,为了向我的测试用户(Java客户端)提供访问权限,我输入了这样一个命令:

SET CHLAUTH(TEST_CHANNEL) TYPE(ADDRESSMAP) ADDRESS('*') MCAUSER('TestUser') .

最后,我在Spring的UserCredentialsConnectionFactoryAdapter中设置了用户名/密码对,用户名为TestUser。

问题是我无法连接2035 MQRC_NOT_AUTHORIZED例外。如果我删除'nobody'/ * MQADMIN阻止规则,一切正常(只有TestUser客户端规则的规则出现)。

1 个答案:

答案 0 :(得分:2)

  

SET CHLAUTH(TEST_CHANNEL)TYPE(ADDRESSMAP)ADDRESS('*')   MCAUSER( '为TestUser')

我认为你不理解这个命令。此命令表示在通道'TEST_CHANNEL'上连接的所有应用程序将使用'TestUser'的UserID。

  

我在Spring中设置了用户名/密码对   UserCredentialsConnectionFactoryAdapter,用户名为   为TestUser。

设置密码毫无意义,因为MQ不执行身份验证。您需要购买第三方产品(即MQAUSX)来处理身份验证。此外,您的CHLAUTH命令实际上覆盖了您在Spring应用程序中设置的任何UserID。

  

问题是我无法连接2035 MQRC_NOT_AUTHORIZED异常。如果我删除'nobody'/ * MQADMIN阻止规则,一切正常(只有TestUser客户端规则的规则出现)。

您是否使用setmqaut命令为UserID'TestUser'提供对队列管理器和队列的适当访问权限?

打开队列管理器的Authority事件,并查看MQ返回2035的确切原因。