【encrypt-api】对SpringBoot控制器统一的响应体加密与请求体解密

介绍

本文参考源码, encrypt-body-demo是对SpringBoot控制器统一的响应体加密与请求体解密的注解处理方式,支持AES/DES/RSA/Base64。

加密解密支持

  • 可进行加密的方式有:
      • AES
      • DES
      • RSA
      • Base64
  • 可进行解密的方式有:
      • AES
      • DES
      • RSA
      • Base64

使用方法

  • 在工程对应的Application类中增加@EnableEncryptBody注解,例如:
@EnableEncryptBody
@SpringBootApplication
public class Application {
    
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

}
  • 参数配置
    在项目的application.ymlapplication.properties文件中进行参数配置,例如:
encrypt:  
    body:
      aes-key: 12345678 #AES加密秘钥
      des-key: 12345678 #DES加密秘钥
  • 对控制器响应体进行加密
@Controller
@RequestMapping("/test")
public class TestController {

    @GetMapping
    @ResponseBody
    @EncryptBody(value = EncryptBodyMethod.AES)
    public String test(){
        return "hello world";
    }

}

或者使用@RestController对整个控制器的方法响应体都进行加密:

@RestController
@EncryptBody
@RequestMapping("/test")
public class TestController {

    @GetMapping
    public String test(){
        return "hello world";
    }

}

注解一览表

开源协议

Apache 2.0

其他参考

实现思路

  1. 设置启动加解密API请求或响应
  2. 编写RequestBodyAdviceResponseBodyAdvice实现
  3. supports引入是否加解密
  4. 实现beforeBodyRead beforeBodyWrite
  5. 不同方式实现加解密(动态key)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值