System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及http加密解密,具体来说,涉及一种web服务端的统一解密过滤器。
技术介绍
1、现在http加密解密的过程大多如图3所示:在客户端将明文加密成密文,然后将密码发送给服务端;服务端在业务代码先解密,然后再处理业务。这样存在的问题主要存在以下方面:
2、1、业务代码中夹带了和业务处理无关的解密过程,尤其在spring mvc框架下,密文不能直接转成业务参数,因此在spring mvc框架中业务代码还要夹带上解密后取参数的过程。因此对于写业务的程序员来说,无疑是增加了没有必要的工作量。
3、2、有时同一个web接口如图3中的\hello\world1,存在不同客户端会有不同的加密方式。比如同是访问\hello\world1,微信小程序客户端会用微信小程序的加密过程,微信浏览器则用自定义的加密过程。对于服务端来说,不同的加密过程过对应的取密钥和解密过程都不一样。将这些都写到业务代码中,将使业务代码大大臃肿,也使得业务的程序员的工作量大大增加。
4、3、对日志不友好,现在行业内很多行业内很大多用aop的方式来记录日志。该方式是对业务方法生成一个代理,当调用到该方法时,实际调用的是代理。代理会先记录相关信息,然后再调用该方法。其中调用所传参数是最重要的信息之。若此时记录的参数是加密后的密文,则不利于后期的日志分析。
5、针对相关技术中的问题,目前尚未提出有效的解决方案。
技术实现思路
1、针对相关技术中的问题,本专利技术提出一种w
2、本专利技术的技术方案是这样实现的:
3、一种web服务端的统一解密过滤器,包括以下步骤:
4、解密过滤器预先匹配路径,其中,包括:若没匹配到,则将请求转到业务处理;若匹配到了,则获取该路径上的所有解密器名称;
5、若返回的解密器名称为空或只有noncrypt,说明不需要解密,则将请求转到业务处理,否则,初始化一个cryptrequestwrapper对象,该对象包装了http原生请求对象作为新的http请求对象,表示为crypthttp对象;
6、进行除名称为noncrypt之外,会根据解密器名称,在解密器管理中拿到所有解密器;
7、以按顺序调解密器的方法:boolean match(httpservletrequest request),传参crypthttp对象。
8、进一步的,所述解密过滤器预先匹配路径,包括:
9、标定路径匹配规则以请求路径和路径管理中的路径逐一作ant匹配,且匹配到则匹配停止并返回解密器名称。
10、进一步的,步骤所述将请求转到业务处理,包括以下步骤:
11、若没有匹配到,则尝试路径管理中的下一条路径,直到路径管理中的所有路径都尝试过,且若都没匹配到则返回空。
12、进一步的,所述解密过滤器,包括:cryptrequestwrapper(1)和解密上下文管理器(2),其中;
13、所述cryptrequestwrapper(1),用于读出请求体,待解密后,再将明文写回请求体;
14、所述解密上下文管理器(2),用于查看当前请求路径是否需要解密,若需要则根据请求调用相应的解密器对请求体进行解密得到密文。
15、进一步的,所述传参crypthttp对象,包括以下步骤:
16、若返回ture,先调crypthttp的getbodydata获得请求体数据bodydata,然后调解密器的方法:byte[]handlesecurity(byte[]rawdata,httpservletrequest request),传参:bodydata,crypthttp;
17、若发生异常,将调用解密器的方法:
18、voidhandleexception(httpservletrequestrequest,httpservletresponserespons e,throwable e),处理异常,并终止请求的处理;
19、否则,将得到解密后的密文数据,再调crypthttp的setbodydata(byte[]bodydata),传参:解密后的密文数据,最后将请求crypthttp转到业务;
20、若返回false则尝试下一个解密器的方法:boolean match(httpservletrequestrequest),若所有解密器都返回false,再返回客户端500响应,并终止请求的处理。
21、本专利技术的有益效果是:
22、本专利技术对加密的http请求体进行统一解密,将解密过程从业务中抽离出来,用户可以自定义多种解密器,并通过配置可给同一个web接口配置多个解密器,其客户端请求在调用时,会先经过统一解密过滤器,统一解密过滤器会先将请求体取出,解密后再将解密后的明文填回请求体中,实现对这些加密数据进行统一的解密操作,确保只有经过正确解密后的数据才能进入后续的业务逻辑处理环节,有效防止了加密数据被未授权访问或篡改,保护了如用户密码、个人隐私信息、企业机密数据等重要内容的安全性。
本文档来自技高网...【技术保护点】
1.一种web服务端的统一解密过滤器,其特征在于,包括以下步骤:
2.根据权利要求1所述的web服务端的统一解密过滤器,其特征在于,所述解密过滤器预先匹配路径,包括:
3.根据权利要求2所述的web服务端的统一解密过滤器,其特征在于,步骤所述将请求转到业务处理,包括以下步骤:
4.根据权利要求1所述的web服务端的统一解密过滤器,其特征在于,所述解密过滤器,包括:CryptRequestWrapper(1)和解密上下文管理器(2),其中;
5.根据权利要求1所述的web服务端的统一解密过滤器,其特征在于,所述传参cryptHttp对象,包括以下步骤:
【技术特征摘要】
1.一种web服务端的统一解密过滤器,其特征在于,包括以下步骤:
2.根据权利要求1所述的web服务端的统一解密过滤器,其特征在于,所述解密过滤器预先匹配路径,包括:
3.根据权利要求2所述的web服务端的统一解密过滤器,其特征在于,步骤所述将请求转到业务处理,包括以下步骤:<...
【专利技术属性】
技术研发人员:李宝君,何玉华,
申请(专利权)人:全通金信控股广东有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。