ruoyi-vue第⼀章:学习后台登录模块(SpringSecurity)
ruoyi-vue第⼀章 : 学习后台登录模块(SpringSecurity)
前置知识:
后端: SpringBoot + mybatis + maven.
前端(认识就⾏): vue + js.
如果没有对应的知识, 建议学习后再来观看本视频.
1. ruoyi-vue项⽬介绍及登录模块梳理
ruoyi是gitee上顶流的开源项⽬之⼀, 常被作为外包,基础开发等开发的基础项⽬, 开箱即⽤, 并且提供了⼀体版本, 前后分离版本, 分布式版本,其他衍⽣版本.
本系列教程以前后端分离版本(ruoyi-vue)为主.
[外链图⽚转存失败,源站可能有防盗链机制,建议将图⽚保存下来直接上传(img-voztAGWC-1643437614575)
(C:\Users\renYao\AppData\Roaming\Typora\typora-user-images\image-20220129135042079.png)]
我们点击演⽰地址,
[外链图⽚转存失败,源站可能有防盗链机制,建议将图⽚保存下来直接上传(img-wfGWQvUa-1643437614575)
(C:\Users\renYao\AppData\Roaming\Typora\typora-user-images\image-20220129135112136.png)]
本次要实现的就是该页⾯的后端, 除了验证码和token权限相关的内容(避免篇幅过长).
ruoyi源码现如今已经较庞⼤, 我这⾥会先⾏阅读并尽可能抽离单独的模块进⾏笔记.
如果你有兴趣, 可以跟进后续其他模块.
2. SpringSecurity 框架介绍
Spring 是⾮常流⾏和成功的 Java 应⽤开发框架,SpringSecurity 正是 Spring 家族中的成员。SpringSecurity 基于 Spring 框架,提供了⼀套 Web 应⽤安全性的完整解决⽅案。
正如你可能知道的关于安全⽅⾯的两个主要区域是“认证”和“授权”(或者访问控制),⼀般来说,Web
应⽤的安全性包括⽤户认证(Authentication)和⽤户授权(Authorization)两个部分,这两点也是 Spring Security 重要核⼼功能。
(1)⽤户认证指的是:验证某个⽤户是否为系统中的合法主体,也就是说⽤户能否访问该系统。⽤户认证⼀般要求⽤户提供⽤户名和密码。系统通过校验⽤户名和密码来完成认证过程。通俗点说就是系统认为⽤户是否能登录
(2)⽤户授权指的是验证某个⽤户是否有权限执⾏某个操作。在⼀个系统中,不同⽤户所具有的权限是不同的。⽐如对⼀个⽂件来说,有的⽤户只能进⾏读取,⽽有的⽤户可以进⾏修改。⼀般来说,系统会为不同的⽤户分配不同的⾓⾊,⽽每个⾓⾊则对应⼀系列的权限。通俗点讲就是系统判断⽤户是否有权限去做某些事情。
Spring Security 是 Spring家族中的⼀个安全管理框架,实际上,在 Spring Boot 出现之前,Spring Security 就已经发展了多年了,但是使⽤的并不多,安全管理这个领域,⼀直是 Shiro 的天下。
相对于 Shiro,在 SSM 中整合Spring Security 都是⽐较⿇烦的操作,所以,SpringSecurity 虽然功能⽐Shiro 强⼤,但是使⽤反⽽没有 Shiro 多(Shiro 虽然功能没有Spring Security 多,但是对于⼤部分项⽬⽽⾔,Shiro 也够⽤了)。
⾃从有了 Spring Boot 之后,Spring Boot 对于 Spring Security 提供了⾃动化配置⽅案,可以使⽤更少的配置来使⽤SpringSecurity。因此,⼀般来说,常见的安全管理技术栈的组合是这样的:
SSM + Shiro
Spring Boot/Spring Cloud + SpringSecurity
3. SpringSecurity的第⼀个项⽬
我们这⾥使⽤IDEA编译器新建SpringBoot项⽬, 随后整合进SpringSecurity框架, 来让⼤家直观感受⼀下.
3.1 使⽤IDEA新建⼀个SpringBoot项⽬.
新建⼀个空的maven项⽬, 然后maven引⼊SpringBoot 和SpringBoot-web/test的依赖就⾏了.
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.3</version>
<relativePath/><!-- lookup parent from repository -->
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
springcloud难学吗<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。