Spring Security入门
Spring Security 是 Spring 家族中的一个安全管理框架,Spring Boot 对于 Spring Security 提供了 自动化配置方案,可以零配置使用 Spring Security
-
添加依赖,只要加入依赖,项目的所有接口都会被自动保护起来,访问系统会先需要登录认证
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
默认的用户名为user
,密码在控制台,每次启动项目都会变,对登录的用户名/密码进行配置,有三种不同的方式:
-
在 application.properties 中进行配置
-
通过 Java 代码配置在内存中
-
通过 Java 从数据库中加载
-
用户名密码配置
-
在 application.properties 中配置
spring.security.user.name=hjy
spring.security.user.password=123456配置完成后,重启项目,就可以使用这里配置的用户名/密码登录了
-
在Java代码中配置
创建一个 Spring Security 的配置类,继承自 WebSecurityConfigurerAdapter 类,使用BCryptPasswordEncoder 进行密码加密(从 Spring5 开始,强制要求密码要加密)
Spring Security 中提供了 BCryptPasswordEncoder 密码编码工具,可以非常方便的实现密码的加密加盐,相同明文加密出来的结果总是不同,这样就不需要用户去额外保存 盐的字段了
-
登录配置
对于登录接口,登录成功后的响应,登录失败后的响应,我们都可以在 WebSecurityConfigurerAdapter 的实现类中进行配置
-