Spring Security 安全特性及 OAuth2 认证详解
1. 应用启动与用户注册登录
启动应用并打开 URL http://localhost:8080/user/register
,你会看到一个 HTML 页面。在该页面进行用户注册,注册成功后用户信息将被保存到数据库,同时页面会重定向到 /login
路径。使用新注册的凭证登录,应该能够成功登录。
2. 密码哈希处理
在将用户密码存储到数据库时,绝不能以明文形式存储,否则一旦数据库被黑客访问,用户密码将暴露无遗。Spring Security 允许使用行业标准的哈希算法对密码进行哈希处理后再存储到数据库,支持的算法包括 BCrypt、Scrypt、Pbkdf2 和 Argon 等。
BCrypt 是一种广泛使用的密码哈希算法,Spring Security 提供了 BCryptPasswordEncoder
类来实现 PasswordEncoder
接口。要使用这个密码编码器,需要在 WebSecurityConfig
类中创建一个 BCryptPasswordEncoder
类型的 Bean,代码如下:
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
定义好这个 Be