SecureApi使用文档SecureApi使用文档
主页
开始使用
版本历史
  • 中国大陆
  • 国际
  • 简体中文
  • English
主页
开始使用
版本历史
  • 中国大陆
  • 国际
  • 简体中文
  • English
  • 快速开始

    • 开始使用
    • 安装
    • 配置
    • 试一下
  • 指南

    • 注解
    • URL匹配
    • 异常处理
    • 加密算法
    • CipherUtils
    • 两种模式
    • DH密钥协商
    • 数字签名校验
  • JS示例
  • 最佳实践
  • 微服务调用
  • 黑金刚

试一下

好了各位大佬们,到了这里,配置以及完成,接下来可以进行效果体验了,后面有时间会提供前后端的 demo。

WARNING

本篇只是先体验功能,请务必和我的代码相同,不然也许你会遇到一些问题,代码里使用的注解等后续篇幅会介绍,可以解决你的疑惑。

启动项目

SecureApi的 enable 设置为 true 时,控制台会打印以下信息,代表开启接口加解密功能,我这里没有指定 key ,所以组件为我自动生成了,然后你可以把密钥设置到前端或者和前端进行密钥协商以追求更安全的传输。

建议测试的时候使用 CipherUtils 手动设置密钥,可以指定 seed 保证每次生成的密钥相同,更加方便。

后端启动打印信息
后端启动打印信息

返回值加密

前面我们没有配置url匹配,需要在接口上或者接口所在类上添加 @EncryptApi 注解,即可实现返回值加密

返回值加密接口
返回值加密接口

可以看到由于我开启了日志打印功能,控制台打印出一些信息

返回值加密日志
返回值加密日志

接口返回的是一个json字符串,然后前端使用对应密钥解密这个字符串(注意这是个json字符串,前端处理时应该去除前后两端引号)就可以拿到 {"code":200,"message":"哈哈哈","data":null} 这样的对象了

接口返回值密文
接口返回值密文

参数解密

Body参数解密

组件可以对json参数体进行解密,这次我们传入上一步中加密的返回值,看一看解密结果,接口需要添加 @DecryptApi 注解,这样这个接口既会解密参数,也会加密返回值

参数解密接口
参数解密接口
发送body密文
发送body密文

可以看到密文参数正常解密为 {"code":200,"message":"哈哈哈","data":null},返回值也成功加密了

body解密
body解密

param和form-data参数解密

这一次我们整复杂一点,各种类型的参数都整上,没有开启url匹配,我们要给字段加上 @DecryptParam 注解,注意 @DecryptParam 不能和 @RequestParam 同时使用,@DecryptParam 已经替代了后者功能。

param和form-data参数解密接口
param和form-data参数解密接口

实体类本身不需要加注解,要加在里面的字段上,注意,没有加注解的字段不会解密(配置了url匹配的话,加不加注解全部字段都会解密)

实体类中字段
实体类中字段

发送请求,请求中这些密文都是我提前用代码生成好的(注意,param里的密文要是url safe的),这些参数放在 param 里或者放在 form-data 里发送都是可以的

发送请求
发送请求

成功解密加了注解的参数,没有加注解和为null的参数不解密

param和form-data参数解密日志
param和form-data参数解密日志

总结

关于 @DecryptApi @EncryptApi @DecryptParam 注解的使用,请看下篇 注解

在 Github 上编辑
最近更新:
编著者: XuYijie
Prev
配置