中国算力平台算力登记系统2.0
yanzhaofeige
3 days ago 7c91ba68decae833c328ffabdf31ba9988cca2b7
commit | author | age
43dc29 1 package com.odcc.cpzidc.common.xss;
Y 2
3 import com.odcc.cpzidc.common.utils.StringUtils;
4 import javax.validation.ConstraintValidator;
5 import javax.validation.ConstraintValidatorContext;
6 import java.util.regex.Matcher;
7 import java.util.regex.Pattern;
8
9 /**
10  * 自定义xss校验注解实现
11  * 
12  * @author ruoyi
13  */
14 public class XssValidator implements ConstraintValidator<Xss, String>
15 {
16     private static final String HTML_PATTERN = "<(\\S*?)[^>]*>.*?|<.*? />";
17
18     @Override
19     public boolean isValid(String value, ConstraintValidatorContext constraintValidatorContext)
20     {
21         if (StringUtils.isBlank(value))
22         {
23             return true;
24         }
25         return !containsHtml(value);
26     }
27
28     public static boolean containsHtml(String value)
29     {
30         StringBuilder sHtml = new StringBuilder();
31         Pattern pattern = Pattern.compile(HTML_PATTERN);
32         Matcher matcher = pattern.matcher(value);
33         while (matcher.find())
34         {
35             sHtml.append(matcher.group());
36         }
37         return pattern.matcher(sHtml).matches();
38     }
39 }