yinjihuan / monkey-api-encrypt

monkey-api-encrypt是对基于Servlet的Web框架API请求进行统一加解密操作
Apache License 2.0
792 stars 347 forks source link

如果我使用@RequestParam来接收多个参数,好像无法解密? #36

Closed WayneLee5991 closed 5 years ago

WayneLee5991 commented 5 years ago

使用@RequestParam参数来接收参数,是无法解密的,只有用@RequestBody的时候才可以。还有就是如果我统一了返回数据格式,就像:{code:““,msg:"",data:""},把他们全部加密好像有点多余,只加密data部分是不是更好点。

yinjihuan commented 5 years ago

解密只针对requestBody才有效,只加密data部分不太好操作,框架还需要关心的数据结构

yinjihuan commented 5 years ago

你可以通过自定义算法来实现这部分的逻辑,在你自己的逻辑中你可以只对指定key进行加密

WayneLee5991 commented 5 years ago

后来我自己想了个办法,不知道可行否。可以自定义注解,通过AOP的@Around环绕增强来处理请求的参数,pjp获取的请求参数是一个Object数组,循环解密,然后调用proceed方法。@AfterReturing来处理响应参数,returnValue是自定义的返回数据就只加密想加密的数据。

yinjihuan commented 5 years ago

也可以的,其实自定义算法实现也很简单,一般每个系统的格式是固定的话就好处理,比如这种格式:

{
  "header":{
    "sign":"xxxx",
    "xxx": "xxxx"
  },
  "body":"加密内容"
}

这个时候只需要在自定义算法中进行加解密的逻辑,只对body部分进行处理,如果格式不统一的话比较麻烦