2.1 创建一个项目

第一步创建SpringBoot工程

image.png

第二步引入相关依赖

  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-security</artifactId>
  4. </dependency>
  5. <dependency>
  6. <groupId>org.springframework.boot</groupId>
  7. <artifactId>spring-boot-starter-web</artifactId>
  8. </dependency>

第三步编写controller测试

  1. @RestController
  2. @RequestMapping("/test")
  3. public class TestController {
  4. @GetMapping(value = "/hello")
  5. public String add(){
  6. return "hello 权限";
  7. }
  8. }

2.2 Spring Security 基本原理:(过滤器链)

a:Spring Security :本质是一个 过滤器链。

b:从启动 可以获取到 过滤器链。有很多过滤器:hj1y2n0l.bmp

c:重点看 3 个 过滤器:
1.FilterSecurityInterceptor ed6achia.bmp

-2.ExceptionTranslationFilter:
qt3niprv.bmp

-3.对 /login 的 Post 请求,做拦截:
dyref27w.bmp

d:过滤器是如何进行加载的:

v563w2nv.bmp

2.3 UserDetailsService 接口讲解:(继承类,实现接口)

2.3.1接口介绍

1by0l612.bmp
gdx1plsl.bmpwoce6y5j.bmp

2.3.2:返回值 UserDetails:

1.这个类是 系统默认的用户主体:

9h9bvokp.bmp
sjdvwlly.bmp

2:方法参数 username:

mkevyk4d.bmp

3:使用方法:

h9kjol9w.bmp

2.4 PasswordEncoder 接口讲解

2.4.1 接口介绍

cx1rk8aq.bmp
c8ltkkao.bmp

2.4.2 讲解:

s12xal96.bmp
qlq1ljtp.bmp

2.4.3:举例:

w4vrqbze.bmp

jj6x6r8u.bmp