在一些业务场景中,需要对http的请求体和响应体做加解密的操作,如果在controller中来调用加解密函数,会增加代码的耦合度,同时也会增加调试的难度。

参考spring中http请求的链路,选择过滤器来对请求和响应做加解密的调用。只需要在过滤器中对符合条件的url做拦截处理即可。

一般在过滤器中修改请求体和响应体,以往需要自行创建Wrapper包装类,从原请求Request对象中读取原请求体,修改后重新放入新的请求对象中等等操作......非常麻烦。如果可以在过滤器中只定义加解密的函数,然后调用一个API传入这些加解密函数,中间操作统统不管,这样用起来岂不是更爽!

1、启动类配置注解

新增注解@ServletComponentScan

@SpringBootApplication

@ServletComponentScan

public class HttpdecryptApplication {

public static void main(String[] args) {

SpringApplication.run(HttpdecryptApplication.class, args);

}

}

2、过滤器实现

2.1、用Base64算法做加解密示例

@WebFilter(urlPatterns

java过滤器修改响应,在过滤器中实现修改http请求体和响应体相关推荐

  1. mysql 修改结束符_MySQL数据库中DELIMITER修改结束符教程及应用实例

    关于DELIMITER 在MySQL中默认的结束符DELIMITER是;,它用于标识一段命令是否结束.在默认情况下,在命令行客户端中,如果有一行命令以;结束,那么回车后,MySQL将会执行该命令. 修 ...

  2. Java工具类:HttpUtil(HttpClient实现http的请求,获取响应)

    (1)maven 依赖: <!-- HttpClinet 核心包 --> <dependency><groupId>org.apache.httpcomponent ...

  3. linux 修改proc目录,Linux_Linux中系统参数修改命令sysctl的使用讲解,sysctl配置与显示在/proc/sys目录 - phpStudy...

    Linux中系统参数修改命令sysctl的使用讲解 sysctl配置与显示在/proc/sys目录中的内核参数.可以用sysctl来设置或重新设置联网功能,如IP转发.IP碎片去除以及源路由检查等.用 ...

  4. mysql中怎么修改字段_mysql表中怎么修改字段?

    在mysql表中,可以使用"ALTER TABLE 表名 CHANGE 旧字段名 新字段名 数据类型;"语句来修改字段名称:使用"ALTER TABLE 表名 MODIF ...

  5. linux 批量修改文件名中间,Linux中批量修改文件名

    Linux中批量修改文件名 有时候我们有一个目录下面的文件名都需要重新命令 如: 以下有十个学生完成的脚本,现在需要将finish改为ing [root@slave test]# touch stud ...

  6. HTTP Header中的内容(请求Header、响应Header)

    HTTP 请求和相应 Header 服务器端接受到浏览器端的请求后,生成用户需要的文件,发回响应Header . 浏览器端向服务器端发送的请求Header 如下: Host zhiqiang.org ...

  7. mysql修改表charset_MySql数据库中查询修改表中字符编码(charset)的方法

    MySQL字符集多种多样,下面为您列举了其中三种最多见的MySQL字符集查看方法,该方法供您参考,但愿对您学习MySQL数据库能有所启迪.mysql 1.查看MySQL数据库服务器和数据库MySQL字 ...

  8. java smack_java – 如何在Android smack中正确接受好友请求?

    有一个openfire服务器和 Android客户端(smack).所有客户端都可以互相添加到好友/名单列表中(未经授权,我希望用户可以在没有接受好友请求的情况下看到对方).我在获取好友请求发件人的状 ...

  9. c语言 获取文件修改时间,C语言中用于修改文件的存取时间的函数使用

    C语言utime()函数:修改文件的存取时间和更改时间头文件: #include #include 定义函数: int utime(const char * filename, struct utim ...

  10. mysql修改表中文名_MySQL中如何修改表的名字?修改表名?

    需求描述 今天在进行MySQL表的历史数据迁移,需要将某张表进行备份,修改表的名字,在此记录下操作过程. 操作过程 mysql> create table ts01 like ti_o_sms; ...

最新文章

  1. sql 存储过程 分页
  2. 基于 abp vNext 和 .NET Core 开发博客项目 - 用AutoMapper搞定对象映射
  3. Linux自启进程管理工具,进程管理工具Supervisor的安装及使用
  4. Python函数式编程-map()、zip()、filter()、reduce()、lambda()
  5. python打印进程号与线程号
  6. 公众号小tips(持续更新)
  7. 注意了!人社部宣布:未来5年,这 10 个新职业有千万缺口
  8. opencv的Mat与Eigen的Matrix相互转换
  9. 抖音上非常火的整人小程序
  10. java 回车表示_Java 换行和回车
  11. 三极管原理-导通条件
  12. 突破封锁——MAC地址欺骗
  13. OpenLayers - 加载静态图片(十二)
  14. 用python生成excel文件_python通过openpyxl生成Excel文件的方法
  15. 计算机启动后无法进入系统怎么办,开机进不了windows系统怎么办
  16. 一道技术美术的面试题
  17. 中国大学慕课——程序设计与算法(一)第三周测验
  18. Python编程:从入门到实践(美).pdf -学习篇(基础)
  19. arm el2与el3_armv8架构与指令集.整理.初稿.pdf
  20. 操作系统实验:Linux下的进程控制实验

热门文章

  1. Django----做一个简单网页的教程(适合初学者)
  2. Integer关于equals与==的比较(自动拆装箱技术和常量池技术)
  3. 自动摘要生成 tf-idf+doc2vec+句子聚类
  4. MySQL-InnoDB的索引原理及优化技术
  5. ArcGis加载天地图山东WMTS服务
  6. css布局的基本思想,流行的CSS思想之——浅析OOCSS
  7. Ubuntu如何安装Python
  8. 北美CS求学找工指南
  9. cv2,PIL,plt,tensorflow方法图片显示及plt的的plt.colorbar()的使用需要注意
  10. 【基于WPF+OneNote+Oracle的中文图片识别系统阶段总结】之篇一:WPF常用知识以及本项目设计总结