接口加解密验签公共包编写
各个互联网访问的项目,都需要编写一套入参验签、参数解密,返回值加密的代码。考虑统一抽出来,形成一个加解密包方便引用。
具体加解密验签逻辑本篇不细说。
一、公共包加解密验签编写
1. 配置类设置
考虑项目上在配置文件里写明不同访问来源所用的密钥。统一加载到配置类中。
如下图所示,通过Map,可以接收不同访问来源设置的不同密钥属性
2. 请求体处理
通过实现HttpServletRequestWrapper,读取请求体io流,设置到自定义属性中,便于后续做自定义操作。请求的param也同样可以处理。重写相关方法即可。
3. 参数加解密验签逻辑
可以通过filter或者aop等多种方式实现。
比如通过filter实现入参的验签和请求参数解密;然后通过RestControllerAdvice对返回数据做统一加密处理。
4. 加解密验签功能生效逻辑
可以编写一个@Enable注解,通过@Import注解,引入相应filter和advice的实现。
二、业务应用对接加解密公共包
1. 依赖和配置引入
引入公共包依赖和配置。
公共包依赖可以打到本地仓库,或者通过maven配置上传到私服。
配置则按照公共包配置类的格式来填写:
2. 加解密功能启用
在项目启动类上添加公共包编写的@Enable注解即可。
然后加解密功能生效: