fix:更正Spring MVC的名称。

This commit is contained in:
徐涛 2021-08-10 22:36:18 +08:00
parent ff3076e633
commit 92bea18975
2 changed files with 12 additions and 12 deletions

View File

@ -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`实例中。

View File

@ -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