使用 Java Spring AMQP 动态配置 RabbitMQ 用户和权限
Dynamically configure RabbitMQ users and permissions with Java Spring AMQP
出于安全原因,我想配置具有特定权限的单独用户帐户以隔离 RabbitMQ 中的队列。由于用户需要动态(添加新的,删除停用的......)我想用 Java Spring AMQP 来实现这一点。
可以使用
创建队列、交换和绑定
rabbitMqConfig.getAdmin().declareQueue(queue);
rabbitMqConfig.getAdmin().declareExchange(exchange);
rabbitMqConfig.getAdmin().declareBinding(binding);
RabbitMQ 管理 HTTP API 还提供了有关用户管理的功能,如 https://rawcdn.githack.com/rabbitmq/rabbitmq-server/v3.9.4/deps/rabbitmq_management/priv/www/api/index.html 中所述,例如与
/api/users/name
/api/users/user/permissions
所以我会假设 Spring 提供类似
的方法
rabbitMqConfig.getAdmin().declareUser(user);
但是这个好像没有...
在 Java Spring 中实现这个的理想方法是什么?
据我所知,RabbitAdmin
class 不为远程 RabbitMQ 服务器上的 creating/update 用户提供任何类型的 API。
您可以通过创建一个简单的 REST 客户端来实现您想要的,该客户端将与允许这些操作的 API 进行交互。你可以找到这个 here.
的例子
但是,在做这样的事情之前我会三思而后行,因为需要考虑安全隐患(还有一个关于为什么 Java API 不允许这样做的指针)。
例如,执行类似的操作意味着您的应用程序需要具有 RabbitMQ 服务器的管理员权限,这是应该避免的事情。
出于安全原因,我想配置具有特定权限的单独用户帐户以隔离 RabbitMQ 中的队列。由于用户需要动态(添加新的,删除停用的......)我想用 Java Spring AMQP 来实现这一点。
可以使用
创建队列、交换和绑定rabbitMqConfig.getAdmin().declareQueue(queue);
rabbitMqConfig.getAdmin().declareExchange(exchange);
rabbitMqConfig.getAdmin().declareBinding(binding);
RabbitMQ 管理 HTTP API 还提供了有关用户管理的功能,如 https://rawcdn.githack.com/rabbitmq/rabbitmq-server/v3.9.4/deps/rabbitmq_management/priv/www/api/index.html 中所述,例如与
/api/users/name
/api/users/user/permissions
所以我会假设 Spring 提供类似
的方法rabbitMqConfig.getAdmin().declareUser(user);
但是这个好像没有...
在 Java Spring 中实现这个的理想方法是什么?
据我所知,RabbitAdmin
class 不为远程 RabbitMQ 服务器上的 creating/update 用户提供任何类型的 API。
您可以通过创建一个简单的 REST 客户端来实现您想要的,该客户端将与允许这些操作的 API 进行交互。你可以找到这个 here.
的例子但是,在做这样的事情之前我会三思而后行,因为需要考虑安全隐患(还有一个关于为什么 Java API 不允许这样做的指针)。
例如,执行类似的操作意味着您的应用程序需要具有 RabbitMQ 服务器的管理员权限,这是应该避免的事情。