五、自定义登录逻辑
当进行自定义登录逻辑时需要用到之前讲解的UserDetailsService和PasswordEncoder。但是Spring Security要求:当进行自定义登录逻辑时容器内必须有PasswordEncoder实例。所以不能直接new对象。
1.编写配置类
新建类com.msb.config.SecurityConfig 编写下面内容
2.自定义逻辑
在Spring Security中实现UserDetailService就表示为用户详情服务。在这个类中编写用户认证逻辑。
3.查看效果
重启项目后,在浏览器中输入账号:admin,密码:123。后可以正确进入到login.html页面。
六、自定义登录页面
虽然Spring Security给我们提供了登录页面,但是对于实际项目中,大多喜欢使用自己的登录页面。所以Spring Security中不仅仅提供了登录页面,还支持用户自定义登录页面。实现过程也比较简单,只需要修改配置类即可。
1.编写登录页面
别写登录页面,登录页面中
的action不编写对应控制器也可以。
2.修改配置类
修改配置类中主要是设置哪个页面是登录页面。配置类需要继承WebSecurityConfigurerAdapter,并重写configure方法。
successForwardUrl()登录成功后跳转地址
loginPage() 登录页面
loginProcessingUrl 登录页面表单提交地址,此地址可以不真实存在。
antMatchers():匹配内容
permitAll():允许
3.编写控制器
编写控制器,当用户登录成功后跳转toMain控制器。编写完成控制器后编写main.html。页面中随意写上一句话表示main.html页面内容即可。而之前的/login控制器方法是不执行的,所以可以删除了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了