关于用户自定义登录失败后抛出UsernameNotFoundException的一个问题

来源:4-13 小结

TinyLeon

2018-05-05

老师好:

    在老师课程里的MyUserDetailsService继承了UserDetailsService,重写了loadUserByUsername()方法。该方法抛出UsernameNotFoundException异常。我用下面的方法,不能自定义UsernameNotFoundException的异常信息,不管怎么样,抛出的异常信息都是"Bad credentials"

throw new UsernameNotFoundException("用户不允许登录");

  然后我按照UsernameNotFoundException的逻辑,自定义了一个MyUsernameNotFoundException异常,在这个异常信息类里,也继承了AuthenticationException。然后我用下面的方法抛出:

throw new MyUsernameNotFoundException("用户不允许登录");

    在ImoocAuthenticationFailureHandler里果然收到了“用户不允许登录”这个提示,但是遗憾的是,console里面出现的异常信息,这样用户体验不太好。

   请问老师:

   1.为什么 throw new UsernameNotFoundException("用户不允许登录") 里面的String不能传递到ImoocAuthenticationFailureHandler,内容被替换为"Bad credentials",这个在哪里替换的

   2.自定义的MyUsernameNotFoundException逻辑与UsernameNotFoundException完全一致,只是名字不一样,为什么抛出后会在控制台里打印异常堆栈信息,而UsernameNotFoundException就没有打印呢?

  

  感谢老师!

写回答

1回答

TinyLeon

提问者

2018-05-05

已修复,感谢老师。不知道怎么把问题关了。

0
1
花开北海
怎么解决的??
2018-05-30
共1条回复

Spring Security技术栈开发企业级认证与授权

Spring Security技术栈,REST风格开发常见接口,独立开发认证授权模块保证REST服务安全

2662 学习 · 1561 问题

查看课程