123456789101112131415161718192021222324252627282930313233343536373839 |
- package com.ruoyi.common.xss;
- import com.ruoyi.common.utils.StringUtils;
- import javax.validation.ConstraintValidator;
- import javax.validation.ConstraintValidatorContext;
- import java.util.regex.Matcher;
- import java.util.regex.Pattern;
- /**
- * 自定义xss校验注解实现
- *
- * @author ruoyi
- */
- public class XssValidator implements ConstraintValidator<Xss, String>
- {
- 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 static boolean containsHtml(String value)
- {
- StringBuilder sHtml = new StringBuilder();
- Pattern pattern = Pattern.compile(HTML_PATTERN);
- Matcher matcher = pattern.matcher(value);
- while (matcher.find())
- {
- sHtml.append(matcher.group());
- }
- return pattern.matcher(sHtml).matches();
- }
- }
|