当前位置:   article > 正文

SpringBoot 接口加密解密

SpringBoot 接口加密解密

在我们日常的Java开发中,有时候我们想保证数据传输的安全,对接口出参加密,入参解密。

但是不想写重复代码,我们希望有一个通用starter,提供通用加密解密功能

hutool-crypto提供了很多加密解密工具,包括对称加密,非对称加密,摘要加密等等。

问题:在request中存在流只能读一次问题

在接口调用链中,request的请求流只能调用一次,处理之后,如果之后还需要用到请求流获取数据,就会发现数据为空。

比如使用了filter或者aop在接口处理之前,获取了request中的数据,对参数进行了校验,那么之后就不能在获取request请求流了

解决:

我们可以通过继承HttpServletRequestWrapper,将请求中的流copy一份,复写getInputStream和getReader方法供外部使用。每次调用后的getInputStream方法都是从复制出来的二进制数组中进行获取,这个二进制数组在对象存在期间一致存在。

使用Filter过滤器,在一开始,替换request为自己定义的可以多次读取流的request。

这样就实现了流的重复获取

InputStreamHttpServletRequestWrapper

  1. package xyz.hlh.cryptotest.utils;
  2. import org.apache.commons.io.IOUtils;
  3. import javax.servlet.ReadListener;
  4. import
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/370471
推荐阅读
相关标签
  

闽ICP备14008679号