2015-02-11 161 views
5

Apache ActiveMQ使用用戶名和密碼創建安全連接。使用ActiveMQ JMS連接的用戶名和密碼

InitialContext initCtx = new InitialContext(); 
javax.jms.ConnectionFactory qcf = (javax.jms.ConnectionFactory) initCtx.lookup(factoryName); 
Connection connection = qcf.createConnection(userName, password); 

我在哪裏可以找到這些憑證。這些用戶名和密碼是否在任何ActiveMQ配置文件中配置?

回答

-1

您是否嘗試連接但未提供用戶名&密碼,默認情況下您應該可以執行此操作。

ConnectionFactory connectionFactoryProd = new ActiveMQConnectionFactory("failover://tcp://yourServerWhereActiveMqIs:61616"); 
Connection connectionProd = connectionFactoryProd.createConnection(); 
connectionProd.start(); 
+0

是的,我嘗試過。它正在連接,但我想爲它設置用戶名和密碼。 – 2015-02-11 11:43:12

+0

目前它正在接受任何用戶名和密碼並連接。但我希望它的行爲正確,如果錯誤的憑據給出,那麼它不應該連接。 – 2015-02-11 11:45:08

+0

對不起,但這顯然不能回答這個問題,是嗎? – hschne 2015-02-11 16:39:09

5

要回答你的問題:的確是這樣,並在憑證中定義的文件的名稱是activemq.xml。它可以在您的ActiveMQ安裝的conf目錄中找到,例如C:\Program Files (x86)\apache-activemq-5.10.0\conf。現在

,上this site有如何的ActiveMQ配置爲使用簡單的身份驗證或JAAS相當詳細的說明,但我給你的簡要介紹和一些技巧:

  • 以下所有的東西都有插入上述XML文件的plugins部分。

  • 使用SimpleAuthentication爲了僅將用戶「添加」到組,例如,

    <simpleAuthenticationPlugin anonymousAccessAllowed="true"> 
         <users> 
          <authenticationUser username="system" password="system" groups="users,admins"/> 
          <authenticationUser username="admin" password="admin" groups="users,admins"/> 
          <authenticationUser username="user" password="user" groups="users"/> 
          <authenticationUser username="guest" password="guest" groups="guests"/> 
         </users> 
        </simpleAuthenticationPlugin> 
    
  • 使用AuthorizationPlugin配置哪些組可以訪問哪些隊列和主題。

  • 如果您打算使用SimpleAuthentication,請確保您的有效插件中沒有<jaasAuthenticationPlugin configuration="activemq-domain" />。以防萬一你打算從我之前提到的頁面複製一個樣本。

  • 您可能想要啓用匿名訪問。爲此,請將相應的屬性添加到SimpleAuthenticatoinPlugin節點。一旦完成,您可以在創建連接時連接到隊列而無需提供用戶名和密碼。