SpringSecurity登录验证没有权限的问题(403)

这篇具有很好参考价值的文章主要介绍了SpringSecurity登录验证没有权限的问题(403)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问题重现

SpringSecurityConfig配置登录验证拦截,并放行登录验证及生成二维码的url。
SpringSecurity登录验证没有权限的问题(403)

调用postman 测试接口,发现可以获取验证码。
SpringSecurity登录验证没有权限的问题(403)

但当进行登录验证的时候就报了403错误,没有走过滤器,而是是直接走了配置中的accessDeniedHandler方法,返回403。

SpringSecurity登录验证没有权限的问题(403)

当使用get接口发现走了过滤器,但是因为SpringSecurity规定了登录验证必须走post,所以登录失败。但为什么post方法直接走403呢?

SpringSecurity登录验证没有权限的问题(403)

原因

后来查阅资料发现,因为SpringSecurity开启了CSRF跨站防护,(SpringSecurity在2.0之后就会默认自动开启)。一旦开启了CSRF,所有经过springsecurity的http请求以及资源都被会CsrfFilter拦截,仅仅GET|HEAD|TRACE|OPTIONS这4类方法会被放行,也就是说post,delete等方法依旧是被拦截掉的,限制了除了get以外的大多数方法,报出403错误。需要关闭CSRF,post请求才会被接收。

解决方法

1、关闭CSRF跨站防护

http.csrf().disable();

2、开启CSRF,设置将令牌存入cookie中。在post请求头带入令牌参数进行提交。(最佳选择)

http.csrf().csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse());

SpringSecurity登录验证没有权限的问题(403)

搞定。文章来源地址https://www.toymoban.com/news/detail-504794.html

到了这里,关于SpringSecurity登录验证没有权限的问题(403)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 关于 Android 没有文件存储权限保存文件的问题

    我发现Android 有些APP 他们不需要申请文件存储权限就可以进行文件的保存翻阅大量文章总结如下: 从 Android 10 开始,Android 引入了一种新的存储权限模型,其中应用需要明确请求运行时权限以访问外部存储。在这种情况下,许多应用程序可能需要请求 WRITE_EXTERNAL_STORAGE 权限才

    2024年01月17日
    浏览(45)
  • Mac 终端-z‘sh提示 Permission denied 权限问题(VSCode提示没有权限,无法保存文件问题)

    一个文件有3种权限,读、写、可执行,Permission denied就是没有可执行权限,所以需要加上可执行权限。 1. 进入终端先 cd到该文件的目录下 2. 执行命令 chmod a+x ./ 文件名 二:赋予文件夹权限 $ sudo chmod -R 777  目录路径 其中 -R 是指级联应用到目录里的所有子目录和文件 777 是所

    2024年02月03日
    浏览(87)
  • gitlab没有push权限,重设账号密码仍然不行,问题解决

    目录 一  问题描述 二  权限问题 三 参考链接 $ git push Enumerating objects: 570, done. Counting objects: 100% (570/570), done. Delta compression using up to 12 threads Compressing objects: 100% (541/541), done. Writing objects: 100% (560/560), 75.00 MiB | 4.18 MiB/s, done. Total 560 (delta 166), reused 10 (delta 5) remote: Resolving deltas:

    2024年02月16日
    浏览(46)
  • docker版 Transmission以及qbittorrent 下载路径没有权限问题

    在pve中分别跑了truenas,在debian中的docker,以及openwrt。 debian中使用cifs挂载了nas路径。 在docker中安装的的transmission和qbittorrent没有访问路径的权限。 1.首先确定smb共享的挂载路径是有读取权限的。 2.docker中的transmission和qbittorrent可以下载到docker的系统的本地路径中。 在transmis

    2024年02月11日
    浏览(41)
  • spring boot中常用的安全框架 Security框架 利用Security框架实现用户登录验证token和用户授权(接口权限控制)

    spring boot中常用的安全框架 Security 和 Shiro 框架 Security 两大核心功能 认证 和 授权 重量级 Shiro 轻量级框架 不限于web 开发 在不使用安全框架的时候 一般我们利用过滤器和 aop自己实现 权限验证 用户登录 Security 实现逻辑 输入用户名和密码 提交 把提交用户名和密码封装对象

    2024年02月06日
    浏览(55)
  • Selenium登录页面点击登录页面没有跳转问题(click()失效)

    对于一般的登录界面的登录按钮用xpath定位元素再点击就可以进入页面,但是如果登录不是一个按钮而是一张图片,这时我们该怎么定位并登录成功呢? 比如下面这个登录,并不是按钮而是一个div,div里面放了图片 一开始我用了xpath定位,但是结果就是不报错也没有跳转到登录

    2024年02月08日
    浏览(48)
  • 如何解决iOS打包工具AppUploader登录权限问题?

    🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页 ——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文并茂🦖生动形象🐅简单易学!欢迎大家来踩踩~🌺 🌊 《IDEA开发秘籍专栏》 🐾 学会IDEA常用操作,工作效率翻倍~💐 🌊 《100天精通Golang(基础

    2024年02月09日
    浏览(55)
  • SpringSecurity实现角色权限控制(SpringBoot+SpringSecurity+JWT)

    通过 springboot整合jwt和security ,以用户名/密码的方式进行认证和授权。认证通过jwt+数据库的,授权这里使用了两种方式,分别是 SpringSecurity自带的hasRole方法+SecurityConfig 和 我们自定义的 permission+@PreAuthorize注解。 SpringSecurity中的几个重要组件: 1.SecurityContextHolder(class) 用来

    2024年02月05日
    浏览(45)
  • 使用selenium模拟登录解决滑块验证问题

    目录 1.登录入口 2.点击“账号密码登录” 3.输入账号、密码并点击登录 4.滑块验证过程 5.小结 本次主要是使用selenium模拟登录网页端的TX新闻,本来最开始是模拟请求的,但是某一天突然发现,部分账号需要经过滑块验证才能正常登录,如果还是模拟请求,需要的参数太多了

    2024年02月16日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包