使用ActiveMQ JMS连接的用户名和密码
问题描述:
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配置文件中配置?
答
您是否尝试连接但未提供用户名&密码,默认情况下您应该可以执行此操作。
ConnectionFactory connectionFactoryProd = new ActiveMQConnectionFactory("failover://tcp://yourServerWhereActiveMqIs:61616");
Connection connectionProd = connectionFactoryProd.createConnection();
connectionProd.start();
答
要回答你的问题:的确是这样,并在凭证中定义的文件的名称是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节点。一旦完成,您可以在创建连接时连接到队列而无需提供用户名和密码。
是的,我尝试过。它正在连接,但我想为它设置用户名和密码。 – 2015-02-11 11:43:12
目前它正在接受任何用户名和密码并连接。但我希望它的行为正确,如果错误的凭据给出,那么它不应该连接。 – 2015-02-11 11:45:08
对不起,但这显然不能回答这个问题,是吗? – hschne 2015-02-11 16:39:09