1. 背景
为啥需要参数校验?
1. 修改前端代码,导致前端卡控失效
2. 微服务之前调用,参数漏传
3. 安全性,绕过前端校验,参数直接发送到后台
参数校验的好处?
避免产生垃圾数据,业务按照正常的数据流执行,减小运维工作量
目前大多数参数校验和业务层代码耦合在一起,修改起来比较麻烦,并且也容易出错。最近写了一套参数校验框架,已发布到Maven中央仓库,代码已在Github开源。
2. 框架介绍
2.1 功能介绍
读取配置文件,每个参数可以配置多个校验规则。目前支持json、xml 格式配置。支持一个参数配置多个校验器,正则表达式校验器,OGNL表达式校验器,自定义校验器。
2.2 设计思路

api 请求到达Web 服务器之后,经过 ParamFiletr, 把校验任务交给 ValidateProcessor 处理。ValidateProcessor 负责匹配 请求的 url 与配置文件中的 url. 匹配到 url之后,根据配置的参数 urlParams、pathParams、bodyParams, 交给对应的处理器进行处理。每个参数可以配置多个校验规则,目前支持正则表达式校验器,OGNL校验器,自定义校验器。如果某个校验规则不通过,返回错误信息。
2.2 配置文件
配置文件分成两部份,第一部份,一个common配置文件,文件命名格式 validate_common_config + 文件类型。第二部份,多个参数校验配置文件,原则上一个 controller 层配置一个, 文件命名格式 validate_rule_ + xxx + 文件类型。

common 配置文件示例
1. json 格式
{
"checkAllUrl": false,
"whiteList" : [
"/**/*.html",
"/**/*.js",
"/**/*.css"
],
"maxBodySize": 100000
}
2. xml 格式
<?xml version="1.0" encoding="UTF-8" ?

本文介绍了一套参数校验框架,旨在解决前端校验失效、微服务间调用参数漏传及安全性问题。框架支持从配置文件读取校验规则,包括JSON和XML格式,支持正则、OGNL表达式和自定义校验器。校验过程在Web服务器接收到API请求后由ParamFilter处理,通过ValidateProcessor匹配并执行校验规则。配置文件包含通用配置和特定接口配置,提供灵活的校验策略。项目已在GitHub开源,提供Demo示例。
最低0.47元/天 解锁文章
1116





