我们能从一些人身上看到人性光辉, 然而,不幸的是,这种难能可贵的光辉正在变得越来越稀有。
有没有一种可能,我从来没有离开过那个村庄,只是放学后玩累了,在长椅上睡着了,现在的一切都是在梦里。
也许那是一个盛夏,知了在树上不知疲倦的叫着。奶奶坐我的旁边,轻轻的给我摇着蒲扇。
如果这种可能是真的,那么我的那个村庄在哪儿呢。
Spring Security API 封装了一套认证接口,如果没有特殊要求,只需要建一个表,写几行代码就完成了一个登录验证。
这是一个简单的例子,在 Spring Boot 中使用 Spring Security API 联合 SQL Server 验证用户登录。
使用 Thymeleaf 模板创建一个自定义登录页面 /login
除 /hash/* 以外的页面都需要受登录保护
使用 SQL Server 数据库中 Users 表里的用户登录
在 SQL Server 中创建一个表。
CREATE TABLE [dbo].[Users] (
[id] int IDENTITY(1,1) NOT NULL,
[username] varchar(30) NOT NULL,
[password] varchar(60) NOT NULL,
[role] varchar(45) NOT NULL,
[enabled] int DEFAULT NULL NULL
)
password
长度是 varchar(60) 是因为打算直接使用 Spring 中封装好的 BCrypt
哈希算法,这个算法 Hash 过的密码长度为 60 个字符。
添加一条数据
insert into users(username,password,role,enabled) values ('hooyes','$2a$10$TLMsNPhpOyLKYlkMVdo0SOs/7JQ2lp0KJu2XNsCm8QPzlqaTk7fCq','ROLE_USER',1)
以上数据表示用户名是 hooyes
密码是 hooyes.net
如何生成密码,下文会提到,其实就是 new BCryptPasswordEncoder().encode(password)