Spring Security框架默认的登录页如下图所示。

这个界面元素太少,况且不易去调整,也不满足日常的场景。所以,大多数情况下,我们需要自定义登录页。
其实,自定义登录页也非常简单,只需要一个登录页面、一个Controller、Spring Security配置稍微调整下,就可以了。
登录页面
我们采用Spring Security框架默认的用户名、密码参数名、filterProcessUrl等。
<form action="/login" method="post" th:action="@{/login}" th:method="post">
<div>
<input type="text" name="username" placeholder="用户名">
</div>
<div>
<input type="password" name="password" placeholder="密码">
</div>
<button type="submit">登录</button>
</form>
Controller
controller也比较简单。
@RequestMapping("/login")
public String login() {
return "login";
}
配置调整
只需在原来的配置基础上,加上 loginPage 设置项并放开权限即可。
http.formLogin().loginPage("/login").permitAll()
演示
启动工程,访问首页 http://localhost:8080/springsecuritylearning/index,系统跳转到了我们自定义的登录页。

输入用户名、密码后,正常展示首页。

源码
github
https://github.com/liuminglei/SpringSecurityLearning/tree/master/02
gitee
https://gitee.com/xbd521/SpringSecurityLearning/tree/master/02