跳到主要内容

11--Spring Security核心API讲解

前言

经过前面几个章节的学习,一一哥 带大家实现了基于内存和数据库模型的认证与授权,尤其是基于自定义的数据库模型更是可以帮助我们进行灵活开发。但是前面章节的内容,属于让我们达到了 "会用" 的层级,但是 "为什么这么用",很多小伙伴就会一脸懵逼了。对于技术学习来说,我们追求的不仅要 "知其然",更要 "知其所以然"

本篇文章中,壹哥 就跟各位小伙伴一起来了解剖析Spring Security源码内部,实现认证授权的具体过程及底层原理。接下来请各位做好心理准备,以下的学习过程可能会让你心理 “稍有不适” 哦,因为每次看源码都懵懵的......

一. Spring Security认证请求完整流程图

在开始分析Spring Security关于认证授权的源码之前,壹哥先借用网上的一张图片,先让各位对认证授权有个大致的了解。

下图展示了从发起一个web请求,到经过内存或数据库层面的查询,最后再得到整个用户认证信息的全过程。

 

上图详细的给大家展示了Spring Security是如何实现认证授权的流程及运行原理的,并展示了Spring Security里的核心API。为了能让各位更好的理解掌握本文,请把这个图记下来哦!其实背诵下来也不难的,先这么背,然后那么背,一会就背下来了,hiahia......

在这个图中,涉及到了Spring Security关于认证授权的众多核心API,本文就是对这些核心API进行分析讲解,从而帮助各位掌握认证授权的执行流程,接下来请各位跟着 壹哥 来学习这些核心API吧。

因为Spring Security中关于认证授权相关的API很多,我先把这些API归为如下几类分别进行阐述,这样显得结构会更清晰一些。

二. 核心API之一:SecurityContextHolder、SecurityContext、Authentication

1. Authentication

1、 1Authentication类关系;