首页 > 其他分享 >spring security 认证和授权简单流程了解

spring security 认证和授权简单流程了解

时间:2022-09-24 11:00:16浏览次数:52  
标签:url spring 用户 信息 认证 security

1.总结:昨天主要是对WebSecurityConfigurerAdaptor的三个函数的区分以及了解了spring security的认证和授权流程;再就是动手使用了下thymeleaf和freeMark的模板以及使用JSON和fastJSON进行了JSON序列化显示图书信息

  1. WebSecurityConfigurerAdaptor的AuthenticationManagerBuilder主要是配置全局认证信息即AuthenticationManager(一般都是 通过DaoAuthenticationManagerProvider来实现)认证服务提供者和UserDetailsService来查询用户信息
  2. WebSecurity主要是全局请求忽略配置
  3. HttpSecurity主要是具体权限控制配置即授权哪些人访问哪些页面
  4. spring security的认证流程:首先是AbstractAuthenticationProcessingFilter过滤器将用户账号和密码封装成一个Authentication实现类UsernamePasswordAuthenticationToken;再通过AuthenticationManager的实现类DaoAuthenticationManagerProvider来验证验证用户信息是否有效;如果验证成功AuthenticationManager会议返回一个Authentication的Object里面包含用户的身份、权限、细节信息,但不包含密码;最后通过SecurityContextHolder.getContext().getProcipal()将object存到Security context中
  5. spring security授权流程:基于角色的访问控制:RBAC;根据用户查询用户所拥有的权限信息,再根据用户的权限信息查询用户拥有的url集合,最后判断用户要访问的url是否在这个url集合中,如果在就可以访问;
  6. SecurityMetadataSource通过getAttributes方法从数据库或者其他数据源信息获取ConfigAttributes中存取的url;再通过AccessDecisionManager的decide方法投票决定是否授权访问
  2.反思:其实很多东西看起来很简单,但是还是要动手敲代码,这样才能发现一些细枝末节的问题,以及对此更加熟练;现在要做的微人力项目是一个模块导入项目,现在大多数项目都是通过一个部分使用一个模块来编写,需要应用的时候,就导入相应模块,若依项目就是这样,实现前后端分离   3.复盘:对之前的cookie实现单点登录的复盘,在登陆那里主要是模拟数据来验证灯枯信息,验证无误后,先将数据存在一个存放数据的工具类里面类似于redis,再将数据以固定字符串为键,token为值存入,响应给浏览器;这是早期单点登录的思想;而在跳转登录方法里面就是首先获取当前登录地址,以及判断cookie是否为空进而获取token,再判断token是否为空进而获取用户信息,存在即返回主页面,不存在返回登录,而在资源类的跳转里面是将存在的用户通过session返回页面显示

标签:url,spring,用户,信息,认证,security
From: https://www.cnblogs.com/kzf-99/p/16725145.html

相关文章

  • SpringCloud使用注解+AOP+MQ来实现日志管理模块
    简介无论在什么系统中,日志管理模块都属于十分重要的部分,接下来会通过注解+AOP+MQ的方式实现一个简易的日志管理系统思路注解: 标记需要记录日志的方法AOP: 通过AOP......
  • 自定义的配置文件,如何注入到SpringBoot?
    一、简介在实际的项目开发过程中,我们经常需要将某些变量从代码里面抽离出来,放在配置文件里面,以便更加统一、灵活的管理服务配置信息。比如,数据库、eureka、zookeeper、redi......
  • Spring创建对象的方式
    ​ /**作者:呆萌老师*☑csdn认证讲师*☑51cto高级讲师*☑腾讯课堂认证讲师*☑网易云课堂认证讲师*☑华为开发者学堂认证讲师*☑爱奇艺千人名师计划成员*在这里......
  • 【Nacos】最新版本 Spring Cloud Alibaba nacos 负载均衡调用异常 没有找到对应主机
    问题原因:最新版本的Nacos中没有依赖任何负载均衡的包,解决办法:需要手动引入Ribbon或者LoadBalancer,这里建议引入LoadBalancer,因为Ribbon已经处于维护状态......
  • SpringMvc源码执行流程
    Mvc源码流程源码基于spring5.3.22首先写一个SpringBoot工程,加一个controller,在controller打一个断点,收集堆栈:TestAccess3$original$zyabwkcd:15,TestMvc(com.zanpo.it......
  • 培养技能、增强信心、 获得亚马逊云科技认证
    掌握技术,是提升自我能力;获得认证,则是展示自我能力。报名参加挑战,遵循我们为您推荐的学习路径,获得2022年亚马逊云科技云从业者认证。什么是AWSCertified:CloudPractit......
  • Springboot的前端(html)使用bootstrap框架 入门
    准备动作进入官网下载压缩包https://getbootstrap.com/docs/5.2/getting-started/download/解压,然后把文件放在这个目录:\src\main\resources\static结构如下:......
  • Spring事务说明
    事务失效场景注意spring事务时通过springaop实现的,通过this关键字调用方法时,没有通过代理类代理方法,导致事务失效Spring的默认的事务规则是遇到运行异常(RuntimeExcepti......
  • springboot 配置类
    @Data@ConfigurationProperties(prefix="recruitment.config")@ComponentpublicclassRecruitmentConfigProperty{/***完成招募跳转url*/......
  • Spring MVC框架:第十三章:类型转换
    SpringMVC将“把请求参数注入到POJO对象”这个操作称为“数据绑定”。数据类型的转换和格式化就发生在数据绑定的过程中。类型转换和格式化是密不可分的两个过程,很多带格......