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]