SpringSecurity系列
SpringSecurity系列学习(一):初识SpringSecurity
SpringSecurity系列学习(三):认证流程和源码解析
SpringSecurity系列学习(四):基于JWT的认证
SpringSecurity系列学习(四-番外):多因子验证和TOTP
SpringSecurity系列学习(五):授权流程和源码分析
SpringSecurity系列学习(六):基于RBAC的授权
SpringSecurityOauth2系列
SpringSecurityOauth2系列学习(一):初认Oauth2
SpringSecurityOauth2系列学习(二):授权服务
SpringSecurityOauth2系列学习(三):资源服务
SpringSecurityOauth2系列学习(四):自定义登陆登出接口
SpringSecurityOauth2系列学习(五):授权服务自定义异常处理
SpringSecuritySpring Security是spring采用AOP思想,基于servlet过滤器实现的安全框架。它提供了完善的认证机制和方法级的
授权功能。是一款非常优秀的权限管理框架。
学习SpringSecurity,一般都是从前后端不分离架构开始学习,然后学习前后端分离的JWT + SpringSecurity架构,之后再学习SpringSecurity + Oauth2微服务架构。
现在大部分项目都是前后端分离的,为什么还需要去看前后端不分离架构下SpringSecurity的一些东西呢?其实这部分的学习只是为了打一个基础,SpringSecurity的发展也是从前后端不分离开始的,不论是后来的前后端分离架构还是微服务架构,SpringSecurity的主要逻辑都是大同小异的。
当然这部分的学习我们先不进行编码,主要是去看概念和源码,因为在做项目的时候,主要还是采用的前后端分离的JWT + SpringSecurity架构或者SpringSecurity + Oauth2微服务架构,编码我们从第二章开始,这一章我们先看看SpringSecurity中的一些基础的东西。
认证和授权说到SpringSecurity就要说到它的核心功能:认证和授权
认证:我是谁的问题,也就是我们通常说的登陆
授权:身份验证,我能干什么。
认证和授权在SpringSecurity中是怎么样的流程呢?
这里我们写一个简单的demo,来看一下在SpringSecurity中认证和授权的流程
认证Demo新建一个springboot工程,引入依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency>引入依赖之后,SpringSecurity就已经有默认的配置了,这个时候写一个简单的控制器访问,会被SpringSecurity保护拦截。
/** * @author 硝酸铜 * @date 2021/6/2 */ @RestController @RequestMapping(value = "/api") public class UserResource { @GetMapping(value = "/greeting") public String greeting(){ return "Hello World"; } }启动项目,访问:8080/greeting,会被SpringSecurity拦截,重定向到:8080/login进行登录,这个页面是SpringSecurity默认的登陆页面