* 1.in server, check serviceName's format 'groupName@@serviceName', groupName and serviceName can't be blank 2.in client, check 'groupName@@serviceName', groupName and serviceName can't be blank * ignore the check to groupName * check split's length instead of exception to check argument * 1.add some notes 2.remove unnecessary code * modify the notes
This commit is contained in:
parent
f42cb4716d
commit
3dc0f243f8
@ -28,6 +28,9 @@ import com.alibaba.nacos.api.utils.StringUtils;
|
|||||||
public class NamingUtils {
|
public class NamingUtils {
|
||||||
|
|
||||||
public static String getGroupedName(final String serviceName, final String groupName) {
|
public static String getGroupedName(final String serviceName, final String groupName) {
|
||||||
|
if (StringUtils.isBlank(serviceName)) {
|
||||||
|
throw new IllegalArgumentException("Param 'serviceName' is illegal, serviceName is blank");
|
||||||
|
}
|
||||||
final String resultGroupedName = groupName + Constants.SERVICE_INFO_SPLITER + serviceName;
|
final String resultGroupedName = groupName + Constants.SERVICE_INFO_SPLITER + serviceName;
|
||||||
return resultGroupedName.intern();
|
return resultGroupedName.intern();
|
||||||
}
|
}
|
||||||
|
@ -38,6 +38,7 @@ import com.alibaba.nacos.naming.push.ClientInfo;
|
|||||||
import com.alibaba.nacos.naming.push.DataSource;
|
import com.alibaba.nacos.naming.push.DataSource;
|
||||||
import com.alibaba.nacos.naming.push.PushService;
|
import com.alibaba.nacos.naming.push.PushService;
|
||||||
import com.alibaba.nacos.naming.web.CanDistro;
|
import com.alibaba.nacos.naming.web.CanDistro;
|
||||||
|
import com.alibaba.nacos.naming.web.DistroFilter;
|
||||||
import com.alibaba.nacos.naming.web.NamingResourceParser;
|
import com.alibaba.nacos.naming.web.NamingResourceParser;
|
||||||
import com.fasterxml.jackson.databind.node.ArrayNode;
|
import com.fasterxml.jackson.databind.node.ArrayNode;
|
||||||
import com.fasterxml.jackson.databind.node.ObjectNode;
|
import com.fasterxml.jackson.databind.node.ObjectNode;
|
||||||
@ -115,9 +116,10 @@ public class InstanceController {
|
|||||||
@Secured(parser = NamingResourceParser.class, action = ActionTypes.WRITE)
|
@Secured(parser = NamingResourceParser.class, action = ActionTypes.WRITE)
|
||||||
public String register(HttpServletRequest request) throws Exception {
|
public String register(HttpServletRequest request) throws Exception {
|
||||||
|
|
||||||
final String serviceName = WebUtils.required(request, CommonParams.SERVICE_NAME);
|
|
||||||
final String namespaceId = WebUtils
|
final String namespaceId = WebUtils
|
||||||
.optional(request, CommonParams.NAMESPACE_ID, Constants.DEFAULT_NAMESPACE_ID);
|
.optional(request, CommonParams.NAMESPACE_ID, Constants.DEFAULT_NAMESPACE_ID);
|
||||||
|
final String serviceName = WebUtils.required(request, CommonParams.SERVICE_NAME);
|
||||||
|
checkServiceNameFormat(serviceName);
|
||||||
|
|
||||||
final Instance instance = parseInstance(request);
|
final Instance instance = parseInstance(request);
|
||||||
|
|
||||||
@ -139,6 +141,7 @@ public class InstanceController {
|
|||||||
Instance instance = getIpAddress(request);
|
Instance instance = getIpAddress(request);
|
||||||
String namespaceId = WebUtils.optional(request, CommonParams.NAMESPACE_ID, Constants.DEFAULT_NAMESPACE_ID);
|
String namespaceId = WebUtils.optional(request, CommonParams.NAMESPACE_ID, Constants.DEFAULT_NAMESPACE_ID);
|
||||||
String serviceName = WebUtils.required(request, CommonParams.SERVICE_NAME);
|
String serviceName = WebUtils.required(request, CommonParams.SERVICE_NAME);
|
||||||
|
checkServiceNameFormat(serviceName);
|
||||||
|
|
||||||
Service service = serviceManager.getService(namespaceId, serviceName);
|
Service service = serviceManager.getService(namespaceId, serviceName);
|
||||||
if (service == null) {
|
if (service == null) {
|
||||||
@ -161,9 +164,10 @@ public class InstanceController {
|
|||||||
@PutMapping
|
@PutMapping
|
||||||
@Secured(parser = NamingResourceParser.class, action = ActionTypes.WRITE)
|
@Secured(parser = NamingResourceParser.class, action = ActionTypes.WRITE)
|
||||||
public String update(HttpServletRequest request) throws Exception {
|
public String update(HttpServletRequest request) throws Exception {
|
||||||
final String serviceName = WebUtils.required(request, CommonParams.SERVICE_NAME);
|
|
||||||
final String namespaceId = WebUtils
|
final String namespaceId = WebUtils
|
||||||
.optional(request, CommonParams.NAMESPACE_ID, Constants.DEFAULT_NAMESPACE_ID);
|
.optional(request, CommonParams.NAMESPACE_ID, Constants.DEFAULT_NAMESPACE_ID);
|
||||||
|
final String serviceName = WebUtils.required(request, CommonParams.SERVICE_NAME);
|
||||||
|
checkServiceNameFormat(serviceName);
|
||||||
final Instance instance = parseInstance(request);
|
final Instance instance = parseInstance(request);
|
||||||
|
|
||||||
String agent = WebUtils.getUserAgent(request);
|
String agent = WebUtils.getUserAgent(request);
|
||||||
@ -190,8 +194,9 @@ public class InstanceController {
|
|||||||
@PatchMapping
|
@PatchMapping
|
||||||
@Secured(parser = NamingResourceParser.class, action = ActionTypes.WRITE)
|
@Secured(parser = NamingResourceParser.class, action = ActionTypes.WRITE)
|
||||||
public String patch(HttpServletRequest request) throws Exception {
|
public String patch(HttpServletRequest request) throws Exception {
|
||||||
String serviceName = WebUtils.required(request, CommonParams.SERVICE_NAME);
|
|
||||||
String namespaceId = WebUtils.optional(request, CommonParams.NAMESPACE_ID, Constants.DEFAULT_NAMESPACE_ID);
|
String namespaceId = WebUtils.optional(request, CommonParams.NAMESPACE_ID, Constants.DEFAULT_NAMESPACE_ID);
|
||||||
|
String serviceName = WebUtils.required(request, CommonParams.SERVICE_NAME);
|
||||||
|
checkServiceNameFormat(serviceName);
|
||||||
String ip = WebUtils.required(request, "ip");
|
String ip = WebUtils.required(request, "ip");
|
||||||
String port = WebUtils.required(request, "port");
|
String port = WebUtils.required(request, "port");
|
||||||
String cluster = WebUtils.optional(request, CommonParams.CLUSTER_NAME, StringUtils.EMPTY);
|
String cluster = WebUtils.optional(request, CommonParams.CLUSTER_NAME, StringUtils.EMPTY);
|
||||||
@ -242,8 +247,9 @@ public class InstanceController {
|
|||||||
public ObjectNode list(HttpServletRequest request) throws Exception {
|
public ObjectNode list(HttpServletRequest request) throws Exception {
|
||||||
|
|
||||||
String namespaceId = WebUtils.optional(request, CommonParams.NAMESPACE_ID, Constants.DEFAULT_NAMESPACE_ID);
|
String namespaceId = WebUtils.optional(request, CommonParams.NAMESPACE_ID, Constants.DEFAULT_NAMESPACE_ID);
|
||||||
|
|
||||||
String serviceName = WebUtils.required(request, CommonParams.SERVICE_NAME);
|
String serviceName = WebUtils.required(request, CommonParams.SERVICE_NAME);
|
||||||
|
checkServiceNameFormat(serviceName);
|
||||||
|
|
||||||
String agent = WebUtils.getUserAgent(request);
|
String agent = WebUtils.getUserAgent(request);
|
||||||
String clusters = WebUtils.optional(request, "clusters", StringUtils.EMPTY);
|
String clusters = WebUtils.optional(request, "clusters", StringUtils.EMPTY);
|
||||||
String clientIP = WebUtils.optional(request, "clientIP", StringUtils.EMPTY);
|
String clientIP = WebUtils.optional(request, "clientIP", StringUtils.EMPTY);
|
||||||
@ -274,6 +280,7 @@ public class InstanceController {
|
|||||||
|
|
||||||
String namespaceId = WebUtils.optional(request, CommonParams.NAMESPACE_ID, Constants.DEFAULT_NAMESPACE_ID);
|
String namespaceId = WebUtils.optional(request, CommonParams.NAMESPACE_ID, Constants.DEFAULT_NAMESPACE_ID);
|
||||||
String serviceName = WebUtils.required(request, CommonParams.SERVICE_NAME);
|
String serviceName = WebUtils.required(request, CommonParams.SERVICE_NAME);
|
||||||
|
checkServiceNameFormat(serviceName);
|
||||||
String cluster = WebUtils.optional(request, CommonParams.CLUSTER_NAME, UtilsAndCommons.DEFAULT_CLUSTER_NAME);
|
String cluster = WebUtils.optional(request, CommonParams.CLUSTER_NAME, UtilsAndCommons.DEFAULT_CLUSTER_NAME);
|
||||||
String ip = WebUtils.required(request, "ip");
|
String ip = WebUtils.required(request, "ip");
|
||||||
int port = Integer.parseInt(WebUtils.required(request, "port"));
|
int port = Integer.parseInt(WebUtils.required(request, "port"));
|
||||||
@ -344,8 +351,9 @@ public class InstanceController {
|
|||||||
ip = clientBeat.getIp();
|
ip = clientBeat.getIp();
|
||||||
port = clientBeat.getPort();
|
port = clientBeat.getPort();
|
||||||
}
|
}
|
||||||
String serviceName = WebUtils.required(request, CommonParams.SERVICE_NAME);
|
|
||||||
String namespaceId = WebUtils.optional(request, CommonParams.NAMESPACE_ID, Constants.DEFAULT_NAMESPACE_ID);
|
String namespaceId = WebUtils.optional(request, CommonParams.NAMESPACE_ID, Constants.DEFAULT_NAMESPACE_ID);
|
||||||
|
String serviceName = WebUtils.required(request, CommonParams.SERVICE_NAME);
|
||||||
|
checkServiceNameFormat(serviceName);
|
||||||
Loggers.SRV_LOG.debug("[CLIENT-BEAT] full arguments: beat: {}, serviceName: {}", clientBeat, serviceName);
|
Loggers.SRV_LOG.debug("[CLIENT-BEAT] full arguments: beat: {}, serviceName: {}", clientBeat, serviceName);
|
||||||
Instance instance = serviceManager.getInstance(namespaceId, serviceName, clusterName, ip, port);
|
Instance instance = serviceManager.getInstance(namespaceId, serviceName, clusterName, ip, port);
|
||||||
|
|
||||||
@ -413,7 +421,7 @@ public class InstanceController {
|
|||||||
namespaceId = Constants.DEFAULT_NAMESPACE_ID;
|
namespaceId = Constants.DEFAULT_NAMESPACE_ID;
|
||||||
serviceName = key;
|
serviceName = key;
|
||||||
}
|
}
|
||||||
|
checkServiceNameFormat(serviceName);
|
||||||
Service service = serviceManager.getService(namespaceId, serviceName);
|
Service service = serviceManager.getService(namespaceId, serviceName);
|
||||||
|
|
||||||
if (service == null) {
|
if (service == null) {
|
||||||
@ -433,6 +441,26 @@ public class InstanceController {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* check combineServiceName format. the serviceName can't be blank. some relational logic in {@link
|
||||||
|
* DistroFilter#doFilter}, it will handle combineServiceName in some case, you should know it.
|
||||||
|
* <pre>
|
||||||
|
* serviceName = "@@"; the length = 0; illegal
|
||||||
|
* serviceName = "group@@"; the length = 1; illegal
|
||||||
|
* serviceName = "@@serviceName"; the length = 2; legal
|
||||||
|
* serviceName = "group@@serviceName"; the length = 2; legal
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @param combineServiceName such as: groupName@@serviceName
|
||||||
|
*/
|
||||||
|
private void checkServiceNameFormat(String combineServiceName) {
|
||||||
|
String[] split = combineServiceName.split(Constants.SERVICE_INFO_SPLITER);
|
||||||
|
if (split.length <= 1) {
|
||||||
|
throw new IllegalArgumentException(
|
||||||
|
"Param 'serviceName' is illegal, it should be format as 'groupName@@serviceName");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private Instance parseInstance(HttpServletRequest request) throws Exception {
|
private Instance parseInstance(HttpServletRequest request) throws Exception {
|
||||||
|
|
||||||
String serviceName = WebUtils.required(request, CommonParams.SERVICE_NAME);
|
String serviceName = WebUtils.required(request, CommonParams.SERVICE_NAME);
|
||||||
|
Loading…
Reference in New Issue
Block a user