This is an automated email from the ASF dual-hosted git repository.

zhouxzhan 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 7145964b4a [ISSUE 8230] fix the acl for NotifyClientTerminationRequest 
because group can be null. (#8231)
7145964b4a is described below

commit 7145964b4a8db5d29a0af51b352efa2c342122aa
Author: dingshuangxi888 <[email protected]>
AuthorDate: Tue Jun 4 13:46:16 2024 +0800

    [ISSUE 8230] fix the acl for NotifyClientTerminationRequest because group 
can be null. (#8231)
---
 .../main/java/org/apache/rocketmq/acl/plain/PlainAccessResource.java | 5 ++++-
 .../authorization/builder/DefaultAuthorizationContextBuilder.java    | 4 +++-
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git 
a/acl/src/main/java/org/apache/rocketmq/acl/plain/PlainAccessResource.java 
b/acl/src/main/java/org/apache/rocketmq/acl/plain/PlainAccessResource.java
index ccf2418e40..ef05fa6adb 100644
--- a/acl/src/main/java/org/apache/rocketmq/acl/plain/PlainAccessResource.java
+++ b/acl/src/main/java/org/apache/rocketmq/acl/plain/PlainAccessResource.java
@@ -40,6 +40,7 @@ import java.util.Map;
 import java.util.SortedMap;
 import java.util.TreeMap;
 import org.apache.commons.codec.DecoderException;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.rocketmq.acl.AccessResource;
 import org.apache.rocketmq.acl.common.AclException;
@@ -268,7 +269,9 @@ public class PlainAccessResource implements AccessResource {
                 }
             } else if 
(NotifyClientTerminationRequest.getDescriptor().getFullName().equals(rpcFullName))
 {
                 NotifyClientTerminationRequest request = 
(NotifyClientTerminationRequest) messageV3;
-                accessResource.addGroupResourceAndPerm(request.getGroup(), 
Permission.SUB);
+                if (StringUtils.isNotBlank(request.getGroup().getName())) {
+                    accessResource.addGroupResourceAndPerm(request.getGroup(), 
Permission.SUB);
+                }
             } else if 
(QueryRouteRequest.getDescriptor().getFullName().equals(rpcFullName)) {
                 QueryRouteRequest request = (QueryRouteRequest) messageV3;
                 accessResource.addResourceAndPerm(request.getTopic(), 
Permission.ANY);
diff --git 
a/auth/src/main/java/org/apache/rocketmq/auth/authorization/builder/DefaultAuthorizationContextBuilder.java
 
b/auth/src/main/java/org/apache/rocketmq/auth/authorization/builder/DefaultAuthorizationContextBuilder.java
index d6d1556ca2..02d5df236f 100644
--- 
a/auth/src/main/java/org/apache/rocketmq/auth/authorization/builder/DefaultAuthorizationContextBuilder.java
+++ 
b/auth/src/main/java/org/apache/rocketmq/auth/authorization/builder/DefaultAuthorizationContextBuilder.java
@@ -129,7 +129,9 @@ public class DefaultAuthorizationContextBuilder implements 
AuthorizationContextB
         }
         if (message instanceof NotifyClientTerminationRequest) {
             NotifyClientTerminationRequest request = 
(NotifyClientTerminationRequest) message;
-            result = newGroupSubContexts(metadata, request.getGroup());
+            if (StringUtils.isNotBlank(request.getGroup().getName())) {
+                result = newGroupSubContexts(metadata, request.getGroup());
+            }
         }
         if (message instanceof ChangeInvisibleDurationRequest) {
             ChangeInvisibleDurationRequest request = 
(ChangeInvisibleDurationRequest) message;

Reply via email to