yyqdbngt opened a new issue, #5240:
URL: https://github.com/apache/rocketmq-dashboard/issues/5240

   ### Before creating
   
   - [x] I have searched the existing issues and found no duplicate.
   - [x] I have checked the latest `rocketmq-studio` branch where this problem 
still exists.
   
   ### Bug report
   
   **Which page or component**
   
   
`server/src/main/java/org/apache/rocketmq/studio/instance/acl/AclService.java` 
— the Tencent routing branches of 
`createRule`/`updateRule`/`deleteRule`/`createUser`/`updateUser`/`deleteUser`.
   
   **What happened**
   
   Every mutation method routes Tencent instances to `tencentAclService` and 
returns **before the audit call** that the Apache path records:
   
   ```java
   if (isTencentInstance(instanceId)) {
       return tencentAclService.createRule(instanceId, rule);   // no 
CREATE_ACL_RULE audit
   }
   ...
   AclRuleVO saved = aclRepository.saveRule(rule);
   auditRule("CREATE_ACL_RULE", saved);                          // Apache path 
audits
   ```
   
   `TencentAclService` itself contains no audit call (verified: zero 
references). So on a Tencent cloud instance an operator can create, change or 
revoke ACL users and rules — the most security-sensitive surface the console 
manages — and the audit log shows nothing, while the identical operation on an 
Apache instance records `CREATE/UPDATE/DELETE_ACL_RULE`/`ACL_USER`. This is the 
same cloud-ops-skip-audit family as #5120 (test message) and #5119 (direct 
consume), plus #5148 (proxy reload failures).
   
   A second, smaller gap in the same methods: the Apache-path audits pass 
`clusterId = null`, so even Apache ACL mutations cannot be attributed to an 
instance in the audit trail.
   
   **Steps to reproduce**
   
   1. Register a Tencent instance and open its ACL page.
   2. Create or delete an ACL user/rule.
   3. Open Ops → Audit: no `CREATE_ACL_USER`/`DELETE_ACL_RULE` row exists for 
the operation; repeat on an Apache instance and the row appears.
   
   **Expected behaviour**
   
   Both paths record the same audit vocabulary. Tencent rows use the role name 
as the resource identifier (Tencent VOs carry no numeric id, per the 
TencentAclService contract) and the instance identifier as the cluster context; 
the Apache rows now carry the instance context too. A provider failure still 
records nothing (the exception propagates before the audit), matching the 
per-service audit convention.
   
   **Environment**
   
   branch `rocketmq-studio`, commit `4ee173ad`.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to