在网上找了很久,终于找到了如何在RabbitMQ上编程创建用户。基本上,您必须发送带有 PUT 或 POST “状态”的 HTTP 请求。由于我在 Java Web 上进行开发,我可以很容易地找到一个 Java 库来支持我。我使用了 Apache HTTP 库,你可以在这里找到它:
http://hc.apache.org/downloads.cgi
所以,我的 Java 代码贴在下面:
对于库,导入:
import org.apache.http.client.methods.HttpPut;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.commons.codec.binary.Base64;
创建新用户的代码:
// First, save your user/pw with permission to create new users.
// NOTE: this user is already created on RabbitMQ with permission to create new users
String enc = new String( Base64.encodeBase64( "USER_NAME_WITH_PERMISSION:PASS_W".getBytes() ) );
try{
HttpPut putCriaUsuario = new HttpPut( "http://RABBIT_MQ_IP:PORT/api/users/USER_NAME_TO_CREATE );
putCriaUsuario.addHeader( "Authorization", "Basic " + enc ); // RabbitMQ requires a user with create permission, create it mannually first
putCriaUsuario.addHeader( "content-type", "application/json" );
putCriaUsuario.setEntity( new StringEntity( "{\"password\":\"YOUR_PASS_WORD\",\"tags\":\"none\"}" ) );
client.execute( putCriaUsuario );
//After create, configure RabbitMQ permissions
HttpPut putConfiguraPermissoes = new HttpPut( "http://RABBIT_MQ_IP:PORT/api/permissions/QUEUE_NAME/USER_NAME_CREATED" );
putConfiguraPermissoes.addHeader( "Authorization", "Basic " + enc );
putConfiguraPermissoes.addHeader( "content-type", "application/json" );
putConfiguraPermissoes.setEntity( new StringEntity( "{\"configure\":\"^$\",\"write\":\".*\",\"read\":\".*\"}" ) ); // Permission you wanna. Check RabbitMQ HTTP API for details
client.execute( putConfiguraPermissoes );
}catch( UnsupportedEncodingException ex ){
ex.printStackTrace();
}catch( IOException ex ){
ex.printStackTrace();
}
这是 Java,因此可以在桌面应用程序或 Java Web 上使用。在其他语言上遵循相同的逻辑,只是使用另一个库。希望它对我们所有人都有帮助。很高兴分享知识!