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

相关文章
|
11天前
|
安全 数据安全/隐私保护
Springboot+Spring security +jwt认证+动态授权
Springboot+Spring security +jwt认证+动态授权
|
1天前
|
安全 Java Spring
Spring Security 5.7 最新配置细节(直接就能用),WebSecurityConfigurerAdapter 已废弃
Spring Security 5.7 最新配置细节(直接就能用),WebSecurityConfigurerAdapter 已废弃
12 0
|
3天前
|
安全 Java 数据安全/隐私保护
使用Spring Security进行Java身份验证与授权
【4月更文挑战第16天】Spring Security是Java应用的安全框架,提供认证和授权解决方案。通过添加相关依赖到`pom.xml`,然后配置`SecurityConfig`,如设置用户认证信息和URL访问规则,可以实现应用的安全保护。认证流程包括请求拦截、身份验证、响应生成和访问控制。授权则涉及访问决策管理器,如基于角色的投票。Spring Security为开发者构建安全应用提供了全面且灵活的工具,涵盖OAuth2、CSRF保护等功能。
|
5天前
|
安全 前端开发 Java
Spring Security的授权管理器实现
Spring Security的授权管理器涉及用户登录后的token验证和权限检查。当用户携带token访问时,框架会验证token合法性及用户访问权限。自定义授权管理器`TokenAuthorizationManager`需实现`AuthorizationManager<RequestAuthorizationContext>`接口,处理校验逻辑,包括解析token、判断用户角色与访问资源的匹配。配置中在`SecurityConfig`注册该管理器以生效。测试表明,具有不同角色的用户可访问相应权限的资源,否则返回403错误。
116 4
|
5天前
|
安全 Java Spring
Spring Security的授权&鉴权
该文档介绍了授权和鉴权的概念,主要分为Web授权和方法授权。Web授权通过URL拦截进行,而方法授权利用注解控制权限,粒度更细但耦合度高。在Web授权的案例中,展示了如何在Spring Security中对特定URL设置角色控制。此外,还列举了Spring Security内置的控制操作方法,如permitAll()、denyAll()和hasRole()等,用于定义不同类型的用户访问权限。
106 7
|
10天前
|
安全 Java 数据库
Spring Security加密解密
Spring Security加密解密
|
16天前
|
存储 安全 Java
Spring Security应用讲解(Java案列演示)
Spring Security应用讲解(Java案列演示)
|
5月前
|
缓存 安全 算法
Spring Security OAuth 2.0 资源服务器— JWT
Spring Security OAuth 2.0 资源服务器— JWT
225 1
|
3月前
|
安全 Java 数据安全/隐私保护
Spring Security OAuth 之 @EnableAuthorizationServer 干了啥?
【1月更文挑战第19天】在引入 Spring Security OAuth 的 starter 后,可以方便地使用注解,自动开启和配置授权服务组件。它是如何完成这些配置的?
91 2
|
3月前
|
安全 NoSQL Java
Spring Security OAuth 令牌生成
【1月更文挑战第17天】之前写了两篇分析 Spring Security OAuth 认证流程的文章,这篇主要来分析一下,`tokenServices.createAccessToken` 方法,具体是怎么生成 Token。
34 2