从proxy的源码来看 会在进行org.apache.rocketmq.acl.plain.PlainAccessValidator#validate校验,如果proxy都校验不通过,更加不会走broker,这个解决了我第一层疑惑(为什么要在proxy配置plain_acl.yaml才能生效),另外第二层疑惑就是我在proxy的acl_plain.yaml加了一个新的ak/sk 但是broker是没有配置的 竟然请求成功了?broker此时难道不做权限校验吗?
5.0里面是proxy暴露的用户的, namesrv、broker理论上用户看不见。 所以在proxy上做acl就行,此回答整理自钉群“群2-Apache RocketMQ 中国开发者钉钉群”
在您的情况中,您的代理(Proxy)配置了 plain_acl.yaml 文件,其中包含访问控制列表(ACL)规则,用于对客户端请求进行验证。如果请求不符合 ACL 规则,则 Proxy 将拒绝该请求,并返回错误响应。因此,如果您在 Proxy 的 plain_acl.yaml 文件中添加了新的 AK/SK,并且在请求中提供了正确的 AK/SK,那么该请求将被 Proxy 接受,并被发送到 Broker 进行处理。
Broker 默认情况下会启用 ACL,如果您没有在 Broker 的配置文件中指定明确的 ACL 规则,则默认情况下所有的请求都将被拒绝。因此,如果您没有在 Broker 的配置文件中指定 ACL 规则,并且在请求中提供了正确的 AK/SK,Broker 会拒绝该请求并返回错误响应的。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
涵盖 RocketMQ、Kafka、RabbitMQ、MQTT、轻量消息队列(原MNS) 的消息队列产品体系,全系产品 Serverless 化。RocketMQ 一站式学习:https://rocketmq.io/