This is an automated email from the ASF dual-hosted git repository.
dinglei pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/rocketmq.git
The following commit(s) were added to refs/heads/develop by this push:
new e656f91da5 [ISSUE #7929] Add some request codes to the permission
verification for the admin role (#7930)
e656f91da5 is described below
commit e656f91da5c5376fb30c36fc18048a2b62eb08fc
Author: rongtong <[email protected]>
AuthorDate: Mon Mar 18 13:56:24 2024 +0800
[ISSUE #7929] Add some request codes to the permission verification for the
admin role (#7930)
* Add some request codes to the permission verification for the admin role
* Fix UT can not pass
---
.../java/org/apache/rocketmq/acl/common/Permission.java | 8 ++++++++
.../org/apache/rocketmq/acl/common/PermissionTest.java | 15 ++++++++++-----
2 files changed, 18 insertions(+), 5 deletions(-)
diff --git a/acl/src/main/java/org/apache/rocketmq/acl/common/Permission.java
b/acl/src/main/java/org/apache/rocketmq/acl/common/Permission.java
index 38649b0832..27fac59d58 100644
--- a/acl/src/main/java/org/apache/rocketmq/acl/common/Permission.java
+++ b/acl/src/main/java/org/apache/rocketmq/acl/common/Permission.java
@@ -43,6 +43,14 @@ public class Permission {
ADMIN_CODE.add(RequestCode.UPDATE_AND_CREATE_SUBSCRIPTIONGROUP);
// DELETE_SUBSCRIPTIONGROUP
ADMIN_CODE.add(RequestCode.DELETE_SUBSCRIPTIONGROUP);
+ // UPDATE_AND_CREATE_STATIC_TOPIC
+ ADMIN_CODE.add(RequestCode.UPDATE_AND_CREATE_STATIC_TOPIC);
+ // UPDATE_AND_CREATE_ACL_CONFIG
+ ADMIN_CODE.add(RequestCode.UPDATE_AND_CREATE_ACL_CONFIG);
+ // DELETE_ACL_CONFIG
+ ADMIN_CODE.add(RequestCode.DELETE_ACL_CONFIG);
+ // GET_BROKER_CLUSTER_ACL_INFO
+ ADMIN_CODE.add(RequestCode.GET_BROKER_CLUSTER_ACL_INFO);
}
public static boolean checkPermission(byte neededPerm, byte ownedPerm) {
diff --git
a/acl/src/test/java/org/apache/rocketmq/acl/common/PermissionTest.java
b/acl/src/test/java/org/apache/rocketmq/acl/common/PermissionTest.java
index 8fd8052c8a..39ddbd3eea 100644
--- a/acl/src/test/java/org/apache/rocketmq/acl/common/PermissionTest.java
+++ b/acl/src/test/java/org/apache/rocketmq/acl/common/PermissionTest.java
@@ -23,6 +23,7 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
import org.apache.rocketmq.acl.plain.PlainAccessResource;
+import org.apache.rocketmq.remoting.protocol.RequestCode;
import org.junit.Assert;
import org.junit.Test;
@@ -141,11 +142,15 @@ public class PermissionTest {
@Test
public void checkAdminCodeTest() {
Set<Integer> code = new HashSet<>();
- code.add(17);
- code.add(25);
- code.add(215);
- code.add(200);
- code.add(207);
+ code.add(RequestCode.UPDATE_AND_CREATE_TOPIC);
+ code.add(RequestCode.UPDATE_BROKER_CONFIG);
+ code.add(RequestCode.DELETE_TOPIC_IN_BROKER);
+ code.add(RequestCode.UPDATE_AND_CREATE_SUBSCRIPTIONGROUP);
+ code.add(RequestCode.DELETE_SUBSCRIPTIONGROUP);
+ code.add(RequestCode.UPDATE_AND_CREATE_STATIC_TOPIC);
+ code.add(RequestCode.UPDATE_AND_CREATE_ACL_CONFIG);
+ code.add(RequestCode.DELETE_ACL_CONFIG);
+ code.add(RequestCode.GET_BROKER_CLUSTER_ACL_INFO);
for (int i = 0; i < 400; i++) {
boolean boo = Permission.needAdminPerm(i);