From 7145964b4a8db5d29a0af51b352efa2c342122aa Mon Sep 17 00:00:00 2001 From: dingshuangxi888 Date: Tue, 4 Jun 2024 13:46:16 +0800 Subject: [PATCH] [ISSUE 8230] fix the acl for NotifyClientTerminationRequest because group can be null. (#8231) --- .../org/apache/rocketmq/acl/plain/PlainAccessResource.java | 5 ++++- .../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;