unbridled-41 opened a new issue, #5905:
URL: https://github.com/apache/rocketmq-dashboard/issues/5905
### Studio Version
branch: `rocketmq-studio` @ `7e7aa344` (the revision verified; the branch is
based on it)
deployed as: not required to reproduce
### Runtime Environment
Reproduced with the backend unit tests (`cd server && mvn -o -B -ntp test
-Dtest='TencentAclServiceTest'`); the Tencent role list is mocked, no cloud
account needed.
### Connected RocketMQ Cluster
Any Tencent Cloud RocketMQ instance with ACL roles.
### Describe the Bug
The ACL page's principal field is a search box
(`web/src/pages/instance/acl.tsx:1136`, placeholder `acl.searchPrincipal` =
搜索主体 / "Search principal"), and every sibling filter in the same feature
matches substrings: the resource filter in the same Tencent branch uses
`containsIgnoreCase`, and on an Apache instance the repository filters the
principal with SQL `LIKE`.
The Tencent path compared it for identity instead:
```java
// server/.../provider/tencent/TencentAclService.java (before)
if (requestedPrincipal != null &&
!requestedPrincipal.equals(role.getRoleName())) {
continue;
}
```
So on a Tencent instance, typing `svc` for roles `svc-a`/`svc-b` returned an
empty page with `total = 0` - which reads as "these roles do not exist" - and
only the full role name matched. No existing test passed a non-null principal
(they all call `listRules(instanceId, null)`), so nothing pinned the behaviour
either way.
### Steps to Reproduce
1. Open the ACL page of a Tencent instance whose roles are `svc-a` and
`svc-b`.
2. Type `svc` in 搜索主体.
3. The rules table is empty; typing `svc-a` shows that one row.
### What Did You Expect to See?
The rules whose principal contains the typed term, as on an Apache instance.
### What Did You See Instead?
An empty page for any partial term.
### Evidence
- `server/.../provider/tencent/TencentAclService.java:117-120`,
`server/.../instance/acl/AclService.java:88-94` (the sibling resource filter),
`web/src/pages/instance/acl.tsx:1136`.
- `cd server && mvn -o -B -ntp test
-Dtest='TencentAclServiceTest#listRulesShouldMatchAPartialPrincipalTest'` -
fails before the fix (empty list), passes after.
### Impact
On every Tencent instance, an operator cannot search roles by a partial
name; the page reports "no rules" for existing roles.
### Acceptance Criteria
- The principal term matches the role name case-insensitively as a
substring, a blank term means "no filter", and a regression test pins both.
**Corresponding PR:** #ISSUEPR#
--
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]