JavaWeb API接口参数校验框架

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

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" ?
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Chengdu.S

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值