对于最新的稳定版本,请使用 Spring Security 6.3.1! |
对于最新的稳定版本,请使用 Spring Security 6.3.1! |
本节介绍如何将 Spring Security 与 Spring Boot 一起使用的最低设置。
完整的应用程序可以在我们的示例存储库中找到。 为方便起见,您可以单击此处下载最小的 Spring Boot + Spring Security 应用程序。 |
完整的应用程序可以在我们的示例存储库中找到。 为方便起见,您可以单击此处下载最小的 Spring Boot + Spring Security 应用程序。 |
启动 Hello Spring Security 启动
您现在可以使用 Maven 插件的目标运行 Spring Boot 应用程序。
以下示例演示如何执行此操作(以及执行此操作的输出的开头):run
$ ./mvn spring-boot:run
...
INFO 23689 --- [ restartedMain] .s.s.UserDetailsServiceAutoConfiguration :
Using generated security password: 8e557245-73e2-4286-969a-ff57fe326336
...
Spring Boot 自动配置
Spring Boot 自动:
-
启用 Spring Security 的默认配置,该配置将 servlet 创建为名为 的 bean 。 此 Bean 负责应用程序中的所有安全性(保护应用程序 URL、验证提交的用户名和密码、重定向到登录表单等)。
Filter
springSecurityFilterChain
-
创建一个用户名为 的 Bean 和随机生成的密码,该密码将记录到控制台中。
UserDetailsService
user
-
为每个请求注册一个以 Servlet 容器命名的 bean。
Filter
springSecurityFilterChain
Spring Boot 配置不多,但它做了很多。 功能摘要如下:
-
要求经过身份验证的用户才能与应用程序进行任何交互
-
为您生成默认登录表单
-
让用户名和密码记录到控制台的用户使用基于表单的身份验证进行身份验证(在前面的示例中,密码为
user
8e557245-73e2-4286-969a-ff57fe326336
) -
使用 BCrypt 保护密码存储
-
允许用户注销
-
CSRF 攻击防护
-
会话固定保护
-
安全标头集成
-
安全请求的 HTTP 严格传输安全性
-
缓存控制(以后可由应用程序覆盖,以允许缓存静态资源)
-
X-Frame-Options 集成,有助于防止点击劫持
-
-
与以下 Servlet API 方法集成: