在我们日常的Java开发中,有时候我们想保证数据传输的安全,对接口出参加密,入参解密。
但是不想写重复代码,我们希望有一个通用starter,提供通用加密解密功能
hu服务器托管tool-crypto提供了很多加密解密工具,包括对称加密,非对称加密,摘要加密等等。
问题:在request中存在流只能读一次问题
在接口调用链中,request的请求流只能调用一次,处理之后,如果之后还需要用到请求流获取数据,就会发现数据为空。
比如使用了filter或者aop在接口处理之前,获取了request中的数据,对参数进行了校验,那么之后就不能在获取request请求流了
解决:
我们可以通过继承HttpServletRequestWrapper
,将请求中的流copy一份,复写getInputStream
和getReader方法供外部使用。每次调用后的getInputStream
方法都是从复制出来的二进制数组中进行获取,这个二进制数组在对象存在期间一致存在。
使用Filter过滤器,在一开始,替换request为自己定义的可以多次读取流的request。
这样就实现了流的重复获取
InputStreamHttpServletRequestWrapper
packagexyz.hlh.cryptotest.utils;
importorg.apache.commons.io.IOUtils;
importjavax.servlet.ReadListener;
import
服务器托管,北京服务器托管,服务器租用 http://www.fw服务器托管qtg.net
百度“C# 换脸”找到参考文献4,发现其中使用DlibDotNet检测并识别人脸(之前主要用的是ViewFaceCore),DlibDotNet是Dlib的.net封装版本,后者为开源C++工具包,支持机器学习算法、图像处理等算法以支撑各类高级应用,本文学…