unbridled-41 opened a new issue, #4895: URL: https://github.com/apache/rocketmq-dashboard/issues/4895
### Studio Version branch: rocketmq-studio git commit id: 1ef5d860799ac3fabfcdea942cc4dcc77ded7be6 (the revision the reproduction below was verified against) deployed as: built from source ### Runtime Environment OS: Linux (WSL2). The regression test is a `@WebMvcTest(AclController.class)` slice with the real `AclService` between the controller and a mocked `AclRepository`, so no live deployment is needed. MySQL: the inventory path is the Studio ACL store; the slice replaces the repository, so no database is needed for the reproduction. ### Connected RocketMQ Cluster The rule inventory is served by the Studio ACL store rather than by a cluster, and the defect is the missing request parameter, so no RocketMQ cluster is involved. ### Describe the Bug The ACL rule table offers an "ACL 1.0 / ACL 2.0" selector and the console sends it as `aclVersion` on `GET /api/acl/rules`, but no server layer consumed it: the controller declared no such parameter (Spring silently ignores an unknown query parameter) and the service passed a hardcoded `null` into the repository's `acl_version` slot, even though the repository predicate for it already existed. Selecting a version therefore changed only the query string — the response kept every rule and the pagination total never shrank. ### Steps to Reproduce 1. Have rules of both versions in the Studio ACL store (e.g. one with `acl_version` 2.0 and one with 1.0). 2. Open the ACL page's rule tab and select "ACL 1.0". 3. Observe that the request is `GET /api/acl/rules?...&aclVersion=1.0&page=1&pageSize=20` and that the response still contains both rules with the unfiltered `total`. Deterministic form: `AclRuleVersionFilterWebTest.ruleListShouldApplyTheAclVersionFilterToTheQuery` (added by the fix). On 1ef5d860 it fails with `Argument(s) are different! Wanted: findRulePage(null, null, null, null, "1.0", 1, 20)` / `Actual … position [4]: null`, i.e. the request's version never reaches the query. ### What Did You Expect to See? The version filter behaves like the other ACL rule filters (principal, resource, scope, decision) added for the filtered, paginated ACL rule inventory in #2296: it is server-authoritative, applied before paging, and the response contains only the selected version with a matching total. ### What Did You See Instead? The filter has no effect on the returned rows or the total. In demo/mock mode the same selector appears to work, because the mock service applies the filter client-side — which is why the control looks functional until it is used against a real instance. ### Additional Context - The AI tool contract `rmq.acl.list` has no version input, so that path is not affected by this defect. - Fix and regression tests: #4891. -- 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]
