首页 > 其他分享 >SpingSecurity认证流程与使用

SpingSecurity认证流程与使用

时间:2024-10-10 15:23:16浏览次数:6  
标签:用户名 流程 SpingSecurity 接口 认证 Authentication 过滤器 Security

1、Security的本质:

SpringSecurity的本质就是一个过滤器链,内部包含了提供各种功能的过滤器,基本案例中的过滤器链如下图所示(仅展示了部分核心过滤器)

UsernamePasswordAuthenticationFilter:负责处理我们在登陆页面填写了用户名密码后的登陆请求。基本案例的认证工作主要有它负责

ExceptionTranslationFilter:处理过滤器链中抛出的任何AccessDeniedException和AuthenticationException

FilterSecurityInterceptor:负责权限校验的过滤器

可以通过Debug查看SpingSecurity过滤器链中有哪些过滤器以及它们的先后顺序

2、Security认证流程

Authentication接口: 它的实现类,表示当前访问系统的用户,封装了用户相关信息

AuthenticationManager接口:定义了认证Authentication的方法

UserDetailsService接口:加载用户特定数据的核心接口。里面定义了一个根据用户名查询用户信息的方法

UserDetails接口:提供核心用户信息。通过UserDetailsService根据用户名获取处理的用户信息要封装成UserDetails对象返回。然后将这些信息封装到Authentication对象中

UsernamePasswordAuthenticationFilter实现类:实现了我们最常用的基于用户名和密码的认证逻辑,封装Authentication对象

DaoAuthenticationProvider实现类:是AuthenticationManager中管理的其中一个Provider,因为是要访问数据库,所以叫Dao准备

3、Security的实现流程

3.1 第一步

启动一个Springboot项目,并在pom.xml添加对应的Spring Security的相关依赖



  org.springframework.boot
   spring-boot-starter-security

标签:用户名,流程,SpingSecurity,接口,认证,Authentication,过滤器,Security
From: https://www.cnblogs.com/tianco/p/18456457

相关文章

  • 一文搞懂SaaS业务架构:价值流、业务能力、业务流程、业务对象、组织架构
    1目标与步骤2价值流分析2.1从价值主张到价值流2.2价值流的概念2.2价值流如何识别?2.3价值流阶段如何识别?3业务流程3.1业务流程的概念3.2端到端流程3.3职能流程3.4示例:零售企业的业务流程4业务能力4.1业务能力的概念4.2业务能力的构成4.3业务流程与业......
  • 数据库认证有用吗?证书:职场晋升的有力助推器
    在当今竞争激烈的就业市场中,拥有专业技能和相关证书成为了脱颖而出的关键。数据库证书便是这样一把开启职业成功之门的金钥匙,它对于找工作和升职加薪有着不可忽视的重要作用。一、助力求职,脱颖而出1.增强竞争力随着信息技术的飞速发展,各行各业对数据库管理和分析的需求日益增......
  • 面试Two:性能测试流程
    1.名词解释:TPS(transactionpersecond)是单位时间内处理事务的数量QPS(querypersecond)是单位时间内请求的数量。2.区别:TPS的一次事务代表一次用户操作到服务器返回结果,QPS的一次请求代表一个接口的一次请求到服务器返回结果。3.性能测试流程1.学习业务,了解需求2.需求分析(......
  • 深入解析 DolphinScheduler 任务调度、拆分与执行全流程
    ApacheDolphinScheduler介绍ApacheDolphinScheduler是一个分布式易扩展的可视化DAG工作流任务调度开源系统。适用于企业级场景,提供了一个可视化操作任务、工作流和全生命周期数据处理过程的解决方案。Dag背景知识摘录了一下Dag的offical定义Agraphisformedbyvertices......
  • 用文字“画出”流程图:用 AI+Mermaid.js 构建出你心中的可视化世界
    Mermaid介绍首先,什么是Mermaid?Mermaid.js是一款开源流程图/序列图的文本制作工具,它允许你使用简单的文本语法来创建各种类型的图表。无论你是开发者、学生还是普通用户,Mermaid.js都能帮助你将复杂的信息以直观、易懂的方式呈现出来。在AI技术的加持下,Mermaid现已支持......
  • PHP语言调用翔云身份证实名认证接口
    身份证实名认证接口是一种用于验证用户身份的在线服务。它通过接收用户提供的身份证号码和姓名,与权威的数据进行比对,以确认用户的身份是否真实有效。使用该接口时,通常需要向服务提供商提供以下信息:用户的姓名用户的身份证号码用户的证件头像用户的现......
  • Spring Boot洗衣店订单系统:业务流程优化
    2相关技术2.1MYSQL数据库MySQL是一个真正的多用户、多线程SQL数据库服务器。是基于SQL的客户/服务器模式的关系数据库管理系统,它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等,非常适用于Web站点或者其他......
  • 测试流程必须严格执行吗?
    技术交流群有同学问了这样一个问题:公司有较为严格的测试流程和项目交付规范,但目前工期紧张且资源严重不足,是否还需要严格遵守流程规范。如果严格遵守流程规范则可能要延期交付,或者项目组的同学需要大量加班,有什么解决办法?该说不说,这确实是很头疼的问题。对项目管理者来说,延期......
  • Git进行版本控制操作流程
    目录一、初始化仓库操作流程 二、添加到缓存区三、提交到版本库四、推送至远程仓库生成SSH密钥将本地库中内容推送至已经创建好的远程库推送推送错误第一种:五、克隆克隆整个项目拉去最新代码六、分支1.初始化仓库或克隆远端仓库2.检查当前分支3.修改代码......
  • 基于session的认证权限中间件
    fromdjango.utils.deprecationimportMiddlewareMixinfromdjango.confimportsettingsfromdjango.shortcutsimportredirect,HttpResponse,renderfromdjango.httpimportJsonResponseclassContext:def__init__(self,role,id,name):self.ro......