繁体   English   中英

没有密码的RabbitMQ身份验证

[英]RabbitMQ authentication without password

因为我不需要考虑应用程序中的安全问题,所以我想使用没有密码的Java客户端连接到RabbitMQ。

在管理UI中,我将用户密码设置为“无密码”。 然后我这样试了:

ConnectionFactory factory = new ConnectionFactory();
factory.setHost("localhost");
factory.setUsername("myuser");
connection = factory.newConnection();

或者,我尝试手工组装URI:

factory.setUri("amqp://myuser@localhost:5672");

...但在这两种情况下,身份验证都会失败并出现此异常

Exception in thread "main" com.rabbitmq.client.AuthenticationFailureException: ACCESS_REFUSED - Login was refused using authentication mechanism PLAIN. For details see the broker logfile.
    at com.rabbitmq.client.impl.AMQConnection.start(AMQConnection.java:339)
    at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:716)
    at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:760)
    at de.bmw.rabbitmq.workerqueue.Producer2.main(Producer2.java:51)

甚至可以在没有密码的情况下获得连接?

可以使用如下所述的rabbitmq-auth-mechanism-ssl来实现无密码身份验证: https//github.com/rabbitmq/rabbitmq-auth-mechanism-ssl 这要求SSL / TLS支持已设置并正常工作。 如果选择此选项,则使用受信任的根证书进行身份验证,并且完全忽略任何用户名/密码。

我目前正在调查是否可以与LDAP一起进行无密码身份验证,但是我没有运气这么做。

编辑:在我的环境中,Windows服务使用基于证书的身份验证进行身份验证,RabbitMQ群集管理员可以使用LDAP对管理Web UI进行身份验证。 如果您对LDAP身份验证感兴趣,请参阅另一篇关于它的帖子

因为我不需要在我的应用程序中考虑安全问题

我会严重质疑这个假设。 事实上,我甚至会说这是永远不正确的。

话虽如此:

只需使用任何人都可以知道的简单密码。 这样做比在没有密码的情况下尝试让RMQ工作更容易。

最终确定此问题。 正如Derick Bailey所建议的那样:我通过为不同的客户引入(默认)凭证来帮助自己。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM