经过很长时间在互联网上搜索,我finnaly发现如何以编程方式在rabbitMQ上创建用户。基本上,你必须发送一个带有PUT或POST“状态”的HHTP请求。由于我在JavaWeb上开发,我可以轻松地找到一个Java库来支持我。我使用的Apache HHTP库,你可以在这里找到:
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 alredy 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 permission
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上。在其他语言遵循相同的逻辑,只是与另一个库。希望它能帮助我们所有人。对分享知识感到高兴!