API加密框架Monkey

框架介绍

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, 欢迎勾搭。

相关推荐

后台回复 学习资料 领取学习视频

如有收获,点个在看,诚挚感谢

本文分享自微信公众号 - 猿天地(cxytiandi)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

java将前端的json数组字符串转换为列表

记录下在前端通过ajax提交了一个json数组的字符串,在后端如何转换为列表。前端数据转化与请求varcontracts{id:'1',name:'yanggb合同1'},{id:'2',name:'yanggb合同2'},{id:'3',name:'yang