1.简介
Spring Security 是 Spring 家族中的一个安全管理框架。相比与另外一个安全框架Shiro,它提供了更丰富的功能,社区资源也比Shiro丰富。
一般来说中大型的项目都是使用SpringSecurity 来做安全框架。小项目有Shiro的比较多,因为相比与SpringSecurity,Shiro的上手更加的简单。
一般Web应用的需要进行认证和授权。
认证:验证当前访问系统的是不是本系统的用户,并且要确认具体是哪个用户
授权:经过认证后判断当前用户是否有权限进行某个操作
而认证和授权也是SpringSecurity作为安全框架的核心功能。
现如今,新项目的开发都采用的是SpringBoot+Vue前后端分离式开发,那么接下来就让我们来学习一下SpringSecurity前后端分离式项目搭建。
SpringSecurity的工作流程
所谓的 SpringSecurity 实际上就是由一些列过滤器组成的顾虑器链。请求通过层层过滤器,最终发送至API,最后响应又通过层层过滤器返回至响应端。
2.入门工作
2.1 Maven依赖
首先搭建一个SpringBoot项目(常规搭建),引入相关SpringSecurity依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
<version>3.3.3</version>
</dependency>
2.2 修改Springboot yml配置文件
server:
port: 8081 # 服务端口
spring:
security:
user:
name: zhangsan # 定义用户名
password: 123456 # 定义用户密码
roles: # 定义用户角色
- ADMIN
- WORKER
2.3 编写测试业务代码
@RestController
@RequestMapping("/test")
public class HelloController {
@GetMapping("/hello")
private String hello() {
return "Hello SpringSecurity!!!";
}
}
2.4 体验SpringSecurity
启动应用程序
尝试访问 /test/hello
地址栏输入: http://localhost:8081/test/hello
请求被重定向到: http://localhost:8081/login
当Springboot集成SpringSecurity后,应用中的资源已经被保护。
当未经过认证的Session访问应用资源时,默认跳转到登录页面,请求用户认证。
输入用户名 密码,这里的用户名密码是在配置文件中指定的。
SpringSecurity 默认配置下,实现了代码无入侵的资源保护。
当你未经过授权去访问资源时,SpringSecurity会拦截请求,并引导用户到认证页面去完成认证。
认证完成后,SpringSecurity将会继续请求之前尝试访问的资源。
评论区