权限管理-SpringSecurity 介绍 | 学习笔记

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 快速学习 权限管理-SpringSecurity 介绍

开发者学堂课程【微服务+全栈在线教育实战项目演练(SpringCloud Alibaba+SpringBoot)权限管理-SpringSecurity 介绍】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/667/detail/11532


权限管理-SpringSecurity 介绍


目录:

一、框架介绍

二、filter 过滤

三、认证与授权实现思路  

四、基本流程


一、框架介绍

Spring 是一个非常流行和成功的 Java 应用开发框架。Spring Security 基于 Spring 框架,提供了一套 Web 应用安全性的完整解决方案。

一般来说,Web 应用的安全性包括用户认证《Authentication)和用户授权(Authorization)两个部分。

(1)用户认证指的是:验证某个用户是否为系统中的合法主体,也就是说用户能否访问该系统。用户认证一般要求用户提供用户名和密码。系统通过校验用户名和密码来完成认证过程。

(2)用户授权指的是验证某个用户是否有权限执行某个操作。在一个系统中,不同用户所具有的权限是不同的。比如对一个文件来说,有的用户只能进行读取,而有的用户可以进行修改。

一般来说,系统会为不同的用户分配不同的角色,而每个角色则对应一系列的权限。


二、filter 过滤

Spring Security 其实就是用 filter,多请求的路径进行过滤。

(1) 如果是基于 Session,那么 Spring-security 会对 cookie 里的 sessionid 进行解析,找到服务器存储的 sesion 信息,然后判断当前用户是否符合请求的要求。

(2) 如果是 token,则是解析出 token,然后将当前请求加入到 Spring-security 管理的权限信息中去

所以说:Spring Security 其实就是用 filter,多请求的路径进行过滤。

(1) 如果是基于 Session,那么 Spring-security 会对 cookie 里的 sessionid 进行解析,找到服务器存储的 sesion 信息,然后判断当前用户是否符合请求的要求。

(2)如果是 token,则是解析出 token,然后将当前请求加入到 Spring-security 管理的权限信息中去


三、认证与授权实现思路

如果系统的模块众多,每个模块都需要就行授权与认证,所以我们选择基于 token 的形式进行授权与认证,用户根据用户名密码认证成功,然后获取当前用户角色的一系列校限值,并以用户名为 key,权限列表为 value 的形式存入redis 缓存中,根据用户名相关信息生成 token 返回,浏览器将 token 记录到 cookie 中,每次调用 api 接口都默认将 token 携带到 header 请求头中,Spring-security 解析 header 头获取 token 信息,解析 token 获取当前用户名,根据用户名就可以从 redis 中获取权限列表,这样 Spring-security 就能够判断当前请求是否有权限访问。


四、基本流程

(1)建立模块1和模块2

模块1  

登录

用户名密码

模块2

(2) redis

key:登录成功用户名

value:用户权限列表

(3) token

查询登录用户权限列表

(4)token 放到 cookie

在 header 放 token 值

(5)spring security  

从heaher 获取 token  

从 token 获取用户名

拿着用户名从 redis 获取权限列表  

(6)由 springsecurity 给当前用户赋予权限,可以进行相应操作中。

相关文章
|
安全 Java 数据库
SpringSecurity基础入门详解
SpringSecurity基础入门详解
259 0
|
存储 安全 Java
Spring Boot整合Spring Security--学习笔记
Spring Boot整合Spring Security--学习笔记
218 1
|
存储 缓存 应用服务中间件
|
安全 Java 数据库
Spring Security详细讲解(JWT+SpringSecurity登入案例)
通过本篇博文,你可以详细了解Spring Security的相关概念与原理,并且掌握Spring Security的认证与授权,通过博文中的登入案例可以让自己定制去Spring Security认证授权方案。
Spring Security详细讲解(JWT+SpringSecurity登入案例)
|
安全 前端开发 Java
微服务技术系列教程(38)- SpringBoot -整合SpringSecurity
微服务技术系列教程(38)- SpringBoot -整合SpringSecurity
237 0
|
存储 安全 Java
Spring Security在企业级应用中的应用
Spring Security在企业级应用中的应用
|
JSON 安全 Java
Spring Security6版本变化内容
Spring Security6版本变化内容
893 2
|
NoSQL 安全 数据库
SpringSecurity-从入门到精通-学习完整笔记-附(完整demo源码)来自b站三更草堂老师的视频教程见下方链接
SpringSecurity-从入门到精通-学习完整笔记-附(完整demo源码)来自b站三更草堂老师的视频教程见下方链接
493 0
|
JSON 前端开发 数据库
SpringSecurity实现前后端分离登录授权详解
在介绍完SpringSecurity实现前后端分离认证之后,然后就是SpringSecurity授权,在阅读本文章之前可以先了解一下作者的上一篇文章SpringSecurity认证SpringSecurity实现前后端分离登录token认证详解_山河亦问安的博客-CSDN博客。
353 0
|
安全 Java Spring
springboot整合spring security 安全认证框架
springboot整合spring security 安全认证框架
225 0