MQ 7.5授权异常

时间:2016-04-14 16:42:34

标签: java ibm-mq mq

当我尝试从Java连接到MQ 7.5时,我收到以下异常。

Please check if the supplied username and password are correct on the QueueManager to which you are connecting.
        at com.ibm.msg.client.wmq.common.internal.Reason.reasonToException(Reason.java:521)
        at com.ibm.msg.client.wmq.common.internal.Reason.createException(Reason.java:221)
        at com.ibm.msg.client.wmq.internal.WMQConnection.(WMQConnection.java:425)
        at com.ibm.msg.client.wmq.factories.WMQConnectionFactory.createV7ProviderConnection(WMQConnectionFactory.java:6902)
        at com.ibm.msg.client.wmq.factories.WMQConnectionFactory.createProviderConnection(WMQConnectionFactory.java:6277)
        at com.ibm.msg.client.jms.admin.JmsConnectionFactoryImpl.createConnection(JmsConnectionFactoryImpl.java:285)
        at com.ibm.mq.jms.MQConnectionFactory.createCommonConnection(MQConnectionFactory.java:6233)
        at com.ibm.mq.jms.MQConnectionFactory.createConnection(MQConnectionFactory.java:6262)
.
.
Caused by: com.ibm.mq.MQException: JMSCMQ0001: WebSphere MQ call failed with compcode '2' ('MQCC_FAILED') reason '2035' ('MQRC_NOT_AUTHORIZED').
        at com.ibm.msg.client.wmq.common.internal.Reason.createException(Reason.java:209)
        ... 9 more

我找到了这个解决方案:

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

但是通过以下方式通过rumqsc改变队列管理器的授权:

ALTER QMGR CHLAUTH(DISABLED)

不起作用。即使在重新启动队列管理器和侦听器后,我仍然会收到异常。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

您可以使用MQS_REPORT_NOAUTHMQSAUTHERRORS设置获取有关授权失败以及访问失败的详细信息。

答案 1 :(得分:0)

所以你遇到了安全问题,你首先想到的是关闭安全性!!!!!!! OMG。

首先,重新开启安全措施:

ALTER QMGR CHLAUTH(ENABLED)

如果您使用'mqm'或空白的UserID - 糟糕,非常糟糕!

接下来,让您的应用程序使用运行队列管理器的操作系统已知的UserID和Password连接到队列管理器。

然后,添加CHLAUTH规则以允许您的UserID连接(通过runmqsc):

SET CHLAUTH('ABC.SVRCONN') TYPE(USERMAP) CLNTUSER('stepasite') MCAUSER('stepasite')

最后,使用setmqaut为UserID应用适当的权限,但是为组而不是UserID执行此操作。发出MQSC命令'刷新安全性',以便队列管理器获取更改。 即。

setmqaut -m {QM_NAME} -t qmgr -g {GROUP} +connect +inq +dsp
setmqaut -m {QM_NAME} -n MY.Q.** -t queue -g {GROUP} +put +get +inq +dsp
  • 第一个setmqaut命令允许您的组连接到队列管理器。
  • 第二个setmqaut命令允许您的组将消息发送到以“MY.Q”开头的所有队列。 (是的,在setmqaut命令中使用2个星号)

如果您花时间阅读MQ文档,那么设置MQ权限非常简单。以下是setmqaut中的MQ Knowledge Center说明。