2014-01-15 30 views
0

我需要從獨立Java應用程序訪問安全MQ隊列。如何從獨立Java應用程序訪問安全MQ隊列

有什麼不同的機制可以做到這一點?我在哪裏可以找到可以實現的不同方式的細節?任何代碼片段或文檔鏈接表示讚賞。

謝謝

UPDATE

感謝沙市。

我對MQ不太熟悉。我在Java方面,所以我讓我們的MQ管理員幫我解釋一下。這是他們告訴我的,我們有。

We have a 「secure」 qmgr MGR1. We are attempting to secure all of the objects. 

    We use two (or more) types of security. 

    Object Level security and Channel Authorization records. 

    Using Channel Authorization records, we can control who can use a channel 
    from where (userid/IP Address) – block everyone else. 

    Object level security, controls who can access a specific object and what 
    they are allowed to do: 

    UID1 has connect authority to the qmgr. Read authority on PV.** queues. 

這是你在問什麼?

+0

能否請您介紹您通過安全MQ意思是設置從應用程序的用戶ID碼? – Shashi

+0

@Shashi - 謝謝。我用細節更新了問題 – adbdkb

回答

0

好的。得到它了。這是所有管理員的工作

1) Allow you connect to queue manager 
2) Allow you put/get messages to queue(s) 

從應用程序的角度來看,沒有什麼與安全性有關。應用程序需要編寫代碼來連接,發送/接收消息。 MQ發貨的樣品數量很多。您可以在Windows機器上的Tools/wmqjava/samples文件夾下找到它們。有Java和Java/JMS示例。開始你可以看看MQSample.java樣本。

編輯

樣品使用USER_ID_PROPERTY

Hashtable props = new Hashtable(); 
props.put(CMQC.HOST_NAME_PROPERTY, "mymq.server.com"); 
props.put(CMQC.PORT_PROPERTY, 1414); 
props.put(CMQC.CHANNEL_PROPERTY, "SYSTEM.DEF.SVRCONN"); 
props.put(CMQC.USER_ID_PROPERTY, "myusername";) 

MQQueueManager qMgr = new MQQueueManager(qManager, props); 
+0

謝謝。我需要在Windows窗口上安裝MQ客戶端嗎?我們的MQ是在Linux上。代碼是否存在於Linux上,以便我可以要求管理員讓我訪問目錄?另外,我能夠使用非安全隊列來執行JMS。樣本是否有訪問安全隊列的代碼? – adbdkb

+0

您的代碼中沒有任何特定的要求。您需要在Windows窗口上安裝MQ客戶端。樣本涵蓋了一系列的語言,包括SSL。從你的回答中,qmgr只具有基本的安全性,並且不使用任何SSL或自定義通道出口,這對用戶/密碼認證提出了挑戰。只要確保,無論您用於連接到qmgr的SVRCONN/CLNTCONN通道的U1D1是否爲MCAUSER。 – Umapathy

+0

謝謝。我曾與MQ管理員合作過。他們根據IP地址在通道/隊列上設置安全性,因爲當我使用獨立應用程序進行呼叫時,它不會以調用java進程的用戶身份發送我的用戶ID。 有沒有什麼辦法可以從我的應用程序發送Id,以便他們可以使用Id進行安全撥打電話,而不是允許來自給定IP地址的任何內容有權訪問該對象? – adbdkb

相關問題