没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
Spring Boot安全管理
学习⽬标
了解Spring Security安全管理的功能
掌握Spring Security的安全配置
掌握Spring Security⾃定义⽤户认证的实现⽅法
掌握Spring Security⾃定义⽤户授权管理的实现⽅法
掌握如何使⽤Spring Security实现⻚⾯控制
实际开发中,⼀些应⽤通常要考虑到安全性问题。例如,对于⼀些重要的操作,有些请求需要⽤户验明身份后才可
以执⾏,还有⼀些请求需要⽤户具有特定权限才可以执⾏。这样做的意义,不仅可以⽤来保护项⽬安全,还可以控
制项⽬访问效果。本节将针对Spring Boot的安全管理进⾏详细讲解。
1 Spring Security介绍
针对项⽬的安全管理,Spring家族提供了安全框架Spring Security,它是⼀个基于Spring⽣态圈的,⽤于提供安全
访问控制解决⽅案的框架。为了⽅便Spring Boot项⽬的安全管理,Spring Boot对Spring Security安全框架进⾏了
整合⽀持,并提供了通⽤的⾃动化配置,从⽽实现了Spring Security安全框架中包含的多数安全管理功能,下⾯针
对常⻅的安全管理功能进⾏介绍,具体如下。
1.MVC Security是Spring Boot整合Spring MVC搭建Web应⽤的安全管理框架,也是开发中使⽤最多的⼀款安全功
能。
2.WebFlux Security是Spring Boot整合Spring WebFlux搭建Web应⽤的安全管理。虽然Spring WebFlux框架刚出
现不久、⽂档不够健全,但是它集成了其他安全功能的优点,后续有可能在Web开发中越来越流⾏。
3.OAuth2是⼤型项⽬的安全管理框架,可以实现第三⽅认证、单点登录等功能,但是⽬前Spring Boot版本还不⽀
持OAuth2安全管理框架。
4.Actuator Security⽤于对项⽬的⼀些运⾏环境提供安全监控,例如Health健康信息、Info运⾏信息等,它主要作
为系统指标供运维⼈员查看管理系统的运⾏情况。
上⾯介绍了Spring Boot整合Spring Security安全框架可以实现的⼀些安全管理功能。项⽬安全管理是⼀个很⼤的
话题,开发者可以根据实际项⽬需求,选择性地使⽤Spring Security安全框架中的功能。
2 Spring Security快速⼊⻔
Spring Security的安全管理有两个重要概念,分别是Authentication(认证)和Authorization(授权)。其中,认
证即确认⽤户是否登录,并对⽤户登录进⾏管控;授权即确定⽤户所拥有的功能权限,并对⽤户权限进⾏管控。
本章后续⼩节中对Spring Boot整合Spring Security进⾏安全管理的讲解和实现将围绕⽤户登录管理和访问权限控
制进⾏。下⾯我们先通过⼀个快速⼊⻔的案例来体验Spring Boot整合Spring Security实现的MVC Security安全管
理效果。
2.1 基础环境搭建
为了更好地使⽤Spring Boot整合实现MVC Security安全管理功能,实现Authentication和Authorization的功能,
后续我们将会结合⼀个访问电影列表和详情的案例进⾏演示说明,这⾥先对案例的基础环境进⾏搭建。
1.创建Spring Boot项⽬。使⽤Spring Initializr⽅式创建个名为chapter07的Spring Boot项⽬。
2.在Dependencies依赖选择中选择Web模块中的Spring Web依赖以及Template Engines模块中的Thymeleaf依
赖,然后根据提示完成项⽬创建。
3.引⼊⻚⾯html资源⽂件。在项⽬的resources下templates⽬录下,引⼊案例所需的静态⽂件。引⼊资源⽂件的项
⽬结构如下所示。
4.在项⽬的templates⽬录下的index.html⽂件是项⽬⾸⻚⾯,common和vip⽂件夹中分别对应的是普通⽤户和
VIP⽤户可访问的⻚⾯。⾸⻚index.html的内容⻅下。
<!DOCTYPE html>
5.编写Web控制层。在chapter07项⽬中创建名称为com.cy.controller的包,并在该包下创建⼀个⽤于⻚⾯请求处
理的FileController控制类。
6.⾄此,我们就使⽤Spring Boot整合Spring MVC框架实现了⼀个传统且简单的Web项⽬,⽬前项⽬没有引⼊任何
的安全管理依赖,也没有进⾏任何安全配置。项⽬启动成功后,访问http://localhost:8080地址进⼊⾸⻚,单击影
⽚进⼊详情⻚。
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>影视直播厅</title>
</head>
<body>
<h1 align="center">欢迎进⼊电影⽹站⾸⻚</h1>
<hr>
<div>
<h3>普通电影</h3>
<ul>
<li><a th:href="@{/detail/common/1}">当幸福来敲⻔</a></li>
<li><a th:href="@{/detail/common/2}">星际穿越</a></li>
</ul>
</div>
<div>
<h3>VIP专享</h3>
<ul>
<li><a th:href="@{/detail/vip/1}">⻄线⽆战事</a></li>
<li><a th:href="@{/detail/vip/2}">弗雷加德</a></li>
</ul>
</div>
</body>
</html>
package com.cy.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
@Controller
public class FileController {
@GetMapping("detail/{type}/{path}")
public String toDetail(@PathVariable("type") String type, @PathVariable("path")
String path) {
return "detail/" + type + "/" + path;
}
}
2.2 开启安全管理效果测试
在Spring Boot项⽬中开启Spring Security只需要引⼊spring-boot-starter-security启动器即可。下⾯我们在项⽬中
引⼊安全管理依赖,开启项⽬的安全管理并进⾏测试。
2.2.1 添加security启动器
在项⽬的pom.xml⽂件中引⼊Spring Security安全框架的依赖启动器spring-boot-starter-security。
上述引⼊的依赖spring-boot-starter-security就是Spring Boot整合Spring Security安全框架⽽提供的依赖启动器,
其版本号由Spring Boot进⾏统⼀管理。需要说明的是,⼀旦项⽬引⼊spring-boot-starter-security启动器,MVC
Security和WebFlux Security负责的安全功能都会⽴即⽣效(WebFlux Security⽣效的另⼀个前提是项⽬属于
WebFlux Web项⽬);对于OAuth2安全管理功能来说,则还需要额外引⼊⼀些其他安全依赖。
2.2.2 项⽬启动测试
1.启动chapter07项⽬进⾏效果测试,仔细查看控制台打印信息。
2.项⽬启动时会在控制台⾃动⽣成⼀个安全密码(security password这个密码在每次启动项⽬时都是随机⽣成
的)。通过在浏览器访问http://localhost:8080查看项⽬⾸⻚,效果如下图所示。
<!-- Spring Security提供的安全管理依赖启动器 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
剩余46页未读,继续阅读
资源评论
思绪千字难提
- 粉丝: 946
- 资源: 11
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功