【发布时间】:2018-06-03 02:33:49
【问题描述】:
我有自定义安全过滤器,用作额外的授权步骤。
过滤器检查用户是否可以被授权,如果用户不应该访问资源,则抛出异常。
问题在于,如果我从过滤器中抛出异常 - 它不会映射到正确的状态代码(在我的情况下,我需要 HTTP 403)。
我不能使用@ControllerAdvice 和@ExceptionHandler,因为security filters work before controller handling。
我想可能是我做错了,我不应该抛出异常,或者我应该抛出一个非常具体的异常。
问:有没有办法自动将过滤器中的异常映射到正确的状态代码?或者有没有办法实现无例外的过滤器?
注意:我也读过this post,但从调试中我看到我的过滤器链不包含ExceptionTranslationFilter。
【问题讨论】:
-
你抛出了什么异常?显示您的异常代码。
标签: java spring security spring-security http-status-codes