Ruoyi | 参数验证分析
验证实例
在ruoyi后台管理系统中,系统管理->部门管理,任意对一条数据的部门名称进行修改
出现验证:
- 不能为空
- 长度不能超过30字符
前端代码分析
找到部门管理对应的Vue源码 views->system->dept->index.vue
可以看到对应的表单校验是用element实现的。具体的来说是
- rules写对应表单项的规则
- prop对应rules的一条规则
接着查看点击事件的代码,逻辑:校验通过->发送put请求将表单数据给后端
总结:
前端代码的参数验证是判断数据是否为空
后端代码分析
找到后端代码的该接口方法/system/dept
@Validated: 告诉系统接受的SysDept对象 需要进行参数验证
对应的需要验证的属性如下图
- @NotBlank 不能为空
- @Size指定数据长度
对应的全局异常捕获器
自定义参数注解验证
1)新增Xss注解,设置自定义校验器XssValidator.class
2)自定义Xss校验器,实现ConstraintValidator接口。
3)实体类的Get方法使用自定义的@Xss注解
4)添加@Validated注解到对应方法的形参上
5)在前端页面进行校验