Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
cocktail-party-server
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
cocktail-party
cocktail-party-server
Commits
d365a52c
提交
d365a52c
authored
12月 15, 2021
作者:
RuoYi
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
自定义xss校验注解实现
上级
e1c7115d
显示空白字符变更
内嵌
并排
正在显示
6 个修改的文件
包含
94 行增加
和
3 行删除
+94
-3
SysUser.java
...ain/java/com/ruoyi/common/core/domain/entity/SysUser.java
+4
-3
BeanValidators.java
...main/java/com/ruoyi/common/utils/bean/BeanValidators.java
+24
-0
Xss.java
ruoyi-common/src/main/java/com/ruoyi/common/xss/Xss.java
+27
-0
XssValidator.java
...mmon/src/main/java/com/ruoyi/common/xss/XssValidator.java
+30
-0
SysNotice.java
...stem/src/main/java/com/ruoyi/system/domain/SysNotice.java
+2
-0
SysUserServiceImpl.java
...ava/com/ruoyi/system/service/impl/SysUserServiceImpl.java
+7
-0
没有找到文件。
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java
浏览文件 @
d365a52c
...
...
@@ -2,9 +2,7 @@ package com.ruoyi.common.core.domain.entity;
import
java.util.Date
;
import
java.util.List
;
import
javax.validation.constraints.Email
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.Size
;
import
javax.validation.constraints.*
;
import
org.apache.commons.lang3.builder.ToStringBuilder
;
import
org.apache.commons.lang3.builder.ToStringStyle
;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
...
...
@@ -14,6 +12,7 @@ import com.ruoyi.common.annotation.Excel.ColumnType;
import
com.ruoyi.common.annotation.Excel.Type
;
import
com.ruoyi.common.annotation.Excels
;
import
com.ruoyi.common.core.domain.BaseEntity
;
import
com.ruoyi.common.xss.Xss
;
/**
* 用户对象 sys_user
...
...
@@ -135,6 +134,7 @@ public class SysUser extends BaseEntity
this
.
deptId
=
deptId
;
}
@Xss
(
message
=
"用户昵称不能包含脚本字符"
)
@Size
(
min
=
0
,
max
=
30
,
message
=
"用户昵称长度不能超过30个字符"
)
public
String
getNickName
()
{
...
...
@@ -146,6 +146,7 @@ public class SysUser extends BaseEntity
this
.
nickName
=
nickName
;
}
@Xss
(
message
=
"用户账号不能包含脚本字符"
)
@NotBlank
(
message
=
"用户账号不能为空"
)
@Size
(
min
=
0
,
max
=
30
,
message
=
"用户账号长度不能超过30个字符"
)
public
String
getUserName
()
...
...
ruoyi-common/src/main/java/com/ruoyi/common/utils/bean/BeanValidators.java
0 → 100644
浏览文件 @
d365a52c
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
);
}
}
}
ruoyi-common/src/main/java/com/ruoyi/common/xss/Xss.java
0 → 100644
浏览文件 @
d365a52c
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
{};
}
ruoyi-common/src/main/java/com/ruoyi/common/xss/XssValidator.java
0 → 100644
浏览文件 @
d365a52c
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
();
}
}
\ No newline at end of file
ruoyi-system/src/main/java/com/ruoyi/system/domain/SysNotice.java
浏览文件 @
d365a52c
...
...
@@ -5,6 +5,7 @@ import javax.validation.constraints.Size;
import
org.apache.commons.lang3.builder.ToStringBuilder
;
import
org.apache.commons.lang3.builder.ToStringStyle
;
import
com.ruoyi.common.core.domain.BaseEntity
;
import
com.ruoyi.common.xss.Xss
;
/**
* 通知公告表 sys_notice
...
...
@@ -45,6 +46,7 @@ public class SysNotice extends BaseEntity
this
.
noticeTitle
=
noticeTitle
;
}
@Xss
(
message
=
"公告标题不能包含脚本字符"
)
@NotBlank
(
message
=
"公告标题不能为空"
)
@Size
(
min
=
0
,
max
=
50
,
message
=
"公告标题不能超过50个字符"
)
public
String
getNoticeTitle
()
...
...
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
浏览文件 @
d365a52c
...
...
@@ -3,6 +3,7 @@ package com.ruoyi.system.service.impl;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.stream.Collectors
;
import
javax.validation.Validator
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -16,6 +17,7 @@ import com.ruoyi.common.core.domain.entity.SysUser;
import
com.ruoyi.common.exception.ServiceException
;
import
com.ruoyi.common.utils.SecurityUtils
;
import
com.ruoyi.common.utils.StringUtils
;
import
com.ruoyi.common.utils.bean.BeanValidators
;
import
com.ruoyi.common.utils.spring.SpringUtils
;
import
com.ruoyi.system.domain.SysPost
;
import
com.ruoyi.system.domain.SysUserPost
;
...
...
@@ -56,6 +58,9 @@ public class SysUserServiceImpl implements ISysUserService
@Autowired
private
ISysConfigService
configService
;
@Autowired
protected
Validator
validator
;
/**
* 根据条件分页查询用户列表
*
...
...
@@ -513,6 +518,7 @@ public class SysUserServiceImpl implements ISysUserService
SysUser
u
=
userMapper
.
selectUserByUserName
(
user
.
getUserName
());
if
(
StringUtils
.
isNull
(
u
))
{
BeanValidators
.
validateWithException
(
validator
,
user
);
user
.
setPassword
(
SecurityUtils
.
encryptPassword
(
password
));
user
.
setCreateBy
(
operName
);
this
.
insertUser
(
user
);
...
...
@@ -521,6 +527,7 @@ public class SysUserServiceImpl implements ISysUserService
}
else
if
(
isUpdateSupport
)
{
BeanValidators
.
validateWithException
(
validator
,
user
);
user
.
setUpdateBy
(
operName
);
this
.
updateUser
(
user
);
successNum
++;
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论