This is an automated email from the ASF dual-hosted git repository.
yuzhou 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 eda205b46 [ISSUE #6141] validate group when auto create subscription
group (#6142)
eda205b46 is described below
commit eda205b46f1bbc2ca462b3dbe7753993056ea01c
Author: yuz10 <[email protected]>
AuthorDate: Tue Feb 21 22:12:21 2023 +0800
[ISSUE #6141] validate group when auto create subscription group (#6142)
* validate group when auto create subscription group
* fix
---
.../rocketmq/broker/subscription/SubscriptionGroupManager.java | 5 +++++
1 file changed, 5 insertions(+)
diff --git
a/broker/src/main/java/org/apache/rocketmq/broker/subscription/SubscriptionGroupManager.java
b/broker/src/main/java/org/apache/rocketmq/broker/subscription/SubscriptionGroupManager.java
index b9e0780cc..779f5776a 100644
---
a/broker/src/main/java/org/apache/rocketmq/broker/subscription/SubscriptionGroupManager.java
+++
b/broker/src/main/java/org/apache/rocketmq/broker/subscription/SubscriptionGroupManager.java
@@ -23,12 +23,14 @@ import java.util.concurrent.ConcurrentMap;
import org.apache.commons.lang3.StringUtils;
import org.apache.rocketmq.broker.BrokerController;
import org.apache.rocketmq.broker.BrokerPathConfigHelper;
+import org.apache.rocketmq.client.Validators;
import org.apache.rocketmq.common.ConfigManager;
import org.apache.rocketmq.common.MixAll;
import org.apache.rocketmq.common.constant.LoggerName;
import org.apache.rocketmq.logging.org.slf4j.Logger;
import org.apache.rocketmq.logging.org.slf4j.LoggerFactory;
import org.apache.rocketmq.remoting.protocol.DataVersion;
+import org.apache.rocketmq.common.topic.TopicValidator;
import org.apache.rocketmq.remoting.protocol.RemotingSerializable;
import
org.apache.rocketmq.remoting.protocol.subscription.SubscriptionGroupConfig;
@@ -211,6 +213,9 @@ public class SubscriptionGroupManager extends ConfigManager
{
SubscriptionGroupConfig subscriptionGroupConfig =
this.subscriptionGroupTable.get(group);
if (null == subscriptionGroupConfig) {
if
(brokerController.getBrokerConfig().isAutoCreateSubscriptionGroup() ||
MixAll.isSysConsumerGroup(group)) {
+ if (group.length() > Validators.CHARACTER_MAX_LENGTH ||
TopicValidator.isTopicOrGroupIllegal(group)) {
+ return null;
+ }
subscriptionGroupConfig = new SubscriptionGroupConfig();
subscriptionGroupConfig.setGroupName(group);
SubscriptionGroupConfig preConfig =
this.subscriptionGroupTable.putIfAbsent(group, subscriptionGroupConfig);