Browse Source

修复Xss注解字段值为空时的异常问题

RuoYi 3 years ago
parent
commit
27d46fc0a4

+ 9 - 4
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/xss/XssValidator.java

@@ -1,9 +1,10 @@
 package com.ruoyi.common.core.xss;
 
-import javax.validation.ConstraintValidator;
-import javax.validation.ConstraintValidatorContext;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
+import javax.validation.ConstraintValidator;
+import javax.validation.ConstraintValidatorContext;
+import com.ruoyi.common.core.utils.StringUtils;
 
 /**
  * 自定义xss校验注解实现
@@ -12,15 +13,19 @@ import java.util.regex.Pattern;
  */
 public class XssValidator implements ConstraintValidator<Xss, String>
 {
-    private final String HTML_PATTERN = "<(\\S*?)[^>]*>.*?|<.*? />";
+    private static final String HTML_PATTERN = "<(\\S*?)[^>]*>.*?|<.*? />";
 
     @Override
     public boolean isValid(String value, ConstraintValidatorContext constraintValidatorContext)
     {
+        if (StringUtils.isBlank(value))
+        {
+            return true;
+        }
         return !containsHtml(value);
     }
 
-    public boolean containsHtml(String value)
+    public static boolean containsHtml(String value)
     {
         Pattern pattern = Pattern.compile(HTML_PATTERN);
         Matcher matcher = pattern.matcher(value);