V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zhongpingjing
V2EX  ›  Java

使用拦截器对接口通信进行解密问题

  •  
  •   zhongpingjing · 2021-05-22 15:37:02 +08:00 · 1667 次点击
    这是一个创建于 1284 天前的主题,其中的信息可能已经有所发展或是发生改变。
    想用 spring 提供的 HandlerInterceptor 拦截请求来做接口数据的解密,通过 HttpServletRequest 获取到请求参数
    解密后如何再把参数设置到 HttpServletRequest 中去?
    HttpServletRequest 只有 getParameterMap()和 getQueryString()方法,没有对应的 set 方法。

    如果通过拦截器的思路行不通,那应该通过什么方式来进行解密??
    3 条回复    2021-05-22 20:11:48 +08:00
    zhongpingjing
        1
    zhongpingjing  
    OP
       2021-05-22 15:40:41 +08:00
    spring 也也提供一个 RequestBodyAdvice 接口可以对请求进行拦截解密,不过这个只能拦截被 @RequestBody 修饰的方法。
    但通过 url 参数或者表单提交的请求无法拦截
    securityCoding
        2
    securityCoding  
       2021-05-22 16:47:02 +08:00
    很常见的需求,关键字自己搜索一下吧

    1. 继承 HttpServletRequestWrapper,重写父类方法
    2. 继继承 OncePerRequestFilter ,实现抽象方法
    zhongpingjing
        3
    zhongpingjing  
    OP
       2021-05-22 20:11:48 +08:00
    @securityCoding 感谢,按照你的提示,解决了问题
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4095 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 05:14 · PVG 13:14 · LAX 21:14 · JFK 00:14
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.