Spring Security --- formLogin配置

news2025/1/15 17:33:56

目录

环境准备

配置自定义登录表单页面

配置登录成功的跳转页面方式

配置登录失败的跳转页面方式

前端表单参数获取

CustomWebSecurityConfigurerAdapter配置类代码示例


  • 环境准备

  • 创建springboot项目
  • 引入spring security框架
  • 引入thymeleaf模板引擎
  • 配置自定义登录表单页面

  • 1-自定义login.html页面

  • 2-Controller层显示login.html页面的前端控制器

  • 3-CustomWebSecurityConfigurerAdapter配置类设置
  • 在配置类中设置请求需要登录认证
  • 在配置类中设置请求放行
  • 需要在自定义配置类中放行自定义登录页面的url放行, 让用户匿名可以访问登录页面
  • 不然所有的请求都需要登录认证,都需要跳转到登录页面,登录页面也需要跳转到登录页面,这就有死循环了
  • 需要在自定义配置类中放行自定义登录页面的静态资源访问放行, 让用户匿名可以访问静态资源
  • 4-测试
  • 除了/showLogin之外所有的请求都会自动跳转到自定义登录页面, 要求用户先登录认证

  • 配置登录成功的跳转页面方式

  • 1-自定义home.html页面,登录成功之后跳转到home.html页面

  • 2-Controller层显示home.html页面的前端控制器

  • 3-CustomWebSecurityConfigurerAdapter配置类设置
  • 4-测试
  • 点击立即登录成功之后,页面刷新一下又跳转到登录页面,为什么?
  • 原因: spring security框架默认开启了csrf
  • 在配置类中关闭csrf

  • 不关闭csrf,在login.html页面上添加csrf.token的参数也能解决
  • 启动项目, 访问http://localhost:8080,使用账号:admin和密码:123456登录,登录成功,页面跳转成功
  • 配置登录失败的跳转页面方式

  • 1-自定义error_page.html页面,登录失败之后跳转到error_page.html页面

  • 2-Controller层显示home.html页面的前端控制器

  • 3-CustomWebSecurityConfigurerAdapter配置类设置
  • 4-测试
  • 启动项目, 访问http://localhost:8080,使用账号:admin和密码:123123登录,密码错误,跳转到默认的登录异常页面
  • 密码错误,页面一闪还是在默认的登录页面;怎么回事?
  • 原因: /errPage路由需要登录认证
  • 处理方法: 在配置类中将/errPage路由放行,允许用户匿名访问
  • 前端表单参数获取

  • 如果前端用户在定义login页面的时候,用户名和密码的dom元素的name属性没有设置成username和password,那会怎么样?
  • spring security还能正常获取到参数进行登录认证么?那肯定是不可以的
  • 通过修改login.html表单,token获取
  • CustomWebSecurityConfigurerAdapter配置类代码示例

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/435714.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

TryHackMe-Year of the Pig(Linux渗透测试)

Year of the Pig 有些猪会飞,有些有故事要讲。开始吧! 端口扫描 循例nmap Web枚举 进入80 gobuster扫 进到/admin,尝试弱口令,给出了密码提示 密码本身的一些很简单的单词,密码的后三位是两位数字加一个特殊字符 我…

Flask(Jinja2)服务端模板注入漏洞(SSTI)整理

整理一下Flask框架下的SSTI漏洞相关知识: 漏洞原理 Flask是一个很常用的python框架,其中存在SSTI漏洞。 SSTI,服务端模板注入,很早就知道这个东西,但没有仔细整理过,作为一种注入漏洞,简单说…

LeetCode算法小抄-- 最近公共祖先 和 完全二叉树的节点个数

LeetCode算法小抄-- 最近公共祖先 和 完全二叉树的节点个数 最近公共祖先[236. 二叉树的最近公共祖先](https://leetcode.cn/problems/lowest-common-ancestor-of-a-binary-tree/)[235. 二叉搜索树的最近公共祖先](https://leetcode.cn/problems/lowest-common-ancestor-of-a-b…

redis单机最大并发量

redis单机最大并发量 布隆过滤器多级缓存客户端缓存应用层缓存Expires和Cache-Control的区别Nginx缓存管理 服务层缓存进程内缓存进程外缓存 缓存数据一致性问题的解决引入多级缓存设计的时刻 Redis的速度非常的快,单机的Redis就可以⽀撑 每秒十几万的并发,相对于MySQL来说,性…

Linux中将Python2升到Python3

目录 1、安装依赖包 2、下载python3 方式一 方式二 3.解压文件 4.安装 5.建立软连接 1、安装依赖包 yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-dev…

Mysql·分库分表

Mysql分库分表 在mysql中新建数据库用以表分库分表mycat解压后配置文件参数server.xml 主要配置mycat服务的参数,比如端口号,myact用户名和密码使用的逻辑数据库等rule.xml 主要配置路由策略,主要有分片的片键,拆分的策略&#xf…

Elasticsearch:Elasticsearch 容量规划

Elasticsearch 是一个可扩展的分布式系统,可为企业搜索、日志聚合、可观察性和安全性提供解决方案。 Elastic 解决方案建立在一个单一、灵活的技术堆栈之上,可以部署在任何地方。 要在自托管或云端运行生产环境 Elasticsearch,需要规划基础架…

删除注册表配置后Chrome仍然显示“由贵单位管理”解决办法

这个提示并不影响使用,但是强迫症看着就是难受,搞掉他。 现象 找到是谁触发的 浏览器输入并打开chrome://policy/ 其实看不看意义不大,因为你知道了也奈何不了他。 解决问题 使用百度搜索一下都是提供的删除注册表的方法(通过…

【C++技能树】NameSpace --命名空间的使用

Halo,这里是Ppeua。平时主要更新C语言,C,数据结构算法......感兴趣就关注我吧!你定不会失望。 🌈个人主页:主页链接 🌈算法专栏:专栏链接 我会一直往里填充内容哒! &…

burpsuite抓包数据分析

以抓到的pikachu的数据为例: POST /pikachu/vul/burteforce/bf_form.php HTTP/1.1 # POST请求 被抓包的文件 http协议是1.1 Host: www.xxx.com #Host是主机 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:49.0) Gecko/20100101Firefox/49.0 #user-agent是…

【C陷阱与缺陷】两道“有趣”的代码题

如果读者不了解函数指针的&#xff0c;可以先看看这篇文章 链接 < 第一题 > 代码&#xff1a; (*(void (*)())0)();解析&#xff1a; &#x1f4ac;如果你是头一次看上面这段代码的话&#xff0c;心里一定是一个大大的问号&#xff1f;&#xff1f;&#xff1f;现在我…

C++的输入输出概述

&#x1f436;博主主页&#xff1a;ᰔᩚ. 一怀明月ꦿ ❤️‍&#x1f525;专栏系列&#xff1a;线性代数&#xff0c;C初学者入门训练&#xff0c;题解C&#xff0c;C的使用文章&#xff0c;「初学」C &#x1f525;座右铭&#xff1a;“不要等到什么都没有了&#xff0c;才下…

前缀和2:2615等值距离和

2615. 等值距离和 - 力扣&#xff08;LeetCode&#xff09; 做这道题之前&#xff0c;先完成1685. 有序数组中差绝对值之和 - 力扣&#xff08;LeetCode&#xff09; 一般性的&#xff0c;我们能在这类题目中总结出以下规律&#xff1a; 求解有序数组中每个元素与q的差值res时…

Traceroute的原理及应用挑战

1 Traceroute简介 Traceroute 是继 ping 之后使用最广泛的网络诊断工具之一&#xff0c;因为它简单且应用范围非常广泛。 traceroute 的可能应用范围从简单的网络错误诊断到揭示底层网络拓扑的大型扫描。然而&#xff0c;由于 traceroute 不是在考虑现代网络技术的情况下构建的…

让你轻松入门APP自动化测试:UiAutomator2框架基础解析

目录 前言 一、uiautomator/uiautomator2的前生今世 1.官方文档介绍 2.梳理一下脉络 3.三款框架对比 二、uiautomator2简介 1.项目组成 2.工作原理 三、环境搭建 1.安装uiautomator2 2.初始化设备 3.init时都干了啥&#xff1f; 四、基础操作 1.连接设备 2.命令…

IEEE SPL | 基于图注意力机制的音频语意概述

本文由哈工程智能信号处理组与悉尼科技大学、萨里大学合作&#xff0c;发表于IEEE信号处理学会期刊IEEE Signal Processing Letters&#xff0c;论文一作为2020级硕士研究生肖飞扬。 论文链接&#xff1a;https://arxiv.org/abs/2304.03586 论文代码&#xff1a;https://github…

GPT 任务指令 = 定义角色 + 背景信息 + 任务目标 + 输出要求

GPT 任务指令 定义角色 背景信息 任务目标 输出要求 环境 GPT-4 0. 你是一名专业的导游&#xff0c;负责为我生成旅游计划&#xff0c;现在我来北京旅游&#xff0c;需要你为我生成一份 3天2晚的北京旅游规划。我的要求是&#xff1a;1.地点包括故宫、军播和环球影城。 2…

你一定能看懂的SQL事务及其实现原理

一。概念 事务 是数据库执行原子操作的基本单位。一个事务中的多个修改&#xff0c;则要么全部成功执行&#xff0c;要么全部不执行。 关于事务的 MYSQL 官网的解释 Transactions are atomic units of work that can be *committed* or *rolled back*. When a transaction ma…

substrate实例-基于OCW发送一个签名交易

目录标题 1. 获取substrate-node-template代码2. 添加一个用于测试的ocw-test目录至pallets3. 编写ocw-test/src/lib.rs代码3.1 需要用到的包名的引用3.2 模块crypto的实现3.3 mode pallet 的实现-config、storage、event3.4 mode pallet 的实现-call3.5 mode pallet 的实现-ho…

整理的汉字及拼音、编码数据文件,依据拼音声母进行归类共计2万多条

本篇文章主要讲解自己整理的汉字拼音数据资源的下载及使用方法。 资源截图 包含&#xff1a;sql、xls、txt、json等格式文件 汉字涵盖&#xff1a;多音字、生僻字 下载地址&#xff1a;https://download.csdn.net/download/hj960511/87705416 使用方法 步骤一、下载资源包&…