本文基本上是引用大佬的文章:云烟成雨TD的博客-CSDN博客
只是加入一点点我自己的补充,没有大佬的专业,此文是我的笔记,方便我自己看,具体的还是可以去看大佬的
简介
Spring Security 是在Apache 2.0 许可下发布的开源软件,是一个安全框架。
Spring Security 基于 Servlet 过滤器、IoC 和 AOP,为 Web 请求和方法调用提供身份确认和授权处理,还提供与其他库的集成以简化其使用,避免了代码耦合,减少了大量重复代码工作。
Spring Security主要解决的就是认证和授权问题。
认证:Spring Security 为身份验证提供了全面的支持。身份验证是我们验证尝试访问特定资源的人的身份的方式。验证用户身份的常用方法是要求用户输入用户名和密码。一旦执行身份验证,我们就知道身份并可以执行授权。简单来说就是系统认为用户是否能登录
授权:用户授权指的是验证某个用户是否有权限执行某个操作。在一个系统中,不同用户所具有的权限是不同的。比如对一个文件来说,有的用户只能进行读取,而有的用户可以进行修改。一般来说,系统会为不同的用户分配不同的角色,而每个角色则对应一系列的权限。简单来说就是系统判断用户是否有权限去做某些事情。
项目源码模块
入门案例
1.创建一个springboot项目(我的jdk11,所以有一些和大佬不一样)
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
2.加入security的依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
3.创建一个测试TestController,访问localhost:8080/test
@RestController
public class TestController {
@GetMapping("/test")
public Object test() {
return "hello";
}
}
4.密码再启动服务的时候生成,用户名默认user
5. 可以再配置文件设置用户名和密码
spring:
application:
name: spring-boot-security-demo
security:
user:
name: admin
password: 123456
server
port:8080