前端向后端提交密码等敏感信息时先做编码再提交
- 解决方案
- 参考文档
- 踩的坑
- spring security自定义filter重复执行问题
- ServletRequest中getReader()和getInputStream()只能调用一次
- 需要修改的点
- 延伸和适配性
- 代码暂时没有,我把相关的代码提取出来会放到这里
后端有处理密码的加密算法,仅仅在前端处理和后端filter层处理,不改变原有的加密的逻辑(场景比较特殊)
解决方案
- 在配置文件配置需要加密解密的url和parameter
- 自定义filter,拦截到需要解密的url,dofilter
- 定义HttpRequestWrapper,处理解密
- filterChain(HttpRequestWrapper, response);
https://stackoverflow.com/questions/681263/modify-httpservletrequest-body
https://stackoverflow.com/questions/50932518/how-to-modify-request-body-before-reaching-controller-in-spring-boot踩的坑
- @RequestParam 和 @RequestBody 区别,以及HttpRequestWrapper分别需要@Override的方法
- @RequestParam :@getParameter @getParameterValues @getParameterMap
- @RequestBody : @getReader @getInputStream
- spring security自定义filter重复执行问题
https://segmentfault.com/a/1190000012173419
- ServletRequest中getReader()和getInputStream()只能调用一次
https://www.cnblogs.com/zj0208/p/6214576.html需要修改的点
- 配置文件配置属性的分隔符 (url 之间用分号间隔,param之间用逗号间隔)
- url 和 url/ 的匹配 (检测最后为/,直接删除)
- ……
- 加密和机密算法的可配置
【SpringBoot|前端向后端提交密码等敏感信息时先做编码再提交】https://github.com/yemaozi5518/SpringBootEncryption/blob/master/README.md
推荐阅读
- 第五节:SpringBoot常用注解介绍
- 第四节:SpringBoot中web模版数据渲染展示
- SpringBoot2022【草稿】
- 聊聊springboot项目全局异常处理那些事儿
- 第一节:创建SpringBoot项目并运行HelloWorld
- springboot管理系统[基于员工角色和文件权限的分级的后台管理系统源码]
- SpringBoot之@ComponentScan和@SpringBootApplication扫描覆盖问题
- mybatis|记mybatis查询null字段导致的NPE
- SpringBoot|SpringBoot 整合 druid数据源