1.SpringSecurity 框架简介
1.1概要:
Spring 是非常流行和成功的 Java 应用开发框架,Spring Security 正是 Spring 家族中的成员。Spring Security 基于 Spring 框架,提供了一套 Web 应用安全性的完整解决方案。
正如你可能知道的关于安全方面的两个主要区域是“认证”和“授权”(或者访问控制),一般来说,Web 应用的安全性包括**用户认证(Authentication)和用户授权(Authorization)**两个部分,这两点也是 Spring Security 重要核心功能。
(1)用户认证指的是:验证某个用户是否为系统中的合法主体,也就是说用户能否访问该系统。用户认证一般要求用户提供用户名和密码。系统通过校验用户名和密码来完成认
证过程。通俗点说就是系统认为用户是否能登录。
(2)用户授权指的是验证某个用户是否有权限执行某个操作。在一个系统中,不同用户所具有的权限是不同的。比如对一个文件来说,有的用户只能进行读取,而有的用户可以
进行修改。一般来说,系统会为不同的用户分配不同的角色,而每个角色则对应一系列的权限。通俗点讲就是系统判断用户是否有权限去做某些事情。
1.2 SpringSecurity 特点:
1.和 Spring 无缝整合。
2. 全面的权限控制。
3.专门为 Web 开发而设计。
<1>旧版本不能脱离 Web 环境使用。
<2>新版本对整个框架进行了分层抽取,分成了核心模块 和 Web 模块。单独引入核心模块就可以脱离 Web 环境。
4. 重量级。
2.入门案例
引入依赖在controller包下新建TestController类:
/**
* @author LZR
* @create 2021-11-09-19:37
*/
@RestController
@RequestMapping("/test")
public class TestController {
@GetMapping("add")
public String hello() {
return "hello security";
}
}
运行这个项目,访问localhost:8111/test
默认的用户名:user
密码在项目启动的时候在控制台会打印,注意每次启动的时候密码都回发生变化!
输入用户名,密码,这样表示可以访问了,404 表示我们没有这个控制器,但是我们可以访问了。
权限管理中的相关概念:
1.主体:
英文单词:principal
使用系统的用户或设备或从其他系统远程登录的用户等等。简单说就是谁使用系统谁就是主体。
2.认证:
英文单词:authentication
权限管理系统确认一个主体的身份,允许主体进入系统。简单说就是“主体”证明自己是谁。
笼统的认为就是以前所做的登录操作。
3.授权:
英文单词:authorization
将操作系统的“权力”“授予”“主体”,这样主体就具备了操作系统中特定功
能的能力。
所以简单来说,授权就是给用户分配权限。