当前位置 : 主页 > 网络编程 > 其它编程 >

springsecurity中详细显示登录错误的提示信息

来源:互联网 收集:自由互联 发布时间:2023-07-02
在springsecurity中默认情况下不管你是用户名不存在密码错误SS都会报出Badcredentials异常信 在spring security中默认情况下不管你是用户名不存在密码错误SS都会报出Bad credentials异常信息而不现
在springsecurity中默认情况下不管你是用户名不存在密码错误SS都会报出Badcredentials异常信 在spring security中默认情况下不管你是用户名不存在密码错误SS都会报出Bad credentials异常信息而不现实具体的错误,原因是在DaoAuthenticationProvider的父类AbstractUserDetailsAuthenticationProvider的authenticate方法中

try { user retrieveUser(username, (UsernamePasswordAuthenticationToken) authentication); } catch (UsernameNotFoundException notFound) { logger.debug("User " username " not found"); if (hideUserNotFoundExceptions) { throw new BadCredentialsException(messages.getMessage( "AbstractUserDetailsAuthenticationProvider.badCredentials", "Bad credentials")); } else { throw notFound; } } 这里有个hideUserNotFoundExceptions属性默认是true。这样的话即便我们抛出了UsernameNotFoundException它也会转为BadCredentialsException所以我们需要将hideUserNotFoundExceptions属性的值设为false 最后必须修改security的配置文件如下

而在前端则可以通过 ${sessionScope.SPRING_SECURITY_LAST_EXCEPTION.message} 显示错误

上一篇:PL/SQL程序结构概要
下一篇:没有了
网友评论