211.SpringSecurity:认证、授权概念,自定义数据源认证,验证码认证

embedded/2025/3/5 21:15:35/

目录

一、权限管理概念

1.基本概念

2.常用权限管理解决方案

(1)Shiro

(2)Spring Security

二、整体架构

1.认证:Authentication

(1)AuthenticationManager

(2)Authentication

(3)SecurityContextHolder

2.授权:Authorization

(1)AccessDecisionManager (访问决策管理器)

(2)AccessDecisionVoter (访问决定投票器)

(3)ConfigAttribute

三、环境搭建

springboot%E9%A1%B9%E7%9B%AE-toc" name="tableOfContents" style="margin-left:40px">1.新建空springboot项目

springSecurity-toc" name="tableOfContents" style="margin-left:40px">2.引入springSecurity

3.实现原理

4.为什么只是引入SpringSecurity依赖就会自己去拦截

5.流程分析,登录页面哪来的

6.默认的登录用户名、密码哪来的

四、自定义认证

1.自定义资源权限规则

2.自定义登录页面

3.前后端分离自定义登录

4.显示登录失败信息

(1)失败之后的重定向跳转

(2)失败之后的forward跳转

(3)测试

5.前后端分离自定义登录失败

6.注销登录

(1)开启注销登录

(2)多种请求地址进行注销

(3)前后端分离注销登录配置

五、登录用户数据获取

1.SecurityContextHolder

2.后台代码获取认证之后用户数据

3.页面上获取用户信息

六、自定义认证数据源

1.认证流程分析

2.AuthenticationManager、ProviderManager、AuthenticationProvider

3.配置全局 AuthenticationManager

(1)使用系统默认的全局AuthenticationManager

(2)自定义内存数据源AuthenticationManager

4.自定义数据库数据源(重要)

(1)表设计

(2)引入依赖

spring%20boot%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6-toc" name="tableOfContents" style="margin-left:80px">(3)设置spring boot配置文件

(4)创建entity

(5)创建dao

(6)创建mapper.xml

(7)创建 UserDetailService 实例

(8)配置 authenticationManager 使用自定义UserDetailService

(9)测试

七、前后端分离认证功能实例

1.创建项目、启动测试接口

2.自定义内存数据源实现功能

3.自定义数据库实现功能

八、前后端分离认证添加验证码


一、权限管理概念

1.基本概念

权限管理包括用户身份认证授权两部分,简称认证授权。对于需要访问控制的资源用户首先经过身份认证,认证通过后用户具有该资源的访问权限方可访问。

认证:

就是判断一个用户是否为合法用户的处理过程。最常用的简单身份认证方式是系统通过核对用户输入的用户名和口令,看其是否与系统中存储的该用户的用户名和口令一致,来判断用户身份是否正确。

授权:

即访问控制,控制谁能访问哪些资源。主体进行身份认证后需要分配权限方可访问系统的资源


http://www.ppmy.cn/embedded/170297.html

相关文章

面试常问的压力测试问题

性能测试作为软件开发中的关键环节,确保系统在高负载下仍能高效运行。压力测试作为性能测试的重要类型,旨在通过施加超出正常负载的压力,观察系统在极端条件下的表现。面试中,相关问题常被问及,包括定义、重要性、与负…

计算机毕设JAVA——某高校宿舍管理系统(基于SpringBoot+Vue前后端分离的项目)

文章目录 概要项目演示图片系统架构技术运行环境系统功能简介 概要 网络上许多计算机毕设项目开发前端界面设计复杂、不美观,而且功能结构十分单一,存在很多雷同的项目:不同的项目基本上就是套用固定模板,换个颜色、改个文字&…

大模型的实践应用36-基于AI Agent和通义千问大模型,支持多轮问答的智能问数和数据分析的应用场景

大家好,我是微学AI,今天给大家介绍一下大模型的实践应用36基于AI Agent和通义千问大模型,支持多轮问答的智能问数和数据分析的应用场景。 文章目录 一、整体框架功能概述(一)深度解析多轮对话在数据查询需求确定中的关键作用(二)明确查询相关要素的重要性框架结构(一)…

Redis数据库面试——数据结构类型知识

大家好,这里是Good Note,关注 公主号:Goodnote,专栏文章私信限时Free。本文详细介绍Redis 提供的5种基本数据结构类型和4种特殊类型,除此之外,还有8种底层数据结构,每种结构类型有其特点和适用场…

19.4-STM32接收数据-状态显示在屏幕

功能介绍放开头, 使用便捷无需愁 这是全网最详细、性价比最高的STM32实战项目入门教程,通过合理的硬件设计和详细的视频笔记介绍,硬件使用STM32F103主控资料多方便学习,通过3万字笔记、12多个小时视频、20多章节代码手把手教会你…

c++中什么时候应该使用extern关键字?

目录 1. 共享全局变量 2. 共享常量(const)变量 3. 与C语言交互 4. 显式模板实例化声明 5. 动态库符号管理 注意事项 关键总结 在C中,extern关键字主要用于声明变量、函数或模板的外部链接性,表明其定义存在于其他编译单元中…

探秘 Linux 系统编程:进程地址空间的奇妙世界

亲爱的读者朋友们😃,此文开启知识盛宴与思想碰撞🎉。 快来参与讨论💬,点赞👍、收藏⭐、分享📤,共创活力社区。 在 Linux 系统编程的领域里,进程地址空间可是个相当重要的…

LeetCode 79: 单词搜索 (Word Search)

LeetCode 79: 单词搜索 (Word Search) 题目描述: 给定一个字母矩阵 board 和一个目标单词 word,判断该单词是否可以从矩阵中按以下规则组成: 单词中的字母必须按顺序通过相邻的单元格(上下左右四方向)。同一个单元格…