[ISSUE #7943]Handle illegal characters uniformly (#7970)

* handle illegal characters uniformly

* keep `handleInnerSymbol` is private

* remove unused import
This commit is contained in:
haoyann 2021-06-07 15:05:21 +08:00 committed by GitHub
parent 9892958fb3
commit bfcf0030ec
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 15 additions and 19 deletions

View File

@ -20,6 +20,9 @@ import com.alibaba.nacos.api.config.ConfigService;
import com.alibaba.nacos.api.config.listener.Listener;
import com.alibaba.nacos.api.exception.NacosException;
import static org.apache.dubbo.common.utils.StringUtils.HYPHEN_CHAR;
import static org.apache.dubbo.common.utils.StringUtils.SLASH_CHAR;
public class NacosConfigServiceWrapper {
private static final String INNERCLASS_SYMBOL = "$";
@ -56,10 +59,11 @@ public class NacosConfigServiceWrapper {
/**
* see {@link com.alibaba.nacos.client.config.utils.ParamUtils#isValid(java.lang.String)}
*/
private String handleInnerSymbol(String dataId) {
if (dataId == null) {
private String handleInnerSymbol(String param) {
if (param == null) {
return null;
}
return dataId.replace(INNERCLASS_SYMBOL, INNERCLASS_COMPATIBLE_SYMBOL);
return param.replace(INNERCLASS_SYMBOL, INNERCLASS_COMPATIBLE_SYMBOL)
.replace(SLASH_CHAR, HYPHEN_CHAR);
}
}

View File

@ -58,7 +58,6 @@ import static org.apache.dubbo.common.constants.RemotingConstants.BACKUP_KEY;
import static org.apache.dubbo.common.utils.StringConstantFieldValuePredicate.of;
import static org.apache.dubbo.common.utils.StringUtils.HYPHEN_CHAR;
import static org.apache.dubbo.common.utils.StringUtils.SLASH_CHAR;
import static org.apache.dubbo.common.utils.StringUtils.isBlank;
/**
* The nacos implementation of {@link DynamicConfiguration}
@ -179,12 +178,11 @@ public class NacosDynamicConfiguration implements DynamicConfiguration {
@Override
public void addListener(String key, String group, ConfigurationListener listener) {
String resolvedGroup = resolveGroup(group);
String listenerKey = buildListenerKey(key, group);
NacosConfigListener nacosConfigListener = watchListenerMap.computeIfAbsent(listenerKey, k -> createTargetListener(key, resolvedGroup));
NacosConfigListener nacosConfigListener = watchListenerMap.computeIfAbsent(listenerKey, k -> createTargetListener(key, group));
nacosConfigListener.addListener(listener);
try {
configService.addListener(key, resolvedGroup, nacosConfigListener);
configService.addListener(key, group, nacosConfigListener);
} catch (NacosException e) {
logger.error(e.getMessage());
}
@ -201,13 +199,12 @@ public class NacosDynamicConfiguration implements DynamicConfiguration {
@Override
public String getConfig(String key, String group, long timeout) throws IllegalStateException {
String resolvedGroup = resolveGroup(group);
try {
long nacosTimeout = timeout < 0 ? getDefaultTimeout() : timeout;
if (StringUtils.isEmpty(resolvedGroup)) {
resolvedGroup = DEFAULT_GROUP;
if (StringUtils.isEmpty(group)) {
group = DEFAULT_GROUP;
}
return configService.getConfig(key, resolvedGroup, nacosTimeout);
return configService.getConfig(key, group, nacosTimeout);
} catch (NacosException e) {
logger.error(e.getMessage());
}
@ -227,9 +224,8 @@ public class NacosDynamicConfiguration implements DynamicConfiguration {
@Override
public boolean publishConfig(String key, String group, String content) {
boolean published = false;
String resolvedGroup = resolveGroup(group);
try {
published = configService.publishConfig(key, resolvedGroup, content);
published = configService.publishConfig(key, group, content);
} catch (NacosException e) {
logger.error(e.getErrMsg(), e);
}
@ -256,7 +252,7 @@ public class NacosDynamicConfiguration implements DynamicConfiguration {
Map<String, String> paramsValues = new HashMap<>();
paramsValues.put("search", "accurate");
paramsValues.put("dataId", "");
paramsValues.put("group", resolveGroup(group));
paramsValues.put("group", group.replace(SLASH_CHAR, HYPHEN_CHAR));
paramsValues.put("pageNo", "1");
paramsValues.put("pageSize", String.valueOf(Integer.MAX_VALUE));
@ -351,10 +347,6 @@ public class NacosDynamicConfiguration implements DynamicConfiguration {
}
protected String buildListenerKey(String key, String group) {
return key + HYPHEN_CHAR + resolveGroup(group);
}
protected String resolveGroup(String group) {
return isBlank(group) ? group : group.replace(SLASH_CHAR, HYPHEN_CHAR);
return key + HYPHEN_CHAR + group;
}
}