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返回页面显示

11.spring security 认证和授权简单流程了解的更多相关文章

  1. spring-security-4 (4)spring security 认证和授权原理

    在上一节我们讨论了spring security过滤器的创建和注册原理.请记住springSecurityFilterChain(类型为FilterChainProxy)是实际起作用的过滤器链,Del ...

  2. Spring Security 解析(一) —— 授权过程

    Spring Security 解析(一) -- 授权过程   在学习Spring Cloud 时,遇到了授权服务oauth 相关内容时,总是一知半解,因此决定先把Spring Security .S ...

  3. Spring Security 整合freemaker 实现简单登录和角色控制

    Spring Security 整合freemaker 实现简单登录和角色控制     写这篇文章是因为我做了一个电商网站项目,近期刚加上权限控制.整个过程很简单,在此给大家梳理一下,也算是自己对知识 ...

  4. Spring Security认证配置(三)

    学习本章之前,可以先了解下上篇Spring Security认证配置(二) 本篇想要达到这样几个目的: 1.登录成功处理 2.登录失败处理 3.调用方自定义登录后处理类型 具体配置代码如下: spri ...

  5. spring security 认证源码跟踪

    spring security 认证源码跟踪 ​ 在跟踪认证源码之前,我们先根据官网说明一下security的内部原理,主要是依据一系列的filter来实现,大家可以根据https://docs.sp ...

  6. Spring Security认证流程分析--练气后期

    写在前面 在前一篇文章中,我们介绍了如何配置spring security的自定义认证页面,以及前后端分离场景下如何获取spring security的CSRF Token.在这一篇文章中我们将来分析 ...

  7. Spring Security 认证执行流程

    本文基于 Spring Security 5.x 推荐阅读: 项目集成Spring Security SpringSecurity 整合 JWT 一.外层-正常登陆调用 项目启动后会自动寻找 User ...

  8. spring boot:spring security实现oauth2授权认证(spring boot 2.3.3)

    一,oauth2的用途? 1,什么是oauth2? OAuth2 是一个开放标准, 它允许用户让第三方应用访问该用户在某一网站上存储的私密资源(如头像.照片.视频等), 在这个过程中无须将用户名和密码 ...

  9. Spring Security 案例实现和执行流程剖析

    Spring Security Spring Security 是 Spring 社区的一个顶级项目,也是 Spring Boot 官方推荐使用的安全框架.除了常规的认证(Authentication ...

  10. Spring Security 实战干货: 简单的认识 OAuth2.0 协议

    1.前言 欢迎阅读 Spring Security 实战干货 系列文章 .OAuth2.0 是近几年比较流行的授权机制,对于普通用户来说可能每天你都在用它,我们经常使用的第三方登录大都基于 OAuth ...

随机推荐

  1. clamav测试用例 API

    最近接触到clamav这一块,本身是一个很简单的任务,只需要调用他的API对文件进行检测即可,但是在进行大量搜索发现,网上最多只有API的讲解,且质量层次不齐,这可为难住我了,作为一个名副其实的&qu ...

  2. PRVF-4007 : User equivalence check failed for user "grid"

    PRVF-4007 : User equivalence check failed for user "grid" 问题:Oracle安装Grid Infrastructure之前 ...

  3. 装了google浏览器不代表就能使用google搜索

    第一步:装google浏览器 第二步:连接外网(FQ的本质就是连接一个服务器) 第三步:输入网址google.com 跳转到此页面即成功 现在的想法是

  4. resnet模型下载

    resnet模型下载: model_urls = { 'resnet18': 'https://s3.amazonaws.com/pytorch/models/resnet18-5c106cde.pt ...

  5. new一个实例的原理及过程

    前提,要明白new出来的实例是什么,包含了哪些内容? 请看一下举例代码↓↓↓↓ function Person(name,age){ this.name = name; this.age = age; ...

  6. Crypto入门 (五)混合编码

    前言: 这次得题目从本质上说没有什么难点,是多次利用base64和16进制编码,层层解开就好,通过这题得代码编写能很好得锻炼python代码能力,一起加油,尝试着自己写写看看把. 混合编码: 题目:J ...

  7. Mysql 5.7 内存配置 (未完成)

    innodb_buffer_pool_size = 4024024024 innodb 引擎,用于 缓存数据和索引

  8. mysql 递归

    MySQL中实现递归查询   对于数据库中的树形结构数据,如部门表,有时候,我们需要知道某部门的所有下属部分或者某部分的所有上级部门,这时候就需要用到mysql的递归查询 1.创建表 DROP TAB ...

  9. SpringBoot多数据源yaml配置

    1.配置多数据源 pom文件 <dependency> <groupId>com.baomidou</groupId> <artifactId>dyna ...

  10. windows server 2012 AD域服务器的搭建安装 子域的创建加入 客户机加入域环境(Active Directory域)

    1,安装Active Directory域前的准备工作 2,安装Active Directory域 3,加入子域(可选) 4,加入客户机 ******************************* ...