[英]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.