
Spring Security 教程(08)、Java配置和表单登录
Diebug自定义登录页面



Spring Security 默认提供 /login 页面,但你通常需要自定义登录页以匹配自己的设计风格。
1 | http.formLogin() |
登录表单示例
1 | <form th:action="@{/authenticate}" method="POST"> |
登录处理流程
- 用户访问受保护资源,被重定向到
/custom-login - 用户输入用户名密码,提交到
/authenticate UsernamePasswordAuthenticationFilter拦截请求,提取凭据AuthenticationManager验证凭据(查询 UserDetailsService)- 验证成功:创建 Authentication 对象,存入 SecurityContext,重定向到
/dashboard - 验证失败:重定向到
/login?error
记住我功能
1 | http.rememberMe() |
“记住我”功能通过 Cookie 实现。用户登录后,服务器生成一个加密的 Token 存入 Cookie。下次访问时,服务器验证 Token 自动完成认证,无需再次输入密码。
安全提醒
loginProcessingUrl的 URL 必须与表单的action属性一致- 登录页和登录处理 URL 必须配置
permitAll(),否则会导致循环重定向 key应该是足够长的随机字符串,防止 Token 被伪造- Token 有效期不宜过长,生产环境建议不超过 7 天
喜欢这篇文章的人也看了
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果