Merge branch 'master' of https://gitee.com/y_project/RuoYi-Vue into dev
Conflicts:
pom.xml
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java
ruoyi-system/src/main/java/com/ruoyi/system/domain/SysNotice.java
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
| | |
| | | import com.fasterxml.jackson.annotation.JsonIgnore; |
| | | import com.fasterxml.jackson.annotation.JsonProperty; |
| | | import com.ruoyi.common.core.domain.BaseEntity; |
| | | import com.ruoyi.common.xss.Xss; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | |
| | | * ç¨æ·è´¦å· |
| | | */ |
| | | @ApiModelProperty(value = "ç¨æ·è´¦å·") |
| | | @NotBlank(message = "ç¨æ·è´¦å·ä¸è½ä¸ºç©º") |
| | | @Xss(message = "ç¨æ·è´¦å·ä¸è½å
å«èæ¬å符") |
| | | @NotBlank(message = "ç¨æ·è´¦å·ä¸è½ä¸ºç©º") |
| | | @Size(min = 0, max = 30, message = "ç¨æ·è´¦å·é¿åº¦ä¸è½è¶
è¿30个å符") |
| | | private String userName; |
| | | |
| | | /** |
| | | * ç¨æ·æµç§° |
| | | */ |
| | | @ApiModelProperty(value = "ç¨æ·æµç§°") |
| | | @Size(min = 0, max = 30, message = "ç¨æ·æµç§°é¿åº¦ä¸è½è¶
è¿30个å符") |
| | | @ApiModelProperty(value = "ç¨æ·æµç§°") |
| | | @Xss(message = "ç¨æ·æµç§°ä¸è½å
å«èæ¬å符") |
| | | @Size(min = 0, max = 30, message = "ç¨æ·æµç§°é¿åº¦ä¸è½è¶
è¿30个å符") |
| | | private String nickName; |
| | | |
| | | /** |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.ruoyi.common.utils.bean;
|
| | |
|
| | | import java.util.Set;
|
| | | import javax.validation.ConstraintViolation;
|
| | | import javax.validation.ConstraintViolationException;
|
| | | import javax.validation.Validator;
|
| | |
|
| | | /**
|
| | | * beanå¯¹è±¡å±æ§éªè¯
|
| | | * |
| | | * @author ruoyi
|
| | | */
|
| | | public class BeanValidators
|
| | | {
|
| | | public static void validateWithException(Validator validator, Object object, Class<?>... groups)
|
| | | throws ConstraintViolationException
|
| | | {
|
| | | Set<ConstraintViolation<Object>> constraintViolations = validator.validate(object, groups);
|
| | | if (!constraintViolations.isEmpty())
|
| | | {
|
| | | throw new ConstraintViolationException(constraintViolations);
|
| | | }
|
| | | }
|
| | | }
|
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.ruoyi.common.xss;
|
| | |
|
| | | import javax.validation.Constraint;
|
| | | import javax.validation.Payload;
|
| | | import java.lang.annotation.ElementType;
|
| | | import java.lang.annotation.Retention;
|
| | | import java.lang.annotation.RetentionPolicy;
|
| | | import java.lang.annotation.Target;
|
| | |
|
| | | /**
|
| | | * èªå®ä¹xssæ ¡éªæ³¨è§£
|
| | | * |
| | | * @author ruoyi
|
| | | */
|
| | | @Retention(RetentionPolicy.RUNTIME)
|
| | | @Target(value = { ElementType.METHOD, ElementType.FIELD, ElementType.CONSTRUCTOR, ElementType.PARAMETER })
|
| | | @Constraint(validatedBy = { XssValidator.class })
|
| | | public @interface Xss
|
| | | {
|
| | | String message()
|
| | |
|
| | | default "ä¸å
许任ä½èæ¬è¿è¡";
|
| | |
|
| | | Class<?>[] groups() default {};
|
| | |
|
| | | Class<? extends Payload>[] payload() default {};
|
| | | }
|
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.ruoyi.common.xss;
|
| | |
|
| | | 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 final String HTML_PATTERN = "<(\\S*?)[^>]*>.*?|<.*? />";
|
| | |
|
| | | @Override
|
| | | public boolean isValid(String value, ConstraintValidatorContext constraintValidatorContext)
|
| | | {
|
| | | return !containsHtml(value);
|
| | | }
|
| | |
|
| | | public boolean containsHtml(String value)
|
| | | {
|
| | | Pattern pattern = Pattern.compile(HTML_PATTERN);
|
| | | Matcher matcher = pattern.matcher(value);
|
| | | return matcher.matches();
|
| | | }
|
| | | } |
| | |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import com.ruoyi.common.core.domain.BaseEntity; |
| | | import com.ruoyi.common.xss.Xss; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | import lombok.EqualsAndHashCode; |
| | |
| | | |
| | | import javax.validation.constraints.NotBlank; |
| | | import javax.validation.constraints.Size; |
| | | |
| | | |
| | | /** |
| | | * éç¥å
¬å表 sys_notice |
| | |
| | | /** |
| | | * å
¬åæ é¢ |
| | | */ |
| | | @Xss(message = "å
¬åæ é¢ä¸è½å
å«èæ¬å符") |
| | | @ApiModelProperty(value = "å
¬åæ é¢") |
| | | @NotBlank(message = "å
¬åæ é¢ä¸è½ä¸ºç©º") |
| | | @Size(min = 0, max = 50, message = "å
¬åæ é¢ä¸è½è¶
è¿50个å符") |