diff --git a/sms4j-api/src/main/java/org/dromara/sms4j/api/proxy/CoreMethodProcessor.java b/sms4j-api/src/main/java/org/dromara/sms4j/api/proxy/CoreMethodProcessor.java index effa18fe..b3056207 100644 --- a/sms4j-api/src/main/java/org/dromara/sms4j/api/proxy/CoreMethodProcessor.java +++ b/sms4j-api/src/main/java/org/dromara/sms4j/api/proxy/CoreMethodProcessor.java @@ -15,9 +15,9 @@ public interface CoreMethodProcessor extends SmsProcessor { default Object[] preProcessor(Method method, Object source, Object[] param) { String name = method.getName(); int parameterCount = method.getParameterCount(); - if ("sendMessage".equals(method.getName())) { + if ("sendMessage".equals(name)) { if (NumberOfParasmeters.TWO == NumberOfParasmeters.getNumberOfParasmetersEnum(parameterCount)) { - sendMessagePreProcess((String) param[0],(String) param[1]); + sendMessagePreProcess((String) param[0], param[1]); return param; } if (NumberOfParasmeters.THREE == NumberOfParasmeters.getNumberOfParasmetersEnum(parameterCount)) { @@ -25,7 +25,7 @@ public interface CoreMethodProcessor extends SmsProcessor { return param; } } - if ("massTexting".equals(method.getName())) { + if ("massTexting".equals(name)) { if (NumberOfParasmeters.TWO == NumberOfParasmeters.getNumberOfParasmetersEnum(parameterCount)) { massTextingPreProcess((List)param[0],(String)param[1]); return param; @@ -37,7 +37,7 @@ public interface CoreMethodProcessor extends SmsProcessor { } return param; } - void sendMessagePreProcess(String phone, String message); + void sendMessagePreProcess(String phone, Object message); void sendMessageByTemplatePreProcess(String phone, String templateId, LinkedHashMap messages); void massTextingPreProcess(List phones, String message); void massTextingByTemplatePreProcess(List phones, String templateId, LinkedHashMap messages); diff --git a/sms4j-core/src/main/java/org/dromara/sms4j/core/proxy/processor/BlackListProcessor.java b/sms4j-core/src/main/java/org/dromara/sms4j/core/proxy/processor/BlackListProcessor.java index b349704a..9dcd7df5 100644 --- a/sms4j-core/src/main/java/org/dromara/sms4j/core/proxy/processor/BlackListProcessor.java +++ b/sms4j-core/src/main/java/org/dromara/sms4j/core/proxy/processor/BlackListProcessor.java @@ -28,7 +28,7 @@ public class BlackListProcessor implements CoreMethodProcessor, SmsDaoAware { } @Override - public void sendMessagePreProcess(String phone, String message) { + public void sendMessagePreProcess(String phone, Object message) { doRestricted(Collections.singletonList(phone)); } diff --git a/sms4j-core/src/main/java/org/dromara/sms4j/core/proxy/processor/CoreMethodParamValidateProcessor.java b/sms4j-core/src/main/java/org/dromara/sms4j/core/proxy/processor/CoreMethodParamValidateProcessor.java index c15abcd1..3de952bd 100644 --- a/sms4j-core/src/main/java/org/dromara/sms4j/core/proxy/processor/CoreMethodParamValidateProcessor.java +++ b/sms4j-core/src/main/java/org/dromara/sms4j/core/proxy/processor/CoreMethodParamValidateProcessor.java @@ -21,7 +21,7 @@ public class CoreMethodParamValidateProcessor implements CoreMethodProcessor { } @Override - public void sendMessagePreProcess(String phone, String message) { + public void sendMessagePreProcess(String phone, Object message) { validatePhone(phone); validateMessage(message); } @@ -44,9 +44,18 @@ public class CoreMethodParamValidateProcessor implements CoreMethodProcessor { validateMessages(templateId, messages); } - public void validateMessage(String message) { - if (null == message || "".equals(message)) { - throw new SmsBlendException("cant send a null message!"); + public void validateMessage(Object messageObj) { + if (messageObj instanceof String){ + String message = (String) messageObj; + if (null == message || "".equals(message)) { + throw new SmsBlendException("cant send a null message!"); + } + } + if (messageObj instanceof Map){ + Map message = (Map) messageObj; + if (message.size()<1) { + throw new SmsBlendException("cant send a null message!"); + } } } diff --git a/sms4j-core/src/main/java/org/dromara/sms4j/core/proxy/processor/RestrictedProcessor.java b/sms4j-core/src/main/java/org/dromara/sms4j/core/proxy/processor/RestrictedProcessor.java index 609b7194..5f0b752f 100644 --- a/sms4j-core/src/main/java/org/dromara/sms4j/core/proxy/processor/RestrictedProcessor.java +++ b/sms4j-core/src/main/java/org/dromara/sms4j/core/proxy/processor/RestrictedProcessor.java @@ -40,7 +40,7 @@ public class RestrictedProcessor implements CoreMethodProcessor, SmsDaoAware { } @Override - public void sendMessagePreProcess(String phone, String message) { + public void sendMessagePreProcess(String phone, Object message) { doRestricted(Collections.singletonList(phone)); } diff --git a/sms4j-spring-boot-example/src/test/java/org/dromara/sms4j/example/SmsProcessorTest.java b/sms4j-spring-boot-example/src/test/java/org/dromara/sms4j/example/SmsProcessorTest.java index ce7a8a02..8b801902 100644 --- a/sms4j-spring-boot-example/src/test/java/org/dromara/sms4j/example/SmsProcessorTest.java +++ b/sms4j-spring-boot-example/src/test/java/org/dromara/sms4j/example/SmsProcessorTest.java @@ -30,6 +30,13 @@ public class SmsProcessorTest { @Test public void testParamValidate() { SmsBlendException knowEx = null; + try { + SmsFactory.getBySupplier(SupplierConstant.ALIBABA).sendMessage(PHONE, new LinkedHashMap<>()); + } catch (SmsBlendException e) { + knowEx = e; + } + Assert.notNull(knowEx); + knowEx = null; try { SmsFactory.getBySupplier(SupplierConstant.ALIBABA).sendMessage("", SmsUtils.getRandomInt(6)); } catch (SmsBlendException e) {