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