我已經安裝了Websphere MQ 7.5並編寫了一個Java客戶端以連接到隊列。爲了執行該任務,我創建了一個基於SYSTEM.DEF.SVRCONN
頻道的自定義連接到服務器通道。Websphere MQ 7.5:用戶ID訪問
首先,要阻止所有擁有管理員權限的用戶和所有渠道的所有授權用戶,我鍵入瞭如下命令(runmqsc TEST_MANAGER):SET CHLAUTH(*) TYPE(BLOCKUSER) USERLIST('nobody', *MQADMIN)
。現在我在MQ Explorer中看到了這個限制(TEST_MANAGER - > Channels - > Channel Identification Records)。
之後,提供我的測試用戶(Java的客戶端)與接入,我已經輸入了這樣的命令:
SET CHLAUTH(TEST_CHANNEL) TYPE(ADDRESSMAP) ADDRESS('*') MCAUSER('TestUser') .
最後,我給自己定在春節的用戶名/密碼對UserCredentialsConnectionFactoryAdapter,其中用戶名是TestUser。
問題是我無法連接2035
MQRC_NOT_AUTHORIZED
異常。如果我刪除'nobody'/ * MQADMIN阻止規則,則一切正常(只有TestUser客戶端規則的規則存在)。
您好,羅傑。感謝你的回答。有幾個時刻我不明白。請你澄清他們嗎? (1)。 「另外,您的CHLAUTH命令實際上覆蓋了您在Spring應用程序中設置的任何UserID。」我在文檔中沒有看到這一點。這個過程到底如何? (2)。 「你使用setmqaut命令......」。如果我爲頻道提供安全機制,是否有必要?當然它會更安全,但如果我不提供隊列安全性呢? (3)。 「打開隊列管理器的權限事件」。請問你能建議如何做到這一點? – Dmitry
那麼,有T.羅布的答案:http://stackoverflow.com/questions/9416522/websphere-mq-v7-1-security-user-credentials?rq=1這澄清了一點第一個答案。但是,如果我不指定用戶標識,WebSphere會採用此標識符並將其提供給隊列管理器/隊列安全機制? – Dmitry
我還發現了一篇關於setmqauth的有趣文章:http://patrikvarga.blogspot.ru/2012/11/ibm-mq-object-authorization-for-jms.html – Dmitry