Spring Security 关闭 csrf 拦截|学习笔记

简介: 快速学习 Spring Security 关闭 csrf 拦截

开发者学堂课程【Spring Security知识精讲与实战演示(一)Spring Security关闭csrf拦截】学习笔记与课程紧密联系,让用户快速学习知识

课程地址https://developer.aliyun.com/learning/course/730/detail/13034


Spring Security关闭csrf拦截

 

目前已经可以让 Spring Security 使用自己定义的认证页面。那么这个页面到底能否正常页面认证通过认证?接下来做一个测试:

在测试之前需要注意现在需要用 Spring Security 的认证必须将登录的请求的地址改成 Spring Security 的认证路径。

找到 login 页面找到 from 表单的 url 提交地址。

image.png

在静态的时候会跳转到 idex.jps,现在必须要经过处理器,这个处理器不是自己写的,是 Spring Security 处理器提供的。还需要注意一个细节:method 后面必须是post。为什么是 post,而不能用 get 呢?在源码中判断就必须是 post。修改之后刷新。

如果在下图中配置了,就可以不刷新了。在下图中的 on frame deactivation 选择update classess and resources 自动更新,上面的不用改变。但是也有一个弊端:需要经常清理缓存。

image.png

回到页面上,用户名输入user。依然是内存中的用户。如下图:依然是标蓝的用户。

image.png

虽然现在用的是自己的认证页面,但是与数据库中的用户信息是没有关系的。现在并没有连数据库认证。所以登录的用户名依然是 user。

点击登录。发现出现了问题:如下图

image.png

这个问题与之前的问题有些不一样。之前都是404或者500.现在的是403.403指的是权限不足。之前在后台中看到的side、indefond,指的就是这里的403.但是这里的权限不足指的不是没有权限而不足。难道连访问 localhost。8080/login 的权限都没有吗?

之前在做下图页面认证的时候。F12看了一个东西

image.png

下图中箭头所指内容隐藏了一些信息:

image.png

问题就在这行信息中。如果想要让正常通过,需要加上这行信息,但是还可以采用别的方式。可以不让这行信息起作用。也就是现在想要测验证有两种方式:1、不让csrf拦截;2、专门做csrf拦截。

接下来演示这两种操作。

1、不让 csrf 拦截

先登录通过。怎么不拦截,需要写上:去掉 CSRF 拦截的过滤器

在刚刚讲解的15个过滤器中有去掉 CSRF 拦截的过滤器,在默认页面中。因为有去掉CSRF拦截的过滤器,csrf 内部机制怎么做之后会讲解,现在先不要让这个问题干扰正常认证。先将其关闭(再次启动过滤器,这个项目就没了)。

直接写security:csrf disabled(不起作用)=“true”这样操作之后刚刚的CSRF拦截的过滤器就没了。这时需要注意尽量不要刷新了。因为ID 页面的版本不一样,有些版本可能刷新好用,但是有些ID版本刷新并不能重新加载 WEB-INF。也就是过滤器链中的东西有会一直有。因此这里最好重新启动。

这个是与ID的配置相关的,但是为了不出问题,都统一重新启动比较保险。(如果嫌比较麻烦,可以先刷新一次,出问题了再重新启动即可)

继续输入 user,点击登录。现在的主页面就可以正常登录了。但是现在的页面可能会被 csrf 攻击,因为现在没有 csrf 的管理了,之前关闭了 csrf。真正出于安全考虑,应该将它打开。

相关文章
|
JSON 安全 Java
什么是JWT?如何使用Spring Boot Security实现它?
什么是JWT?如何使用Spring Boot Security实现它?
2054 5
|
2月前
|
搜索推荐 JavaScript Java
基于springboot的儿童家长教育能力提升学习系统
本系统聚焦儿童家长教育能力提升,针对家庭教育中理念混乱、时间不足、个性化服务缺失等问题,构建科学、系统、个性化的在线学习平台。融合Spring Boot、Vue等先进技术,整合优质教育资源,提供高效便捷的学习路径,助力家长掌握科学育儿方法,促进儿童全面健康发展,推动家庭和谐与社会进步。
|
8月前
|
安全 Java API
深入解析 Spring Security 配置中的 CSRF 启用与 requestMatchers 报错问题
本文深入解析了Spring Security配置中CSRF启用与`requestMatchers`报错的常见问题。针对CSRF,指出默认已启用,无需调用`enable()`,只需移除`disable()`即可恢复。对于`requestMatchers`多路径匹配报错,分析了Spring Security 6.x中方法签名的变化,并提供了三种解决方案:分次调用、自定义匹配器及降级使用`antMatchers()`。最后提醒开发者关注版本兼容性,确保升级平稳过渡。
997 2
|
9月前
|
监控 Java 应用服务中间件
微服务——SpringBoot使用归纳——为什么学习Spring Boot
本文主要探讨为什么学习Spring Boot。从Spring官方定位来看,Spring Boot旨在快速启动和运行项目,简化配置与编码。其优点包括:1) 良好的基因,继承了Spring框架的优点;2) 简化编码,通过starter依赖减少手动配置;3) 简化配置,采用Java Config方式替代繁琐的XML配置;4) 简化部署,内嵌Tomcat支持一键式启动;5) 简化监控,提供运行期性能参数获取功能。此外,从未来发展趋势看,微服务架构逐渐成为主流,而Spring Boot作为官方推荐技术,与Spring Cloud配合使用,将成为未来发展的重要方向。
364 0
微服务——SpringBoot使用归纳——为什么学习Spring Boot
|
6月前
|
安全 Java 数据库
Spring Boot 框架深入学习示例教程详解
本教程深入讲解Spring Boot框架,先介绍其基础概念与优势,如自动配置、独立运行等。通过搭建项目、配置数据库等步骤展示技术方案,并结合RESTful API开发实例帮助学习。内容涵盖环境搭建、核心组件应用(Spring MVC、Spring Data JPA、Spring Security)及示例项目——在线书店系统,助你掌握Spring Boot开发全流程。代码资源可从[链接](https://pan.quark.cn/s/14fcf913bae6)获取。
1046 2
|
8月前
|
Java Spring
Spring框架的学习与应用
总的来说,Spring框架是Java开发中的一把强大的工具。通过理解其核心概念,通过实践来学习和掌握,你可以充分利用Spring框架的强大功能,提高你的开发效率和代码质量。
204 20
|
9月前
|
JSON Java 数据格式
微服务——SpringBoot使用归纳——Spring Boot中的全局异常处理——拦截自定义异常
本文介绍了在实际项目中如何拦截自定义异常。首先,通过定义异常信息枚举类 `BusinessMsgEnum`,统一管理业务异常的代码和消息。接着,创建自定义业务异常类 `BusinessErrorException`,并在其构造方法中传入枚举类以实现异常信息的封装。最后,利用 `GlobalExceptionHandler` 拦截并处理自定义异常,返回标准的 JSON 响应格式。文章还提供了示例代码和测试方法,展示了全局异常处理在 Spring Boot 项目中的应用价值。
451 0
|
前端开发 Java 开发者
Spring生态学习路径与源码深度探讨
【11月更文挑战第13天】Spring框架作为Java企业级开发中的核心框架,其丰富的生态系统和强大的功能吸引了无数开发者的关注。学习Spring生态不仅仅是掌握Spring Framework本身,更需要深入理解其周边组件和工具,以及源码的底层实现逻辑。本文将从Spring生态的学习路径入手,详细探讨如何系统地学习Spring,并深入解析各个重点的底层实现逻辑。
317 9
|
前端开发 Java 数据库
SpringBoot学习
【10月更文挑战第7天】Spring学习
199 9
|
XML Java 数据格式
Spring学习
【10月更文挑战第6天】Spring学习
133 1