框架介绍
monkey-api-encrypt 是我之前写的一个 API 加密的框架,主要是将加密/解密的逻辑交给框架实现,等数据到达 Controller 后自动解密了,让开发人员不需要关注数据的加解密操作。
Github:https://github.com/yinjihuan/monkey-api-encrypt[1]
目前,502 个关注,今天能到 520 么?
新功能介绍
Bug 修复
当项目的 context-path 配置为/的时候,之前处理的不好,会增加一个/。然后就导致去判断加解密 uri 的时候出现两个//。
GET 请求参数解密支持
在 1.2 之前的版本只支持 Post 请求体数据的解密操作,也就是说加密的数据必须在请求体里面才能被正常解密,如下:
@Decrypt@PostMapping("/save")public UserDto save(@RequestBody UserDto dto) { System.err.println(dto.getId() + "\t" + dto.getName()); return dto;}
客户端提交的数据是加密的内容,到达接口层后 UserDto 已经是自动解密好了的数据。
1.2 版本支持了 Get 请求参数的解密,使用方式如下:
请求地址:/encryptStr?name=FrAOkAnRWydU/LX7xNEm9w==[2]
name 是加密的内容,在接口层接收的需要是解密后的内容,接口定义如下:
@Decrypt(decyptParam = "name")@GetMapping("/encryptStr")public String encryptStr(String name) { System.out.println(name); return "加密字符串";}
通过@Decrypt 注解表示该接口需要解密操作,decyptParam 指定要解密的参数名,多个英文逗号分隔。
如果不用注解还可以使用配置的方式,如下:
spring.encrypt.requestDecyptParam.get$/encryptStr=name
格式为 请求方式 + $ + URI
比如:get$/encryptStr
日常优化
这次将项目结构优化了下,之前是单独的三个项目,包括两个示列项目。不方便导入 IDEA 中。这次调整后最外层增加了父 pom,方便导入。
老结构:
新结构:
发布到 Maven 中央仓库
1.2 版本之前为了发布方便,直接用的 jitpack 仓库。很多用户在使用的时候也不看文档,直接依赖然后就来问我为什么 jar 包下载不下来。
这次干脆还是发布到 Maven 中央仓库得了,方便使用。
依赖配置:
<dependency> <groupId>com.cxytiandi</groupId> <artifactId>monkey-api-encrypt-core</artifactId> <version>1.2.RELEASE</version></dependency>
参考资料
[1]
monkey-api-encrypt: https://github.com/yinjihuan/monkey-api-encrypt
关于作者:尹吉欢,简单的技术爱好者,《Spring Cloud 微服务-全栈技术与案例解析》, 《Spring Cloud 微服务 入门 实战与进阶》作者, 公众号 猿天地 发起人。个人微信 jihuan900, 欢迎勾搭。
相关推荐
后台回复 学习资料 领取学习视频
如有收获,点个在看,诚挚感谢
尹吉欢
我不差钱啊