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]

Reply via email to