目 录CONTENT

文章目录

SpringBoot集成SpringSecurity

zhouzz
2024-09-02 / 0 评论 / 0 点赞 / 4 阅读 / 4733 字
温馨提示:
本文最后更新于 2024-09-23,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

1.简介

​ Spring Security 是 Spring 家族中的一个安全管理框架。相比与另外一个安全框架Shiro,它提供了更丰富的功能,社区资源也比Shiro丰富。

​ 一般来说中大型的项目都是使用SpringSecurity 来做安全框架。小项目有Shiro的比较多,因为相比与SpringSecurity,Shiro的上手更加的简单。

​ 一般Web应用的需要进行认证和授权。

​ 认证:验证当前访问系统的是不是本系统的用户,并且要确认具体是哪个用户

​ 授权:经过认证后判断当前用户是否有权限进行某个操作

​ 而认证和授权也是SpringSecurity作为安全框架的核心功能。

现如今,新项目的开发都采用的是SpringBoot+Vue前后端分离式开发,那么接下来就让我们来学习一下SpringSecurity前后端分离式项目搭建。

SpringSecurity的工作流程

20240922181759.png

所谓的 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

20240922183359.png

当Springboot集成SpringSecurity后,应用中的资源已经被保护。

当未经过认证的Session访问应用资源时,默认跳转到登录页面,请求用户认证。

输入用户名 密码,这里的用户名密码是在配置文件中指定的。

SpringSecurity 默认配置下,实现了代码无入侵的资源保护。

当你未经过授权去访问资源时,SpringSecurity会拦截请求,并引导用户到认证页面去完成认证。

认证完成后,SpringSecurity将会继续请求之前尝试访问的资源。

3.SpringSecurity适配前后分离项目

4.小结

0

评论区