From 33beb60efe50ddd2c8ab7af47abde45f42f756d5 Mon Sep 17 00:00:00 2001 From: Redkale <22250530@qq.com> Date: Mon, 23 Oct 2017 11:38:11 +0800 Subject: [PATCH] --- src/org/redkale/net/sncp/Sncp.java | 2 ++ src/org/redkale/util/ResourceFactory.java | 6 +++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/org/redkale/net/sncp/Sncp.java b/src/org/redkale/net/sncp/Sncp.java index 9f64c1e37..959260656 100644 --- a/src/org/redkale/net/sncp/Sncp.java +++ b/src/org/redkale/net/sncp/Sncp.java @@ -266,6 +266,7 @@ public abstract class Sncp { protected static Class createLocalServiceClass(ClassLoader classLoader, final String name, final Class serviceImplClass) { if (serviceImplClass == null) return null; if (!Service.class.isAssignableFrom(serviceImplClass)) return serviceImplClass; + ResourceFactory.checkName(name); int mod = serviceImplClass.getModifiers(); if (!java.lang.reflect.Modifier.isPublic(mod)) return serviceImplClass; if (java.lang.reflect.Modifier.isAbstract(mod)) return serviceImplClass; @@ -890,6 +891,7 @@ public abstract class Sncp { final AnyValue conf) { if (serviceTypeOrImplClass == null) return null; if (!Service.class.isAssignableFrom(serviceTypeOrImplClass)) return null; + ResourceFactory.checkName(name); int mod = serviceTypeOrImplClass.getModifiers(); boolean realed = !(java.lang.reflect.Modifier.isAbstract(mod) || serviceTypeOrImplClass.isInterface()); if (!java.lang.reflect.Modifier.isPublic(mod)) return null; diff --git a/src/org/redkale/util/ResourceFactory.java b/src/org/redkale/util/ResourceFactory.java index f01274d1b..79fa637d8 100644 --- a/src/org/redkale/util/ResourceFactory.java +++ b/src/org/redkale/util/ResourceFactory.java @@ -96,15 +96,15 @@ public final class ResourceFactory { * 检查资源名是否合法 *
      * name规则:
-     *    1: "$"有特殊含义, 不能表示"$"资源本身
+     *    1: "$"有特殊含义, 表示资源本身,"$"不能单独使用
      *    2: 只能是字母、数字、(短横)-、(下划线)_、点(.)的组合
      * 
* * @param name String */ - public void checkName(String name) { + public static void checkName(String name) { if (name == null || (!name.isEmpty() && !name.matches("^[a-zA-Z0-9_;\\-\\.\\[\\]\\(\\)]+$"))) { - throw new IllegalArgumentException("Resource.name(" + name + ") contains illegal character, must be (a-z,A-Z,0-9,_,.,(,),-,[,])"); + throw new IllegalArgumentException("name(" + name + ") contains illegal character, must be (a-z,A-Z,0-9,_,.,(,),-,[,])"); } }