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;