Spring Security BadCredentialsException 为什么最终没有被抛出?

2019-07-13 17:32:24 +08:00
 exqlnet

我在自定义的 AuthenticationProvider 中抛出了 BadCredentialsException,它最终并没有抛出并返回 401HTTP 状态码,反而成功通过认证链( Authentication )抵达权限检验链( Authorization ),结果返回 403 状态码。请问是什么情况?具体的内容和代码可以看我在 stackoverflow 上的提问

https://stackoverflow.com/questions/57002484/why-badcredentialsexception-can-not-be-thrown-or-handled-in-my-customized-authen?noredirect=1#

感激不尽

5663 次点击
所在节点    Java
1 条回复
maowu
2019-07-14 08:52:45 +08:00
1. Filter 抛出的异常 ControllerAdvice 不会处理,因为请求还没到达 Controller
2. 你的问题在 TokenAuthenticationProvider 设个断点,跟着异常处理流程 debug 一下就知道了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/582685

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX