专栏首页猿天地API加密框架Monkey-Api-Encrypt发布1.2版本

API加密框架Monkey-Api-Encrypt发布1.2版本

框架介绍

monkey-api-encrypt 是我之前写的一个 API 加密的框架,主要是将加密/解密的逻辑交给框架实现,等数据到达 Controller 后自动解密了,让开发人员不需要关注数据的加解密操作。

新功能介绍

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

本文分享自微信公众号 - 猿天地(cxytiandi),作者:尹吉欢

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-04-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • solr or es 结合弥补mongodb的全文检索功能

    最近将公司的solr集群升级到了最新的6.5版本。 之前用了N年的是3点多的版本,那个时候solr还不支持自带的集群,集群方式都是自己实现的。 公司里用的最多的...

    猿天地
  • ElasticSearch搜索引擎在SpringBoot中的实践

    实验环境 ES版本:5.3.0 spring bt版本:1.5.9 首先当然需要安装好elastic search环境,最好再安装上可视化插件 elastics...

    猿天地
  • 微服务架构~BFF和网关是如何演化出来的

    BFF(Backend for Frontend)和网关Gateway是微服务架构中的两个重要概念,这两个概念相对比较新,有些开发人员甚至是架构师都不甚理解。

    猿天地
  • 深度学习的三种硬件方案ASICs、FPGAs 和GPU,开发者需要知道什么?

    今年三月AlphaGo和李世石的“世纪之战”炒红了深度学习—— AlphaGo采用了人工神经网络技术,充分挖掘了深度学习的潜力。简单来说,深度学习是一个包含了许...

    GPUS Lady
  • 业界丨深度学习的三种硬件方案 ASICs、FPGAs 和 GPU,开发者需要知道什么?

    AI科技评论:今年三月 AlphaGo 和李世石的“世纪之战”炒红了深度学习—— AlphaGo 采用了人工神经网络技术,充分挖掘了深度学习的潜力。简单来说,深...

    AI科技评论
  • Spark DataFrame简介(二)

    Spark的TimestampType类型与Java的java.sql.Timestamp对应,

    用户1217611
  • 利用Windows PowerShell来批量创建Office 365(各种订阅)用户

    本文参考的官方文档:https://docs.microsoft.com/zh-cn/office365/enterprise/powershell/creat...

    Erwin
  • Android内容服务ContentService原理浅析ContentService启动跟实质注册观察者流程通知流程总结

    ContentService可以看做Android中一个系统级别的消息中心,可以说搭建了一个系统级的观察者模型,APP可以向消息中心注册观察者,选择订阅自己关心...

    看书的小蜗牛
  • 贪心算法-LeetCode 121、122(深浅拷贝,贪心思路)

    深拷贝解决的问题是: 当创建对象时,在构造函数中建立堆区,并在析构函数中删除,当使用Test t2 = t1时,这属于浅拷贝,此时t2和t1的buffer指向同...

    算法工程师之路
  • insert语句的加锁情况分析

    今天分享的内容是MySQL里面insert语句的加锁情况,废话就不多说了,直接从线上的例子开始吧。

    AsiaYe

扫码关注云+社区

领取腾讯云代金券