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. Centos7部署PXE+Kickstart 实现批量安装操作系统

    1.PXE环境概述 作为一名运维人员,在一些中小公司经常会遇到一些机械式的重复工作,比如:批量一次大批量的进行操作系统的安装等等.为了实现自动化运维,减少人员负担我们可以部署以下服务:Kickstar ...

  2. Openpyxl一些简单的用法

    这个代码是需要自己先建立一个excel.然后导入数据 from openpyxl import load_workbook #按照一个格子输入进去 workbook = load_workbook(r ...

  3. Ubuntu-18.04.1-live-server-amd64.iso安装全过程

    以下向你介绍安装Ubuntu-18.04.1-live-server-amd64.iso版本的全过程,同时要说明的是Ubuntu 18.04.1 server版本只能通过文本的方式安装,即它没有和Ub ...

  4. 十大经典排序之快速排序(C++实现)

    快速排序 通过一趟排序将待排序列分割成两部分,其中一部分记录的关键字均比另一部分记录的关键字小.之后分别对这两部分记录继续进行排序,以达到整个序列有序的目的. 思路: (1)选择基准:从数列中挑出一个 ...

  5. js数组常用的方法

    var arr=['hello','前端','world']; 1. arr.join(分隔符):将数组中的值拼接成一个字符串,返回这个字符串,默认分隔符"," arr.join( ...

  6. OO_Lab1总结博客

    OO_Lab1 问题描述 模拟多线程实时电梯系统,新主楼ABCDE五个楼座各楼层均有电梯,乘客发起形如"从X座x层到Y座y层"的请求,电梯模拟上下行.开关门.乘客进出等行为,以满足 ...

  7. python中and和or表达式的返回值

    a or b 首先明确运算顺序, 从左至右 # 其次只要存在真就会返回真, and返回的是最后一个真, or返回的是第一个真 # 再次, a,b中存在假, 则and返回第一个假, or返回最后一个假 ...

  8. yum随笔

    1.一般企业的服务器都能联网,所以装包都是装系统给的或者是自己去第三方的源,如下: http://mirrors.aliyun.com/repo/Centos-7.repo http://mirror ...

  9. Vue学习之基础大全

    1 导入vue: 2 <script src="vue.min.js"></script> 3 创建vm实例 4 var vm=new Vue({ 5 el ...

  10. StoneDB 子查询优化

    StoneDB 子查询优化 摘要: 说明如何优化 exists 的 join 查询优化器的处理 核心函数: TwoDimensionalJoiner::ChooseJoinAlgorithm Join ...