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

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
云解析 DNS,旗舰版 1个月
简介: 快速学习 权限管理-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 给当前用户赋予权限,可以进行相应操作中。

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
Java 数据安全/隐私保护 Spring
SpringSecurity 权限管理的实现
SpringSecurity是一个权限管理框架,核心是认证和授权,前面介绍过了认证的实现和源码分析,本文重点来介绍下权限管理这块的原理。
48 0
|
4月前
|
安全 数据安全/隐私保护
SpringSecurity1 --- 什么是权限管理
让我们逐步了解什么是springSecurity
|
6月前
|
JSON 前端开发 数据库
SpringSecurity实现前后端分离登录授权详解
在介绍完SpringSecurity实现前后端分离认证之后,然后就是SpringSecurity授权,在阅读本文章之前可以先了解一下作者的上一篇文章SpringSecurity认证SpringSecurity实现前后端分离登录token认证详解_山河亦问安的博客-CSDN博客。
125 0
|
存储 前端开发 安全
权限管理与Shiro入门-1
权限管理与Shiro入门-1
165 1
|
存储 缓存 安全
权限管理与Shiro入门-2
权限管理与Shiro入门-2
73 2
|
Java 数据库
springboot整合shiro (四) shiro实现权限授权
springboot整合shiro (四) shiro实现权限授权
|
存储 安全 Java
二.SpringSecurity基础-简单登录实现
SpringSecurity基础-简单登录实现
|
存储 安全 Java
SpringSecurity基础-简单登录实现
1.SpringSecurity介绍 Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spring IoC,DI(控制反转Inversion of Control ,DI:Dependency Injection 依赖注入)和AOP(面向切面编程)功能,为应用系统提供声明式的安全访问控制功能,减少了为企业系统安全控制编写大量重复代码的工作。
94 0
|
安全 API 数据库
五.SpringSecurity基础-授权流程
SpringSecurity基础-授权流程
|
缓存 安全 JavaScript
Shiro整合Spring实现登录验证和授权之入门
Shiro整合Spring实现登录验证和授权之入门
152 0
Shiro整合Spring实现登录验证和授权之入门