fix:更正Spring MVC的名称。
This commit is contained in:
parent
ff3076e633
commit
92bea18975
|
@ -17,7 +17,7 @@ Spring Security 是 Spring 框架中的安全框架,整个 Spring Security 在
|
||||||
|
|
||||||
1. {% post_link spring-security-basic %}
|
1. {% post_link spring-security-basic %}
|
||||||
1. {% post_link spring-security-webmvc %}
|
1. {% post_link spring-security-webmvc %}
|
||||||
1. 在Spring WebFlux中的配置Spring Security
|
1. {% post_link spring-security-webflux %}
|
||||||
<!-- 1. {% post_link spring-security-webflux %} -->
|
<!-- 1. {% post_link spring-security-webflux %} -->
|
||||||
|
|
||||||
## 基础组成
|
## 基础组成
|
||||||
|
@ -55,7 +55,7 @@ Spring Security 是 Spring 框架中的安全框架,整个 Spring Security 在
|
||||||
`AuthenticationManager`在Spring Security中定义了如何执行用户身份验证,经过`AuthenticationManager`的执行以后,Spring Security即可以向`SecurityContextHolder`中写入被返回的验证信息。
|
`AuthenticationManager`在Spring Security中定义了如何执行用户身份验证,经过`AuthenticationManager`的执行以后,Spring Security即可以向`SecurityContextHolder`中写入被返回的验证信息。
|
||||||
|
|
||||||
!!! note ""
|
!!! note ""
|
||||||
`AuthenticationManager`通常会被应用成一个Servlet Filter,而这也是Spring Web MVC基于Servlet的处理流程。
|
`AuthenticationManager`通常会被应用成一个Servlet Filter,而这也是Spring MVC基于Servlet的处理流程。
|
||||||
|
|
||||||
由于`AuthenticationManager`只是一个接口,所以在实际使用时通常都使用`ProviderManager`类来实现其所定义的功能。常用的基于`AuthenticationManager`接口的类结构图如下。
|
由于`AuthenticationManager`只是一个接口,所以在实际使用时通常都使用`ProviderManager`类来实现其所定义的功能。常用的基于`AuthenticationManager`接口的类结构图如下。
|
||||||
|
|
||||||
|
@ -122,13 +122,13 @@ Spring Security 是 Spring 框架中的安全框架,整个 Spring Security 在
|
||||||
|
|
||||||
`BearerTokenAuthenticaitonFilter`的主要功能就是解析HTTP请求头中的`Authorization`,并将其中所携带的Token内容解析出来,形成一个`BearerTokenAuthenticationToken`实例,然后放入`AuthenticationManager`中进行认证,最后将认证结果放入`SecurityContextHolder`中。这里出现的`BearerTokenAuthenticationToken`也是一个`AbstractAuthenticationToken`抽象类的子类,其中也包含了认证所需要使用的用户名、认证资料等。
|
`BearerTokenAuthenticaitonFilter`的主要功能就是解析HTTP请求头中的`Authorization`,并将其中所携带的Token内容解析出来,形成一个`BearerTokenAuthenticationToken`实例,然后放入`AuthenticationManager`中进行认证,最后将认证结果放入`SecurityContextHolder`中。这里出现的`BearerTokenAuthenticationToken`也是一个`AbstractAuthenticationToken`抽象类的子类,其中也包含了认证所需要使用的用户名、认证资料等。
|
||||||
|
|
||||||
## Spring Web MVC中的认证流程
|
## Spring MVC中的认证流程
|
||||||
|
|
||||||
Spring Web MVC中主要是依赖于Servlet Filter组成的管道来对HTTP请求中携带的认证消息进行处理。下面借用一个伪数据流图来简单示意一下在一次Web请求中认证信息的处理过程。
|
Spring MVC中主要是依赖于Servlet Filter组成的管道来对HTTP请求中携带的认证消息进行处理。下面借用一个伪数据流图来简单示意一下在一次Web请求中认证信息的处理过程。
|
||||||
|
|
||||||
{% oss_image spring-security/spring-security-servlet-flow.svg "Spring Web MVC认证流程示意" %}
|
{% oss_image spring-security/spring-security-servlet-flow.svg "Spring MVC认证流程示意" %}
|
||||||
|
|
||||||
从这个图上可以看出来,在Spring Web MVC中,这些实现了`javax.servlet.Filter`的认证过滤器才是才是真正启动认证过程执行的起点。而我们在使用时大多只需要为它们提供它们所依赖的工作实例即可,例如`UserDetailsService`、`PasswordEncoder`等。
|
从这个图上可以看出来,在Spring MVC中,这些实现了`javax.servlet.Filter`的认证过滤器才是才是真正启动认证过程执行的起点。而我们在使用时大多只需要为它们提供它们所依赖的工作实例即可,例如`UserDetailsService`、`PasswordEncoder`等。
|
||||||
|
|
||||||
## Spring WebFlux中的认证流程
|
## Spring WebFlux中的认证流程
|
||||||
|
|
||||||
|
@ -136,4 +136,4 @@ Spring WebFlux中的依赖的是WebFilter组成的过滤器管道来对HTTP请
|
||||||
|
|
||||||
{% oss_image spring-security/spring-security-webflux-flow.svg "Spring WebFlux认证流程示意" %}
|
{% oss_image spring-security/spring-security-webflux-flow.svg "Spring WebFlux认证流程示意" %}
|
||||||
|
|
||||||
Spring WebFlux中的认证流程和参与组件要比Spring Web MVC少很多。从上图可以看出来,启动认证过程的起点依旧是实现了`WebFilter`接口的过滤器,但是不同的认证过滤器开始使用不同的`AuthenticationManager`实例。但是整个流程中不变的是,所有已经完成认证的结果还都将保存到`SecurityContext`实例中。
|
Spring WebFlux中的认证流程和参与组件要比Spring MVC少很多。从上图可以看出来,启动认证过程的起点依旧是实现了`WebFilter`接口的过滤器,但是不同的认证过滤器开始使用不同的`AuthenticationManager`实例。但是整个流程中不变的是,所有已经完成认证的结果还都将保存到`SecurityContext`实例中。
|
|
@ -1,10 +1,10 @@
|
||||||
---
|
---
|
||||||
title: 在Spring Web MVC中的配置Spring Security
|
title: 在Spring MVC中的配置Spring Security
|
||||||
tags:
|
tags:
|
||||||
- Java
|
- Java
|
||||||
- Spring
|
- Spring
|
||||||
- Spring Security
|
- Spring Security
|
||||||
- Spring Web MVC
|
- Spring MVC
|
||||||
- 安全认证
|
- 安全认证
|
||||||
categories:
|
categories:
|
||||||
- - JVM
|
- - JVM
|
||||||
|
@ -15,12 +15,12 @@ date: 2021-08-10 09:19:31
|
||||||
|
|
||||||
其实在Spring应用中使用Spring Security并不困难,最复杂的事情应该就是如何完成Spring Security的配置了。一旦Spring Security的配置成功完成,那么在Controller中就可以直接使用Spring Security提供的注解来使用Spring Security安全认证的结果。<!-- more -->
|
其实在Spring应用中使用Spring Security并不困难,最复杂的事情应该就是如何完成Spring Security的配置了。一旦Spring Security的配置成功完成,那么在Controller中就可以直接使用Spring Security提供的注解来使用Spring Security安全认证的结果。<!-- more -->
|
||||||
|
|
||||||
要完成Spring Web MVC应用中的Spring Security配置,需要至少完成以下两项内容:
|
要完成Spring MVC应用中的Spring Security配置,需要至少完成以下两项内容:
|
||||||
|
|
||||||
1. 完成设置HTTP的认证流程。
|
1. 完成设置HTTP的认证流程。
|
||||||
1. 完成认证所需要使用的类。
|
1. 完成认证所需要使用的类。
|
||||||
|
|
||||||
以下将从这两个方向分别说明如何在Spring Web MVC应用中配置Spring Security。
|
以下将从这两个方向分别说明如何在Spring MVC应用中配置Spring Security。
|
||||||
|
|
||||||
本篇关于 Spring Security 的文章主要由三部分组成,分别是:
|
本篇关于 Spring Security 的文章主要由三部分组成,分别是:
|
||||||
|
|
||||||
|
@ -30,7 +30,7 @@ date: 2021-08-10 09:19:31
|
||||||
|
|
||||||
## HttpSecurity
|
## HttpSecurity
|
||||||
|
|
||||||
要在一个Spring Web MVC应用中启用Spring Security,除了要在主类或者配置类上添加`@EnableWebSecurity`注解以外,更重要的是建立一个继承了`WebSecurityConfigurerAdapter`抽象类的配置类。这个配置类在我们的代码中最常见的形式就是下面这个样子。
|
要在一个Spring MVC应用中启用Spring Security,除了要在主类或者配置类上添加`@EnableWebSecurity`注解以外,更重要的是建立一个继承了`WebSecurityConfigurerAdapter`抽象类的配置类。这个配置类在我们的代码中最常见的形式就是下面这个样子。
|
||||||
|
|
||||||
```java
|
```java
|
||||||
@Configuration
|
@Configuration
|
||||||
|
|
Loading…
Reference in New Issue
Block a user