权限管理-整合 SpringSecurity(2) | 学习笔记

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

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

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


权限管理-整合 SpringSecurity(2)


权限管理-整合 SpringSecurity

1、在service_acl 模块中引入 spring _security

来到 service_acl 中,之前的内容都已经复制过了,功能也书写完成,所以现在需要在 service_acl 中引入一个依赖,在 service_acl 中进行权限管理。

<dependency>

<groupId>com.atguigu</groupId>

<artifactIdspring_security</ artifactId>

<version>0.0.1-SNAPSHOT</version>

</dependency>

2、创建查询登录和用户权限类

打开 spring _security,找到 Tokenwebsecurityconfig,有个 uesrdetailsservice,这个 user 的意思是当认证输入登录密码时,需要查询数据库,通过数据库查询密码是否正确。正确之后就会查询登录用户权限列表。

在 service_acl 中,找到 service,

在里面添加了一个 userDetailsServiceImpl 这个类,这个类已经添加好了,位置可以随意添加。

UserDetailsService 必须实现一个接口 UserDetailsService,这个接口是 security 写的,security 会找这个用户用的实现类,查询用户权限,并且判断用户是否成功,这其中涉及到面向接口思想,现在应用的 security 是一种框架,框架在设计的时候就会考虑到更通用,因为每一个程序中的内容都有区别,因此如何让框架更加通用,做法就是在框架本身提供了很多接口。

在应用框架的时候可以灵活的试验接口,然后书写自己的逻辑,当你做查询的时候,没有提供接口如何查询,只需要写个类,然后查询接口,书写逻辑。

书写类的时候,系统提供接口,在其中书写自己的属性,再试验接口也可以做到,面向接口开发,面向 internet 开发,实现接口都会有这种思路,这种思路在学习 java 早期 Dbutils 就应用这种框架,Dbutils 是面向接口开发的一个小框架,其中可以自己分装,但是当时里面的内容就足够我们使用,但是也可以自己分装,更加完善。

现在 security 给我们提供了很多接口,自己书写可以按照逻辑试验接口,在其中自己约定,但是要求是要返回到security 中的 security user,security user 包括数据,security 就通过这个对象查询数据。在整合中只是做到了下述图中的一部分内容,下述图中的大部分内容是由 security 完成的,并不是少了东西,而是由 security 完成了很多内容。

我们只需要进行一些配置,例如查询数据库,将数据放到 redis 中,但是其中如何授权等内容都是由 security 完成的。

image.png

流程就是在 common 中建立一个 spring_security 模块,在模块下线引入相关的依赖,引入依赖之后,从 security 的源码中将一些股东的代码复制过来,其中有两个核心的过滤器。

再之后就是在 security_acl 中引入 security 依赖,写一个查询用户名和密码的类,类的位置是随意的,需要实现UserDetailsService 接口,这个接口是由 security 提供的,在里面书写查询逻辑,最后返回 security 对象,完成整合,通过这个过程就能实现登录认证和授权。

过程中也应用到了 redis 数据库,包括向其中写数据和用数据。例如代码 redisTemolate,redisTemplate.opsForValue().set(user.getCurrentUserInfo().getUsername()user.getPermissionValueList());将你的用户名和密码放置到 redis 中

ResponseUtil.out(res,R.ok() . data("token , token)):取数据。

所以前提是将 redis 启动,再进行测试。上述过程就是整合代码到 security,在实际应用过程也是如此,将代码复制过来再整合乘自己的需求,因为它是一个固定的整合过程。

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