似乎启用CSRF保护时,如果请求使用GET方法,Spring Security仅将您的原始请求放入requestCache中.为了让它也缓存POST请求,我创建了一个自定义的requestCache.

我不是100%确信这样做不会以某种方式削弱CSRF保护,但在我看来这似乎是安全的.

将请求缓存bean添加到XML配置:

通过扩展和借用HttpSessionRequestCache中的代码来实现自定义请求缓存:

public class AlwaysSaveRequestCache extends HttpSessionRequestCache

{

@Override

public void saveRequest(HttpServletRequest request, HttpServletResponse response)

{

final String SAVED_REQUEST = "SPRING_SECURITY_SAVED_REQUEST";

DefaultSavedRequest savedRequest = new DefaultSavedRequest(request, new PortResolverImpl());

request.getSession().setAttribute(SAVED_REQUEST, savedRequest);

logger.debug("DefaultSavedRequest added to Session: " + savedRequest);

}

}

现在,您的POST请求应在登录表单中断后进行缓存和重新发送.

java csrf_java – 如何在使用CSRF登录后启用Spring Secu...相关推荐

  1. java操作selenium(二)-微博自动登录后回复

    简单介绍下逻辑 步骤: 1.登录 先判断是否有cookie,有cookie直接登录,cookie失效使用账号密码登录,开始尝试登录,登录时会判断是否需要验证码(我用的是云打码平台,百度一下就知道了,这 ...

  2. 从零开始java安全权限框架篇(一):spring security配置登录登出的配置

    目录 一:安全权限框架的选取 二:功能 三:登录登出 四:代码注释 1.将登陆交由Spring security完成 2.前台明文密码加密,与数据库比对 3.关键配置 4.自定义用户异常 5.ajax ...

  3. Spring Security——实现登录后跳转到登录前页面

    基本概念 暂无. 官方文档 https://docs.spring.io/spring-security/site/docs/5.3.1.BUILD-SNAPSHOT/reference/html5/ ...

  4. Struts 拦截器权限控制【通过拦截器实现登录后跳转到登录前页面】

    应用情形:在web项目中,经常会遇到用户未登录或SESSION失效时用户发出非法的权限操作,如新闻的评论.文件的下载等等,在此我们可以使用struts拦截器对该用户发出的请求进行拦截,拦截后判断用户是 ...

  5. 实现用户的登录,并且登录后显示用户名

    利用servlet,jsp实现用户的登录,并且登录后显示用户名(连接数据库) 显示用户名这里是通过session传递数据,登陆成功后点击退出时要清除页面session. 使用软件:tomcat-8.5 ...

  6. 实现所有网站的qq登录返回登录后的cookie信息

    开源地址:https://github.com/1015770492/autoLoginQQWithAnyWeb 注意:如果你下载了源码,想在自己的windows环境下测试,将源码中top.yumbo ...

  7. 登录页面设置cookie,用户登录后,创建cookie保存用户信息

    代码要求: 用户登录后,创建cookie保存用户信息 设置cookie的有效期为5分钟 在登录页循环遍历cookie数组,判断是否存在指定名称的cookie,若存在则直接跳转至欢迎页面 代码实现过程: ...

  8. ubantu使用vsftp设置ftp上传 java添加系统用户限定ftp登录

    ftp业务搭建笔记(安装,启动,配置详解(中文) 1. 使用apt-get 工具安装vsftpd sudo apt-get install vsftpd 如果你是管理员可以使用 apt-get ins ...

  9. java和Discuz论坛实现单点登录,通过Ucenter(用户管理中心)

    果学网-专注IT在线www.prismcollege.com 1,按照下面各大链接的教程,把Base64,Client,PHPFunctions,UC,XMLHelper加入web程序. 2,修改we ...

最新文章

  1. 闲鱼单体应用Serverless化拆分实践
  2. python中单个下划线是什么意思
  3. OpenStack-MitakaCentos7.2双节点搭建--(二)Keystone(认证服务)
  4. 计算机视觉实习岗面试准备(一.基础知识)
  5. ITK:全局注册两个图像(仿射)
  6. Chrome 调试动态加载的js
  7. angualr 单选全选方法(适用购物车/各种列表删除等)
  8. java复选框批量删除_vue+element+Java实现批量删除功能
  9. 构建微服务(Building Microservices)-PDF 文档
  10. java request含嵌套_使用 RxJava 进行嵌套串行网络请求的一种方法
  11. Live2D和wallpaperEngine公用
  12. 编译原理实验1——词法分析器设计
  13. Oracle中lpad的用法
  14. sql server 2000收缩数据库【极简操作】
  15. Android项目:基于Android安卓医院挂号预约系统软件app(计算机毕业设计)
  16. 记一次笔记本更换固态硬盘事件
  17. 拼出爱心图案的c语言,抖音爱心图片拼图9格照片怎么弄 高格调拼图已被霸屏
  18. 一键还原涂鸦图片_如何用Photoshop清除照片上的涂鸦,恢复原始图像?
  19. 记录一下我在lubuntu里面用到的工具
  20. Java项目开发,学生信息管理系统

热门文章

  1. redis evict.c内存淘汰机制的源码分析
  2. 根据公开信息 已有15家公司参与央行数字货币
  3. MySQL存储过程从入门到精通
  4. 关于机器指令和微指令
  5. sparkGraphx-航班飞行网图分析
  6. IIC通信协议详解 PCF8591应用(Verilog实现FPGA)
  7. 用计算机管理员同步一下文件,《计算机应用基础(Windows 7 Office 2010)同步训练》0711.docx...
  8. 实现可点击的幸运大转盘
  9. iMeta | 复杂热图(ComplexHeatmap)可视化文章最新版,画热图就引它
  10. CAD视口与模型的线型比例保持一致的命令