为什么Spring Security看不见登录失败或者注销的提示

有很多人在利用Spring Security进行角色权限设计开发时,一般发现正常登录时没问题,但是注销、或者用户名时,直接就回到登录页面了,在登录页面上看不见任何提示信息,如“用户名/密码有误”或“注销成功”。

那么如何做呢?很简单。

1、自定义安全配置类(继承自WebSecurityConfigurerAdapter)
在我们的自定义安全配置类中,需要做必要的设置,如下图:

 

 上图中标红框的部分很关键:
failureUrl("/login?error=true"):这里面的“?error=true”很关键,如果没有这个,那么你登录失败的消息并不会被系统传递出去。
logout():一定要配置logout(),要不然系统在注销时,一是不能自动跳转到登录页面,二是系统也不会把注销的消息传递出去。

2、登录页面login.html
已经在Spring Security中的自定义配置类中做了如上的配置后,那么只需在页面中添加必要的判断信息就行了,见下图:

 

 

以上代码很简单,大家只需注意两点就行:

 

  •  在页面中通过xmlns属性定义Thymeleaf命名空间,同时定义Thymeleaf针对Spring Security的扩展,见上面的第一个红框; 
  • 通过Thymeleaf的语法,对接收到的消息进行判断,param.logout:判断是否是注销,param.error:判断是否登录失败,从而进行相应的显示就行了,见上面的第二个红框。

 

有关如何快速掌握Spring Boot进行web项目的开,可以参见视频:

51CTO:Spring Boot+Bootstrap开发小而完整web项目
腾讯课堂:Spring Boot+Bootstrap开发小而完整web项目 
CSDN学院:Spring Boot+Bootstrap开发小而完整web项目 
网易云课堂:Spring Boot+Bootstrap开发小而完整web项目 

 

posted @ 2020-06-23 17:15  江成军  阅读(956)  评论(0编辑  收藏  举报