从proxy的源码来看 会在进行org.apache.rocketmq.acl.plain.PlainAccessValidator#validate校验,如果proxy都校验不通过,更加不会走broker,这个解决了我第一层疑惑(为什么要在proxy配置plain_acl.yaml才能生效),另外第二层疑惑就是我在proxy的acl_plain.yaml加了一个新的ak/sk 但是broker是没有配置的 竟然请求成功了?broker此时难道不做权限校验吗?
从proxy的源码来看 会在进行org.apache.rocketmq.acl.plain.Plai[阿里云消息队列MQ]
「点点赞赏,手留余香」
还没有人赞赏,快来当第一个赞赏的人吧!
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 会拒绝该请求并返回错误响应的。