概述
在这篇文章中,我们将了解如何向Spring Boot项目添加安全配置。我们将学习Spring Security的默认行为是如何工作的,然后我们将提供我们自己的配置。
术语
在进入实施部分之前,最好先了解一下这些常用的术语。
- 认证
认证是验证你的登录凭证的过程。它是验证你是谁。
- 授权
授权是认证之后的下一个步骤。它是验证你是否可以访问某些东西的过程。基本上它意味着你被允许做什么。
- 授予权限
在Spring Security中,我们可以把每个GrantedAuthority看成是一个单独的权限。例子包括READ_AUTHORITY、WRITE_PRIVILEGE等。正如你所看到的,我们也可以通过使用特权来指代权限的概念。
Spring Boot安全的默认行为
为了给你的Spring Boot应用程序添加安全性,你需要添加安全启动器依赖,如下所示。
在Spring Security中,有一些预定义的属性。
如果你不使用预定义属性_spring.security.user.password_ 配置密码,并启动应用程序,你会发现默认密码是随机生成的,并打印在控制台日志中。
Using generated security password: 5c927b54-1a7e-4291-9dff-03965e0dca98
Spring Security的默认行为为你的项目做了以下事情。
- 为URL添加强制认证
- 添加登录表单
- 处理登录错误
禁用自动配置
为了摒弃安全自动配置并添加我们自己的配置,我们需要排除_SecurityAutoConfiguration_类。
这可以通过一个简单的排除法来完成
或者通过在_application.properties_文件中添加一些配置。
提供自定义配置
当我们禁用安全自动配置时,我们需要提供我们自己的配置。让我们试着理解下面的代码段中发生了什么。@EnableWebSecurity允许spring找到并自动将该类应用于全局网络安全。WebSecurityConfigurerAdapter允许配置影响所有网络安全的东西。我们必须使用AuthenticationManagerBuilder,这样我们就可以对其进行配置。我们已经将其配置为内存认证。然后我们需要设置用户、密码和角色。这里我们配置了两个用户,一个是用户,另一个是管理员。
当我们设置密码时,重要的是使用散列密码。为了做到这一点,我们创建一个PasswordEncoder类型的bean。然后,我们必须在我们的应用程序中配置授权。当我们扩展WebSecurityConfigurerAdapter时,它重写了它的几个方法来设置Web安全配置的一些细节。configure(HttpSecurity)方法定义了哪些URL路径应该被保护,哪些不应该。
我想这就是我这篇文章的总结,它包含了Spring Boot安全的主要概念。要了解更多关于Spring Boot安全的信息,请查阅 s设置安全. 有很多解决方案,如Baeldung和LinkedIn学习,可以根据自己的水平来学习。我鼓励你去看看他们,因为确保你的应用程序的安全是最重要的事情之一。干杯!!!。
Spring Boot安全指南》最初发表在《Dev Genius》上,人们在Medium上通过强调和回应这个故事继续对话。