五、自定义登录逻辑
当进行自定义登录逻辑时需要用到之前讲解的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控制器方法是不执行的,所以可以删除了。