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。真正出于安全考虑,应该将它打开。

相关文章
|
1月前
|
JSON 安全 Java
什么是JWT?如何使用Spring Boot Security实现它?
什么是JWT?如何使用Spring Boot Security实现它?
165 5
|
2月前
|
前端开发 Java 开发者
Spring生态学习路径与源码深度探讨
【11月更文挑战第13天】Spring框架作为Java企业级开发中的核心框架,其丰富的生态系统和强大的功能吸引了无数开发者的关注。学习Spring生态不仅仅是掌握Spring Framework本身,更需要深入理解其周边组件和工具,以及源码的底层实现逻辑。本文将从Spring生态的学习路径入手,详细探讨如何系统地学习Spring,并深入解析各个重点的底层实现逻辑。
69 9
|
3月前
|
前端开发 Java 数据库
SpringBoot学习
【10月更文挑战第7天】Spring学习
45 9
|
2月前
|
Java Kotlin 索引
学习Spring框架特性及jiar包下载
Spring 5作为最新版本,更新了JDK基线至8,修订了核心框架,增强了反射和接口功能,支持响应式编程及Kotlin语言,引入了函数式Web框架,并提升了测试功能。Spring框架可在其官网下载,包括文档、jar包和XML Schema文档,适用于Java SE和Java EE项目。
35 0
|
3月前
|
XML Java 数据格式
Spring学习
【10月更文挑战第6天】Spring学习
28 1
|
3月前
|
Java 测试技术 开发者
springboot学习四:Spring Boot profile多环境配置、devtools热部署
这篇文章主要介绍了如何在Spring Boot中进行多环境配置以及如何整合DevTools实现热部署,以提高开发效率。
112 2
|
3月前
|
前端开发 Java 程序员
springboot 学习十五:Spring Boot 优雅的集成Swagger2、Knife4j
这篇文章是关于如何在Spring Boot项目中集成Swagger2和Knife4j来生成和美化API接口文档的详细教程。
285 1
|
3月前
|
Java API Spring
springboot学习七:Spring Boot2.x 拦截器基础入门&实战项目场景实现
这篇文章是关于Spring Boot 2.x中拦截器的入门教程和实战项目场景实现的详细指南。
39 0
springboot学习七:Spring Boot2.x 拦截器基础入门&实战项目场景实现
|
3月前
|
Java API Spring
springboot学习六:Spring Boot2.x 过滤器基础入门&实战项目场景实现
这篇文章是关于Spring Boot 2.x中过滤器的基础知识和实战项目应用的教程。
43 0
springboot学习六:Spring Boot2.x 过滤器基础入门&实战项目场景实现
|
3月前
|
Java 关系型数据库 MySQL
springboot学习五:springboot整合Mybatis 连接 mysql数据库
这篇文章是关于如何使用Spring Boot整合MyBatis来连接MySQL数据库,并进行基本的增删改查操作的教程。
339 0
springboot学习五:springboot整合Mybatis 连接 mysql数据库