【发布时间】:2016-01-21 10:24:56
【问题描述】:
通常,当一个页面离开到会话到期并且我尝试提交一个 POST 操作时,Spring Security 生成的 CSRF 令牌将与服务器的预期值不匹配。在这种情况下,错误是预期的结果。
但是,我总是收到非常难看的默认 Tomcat 403 错误。这是由安全过滤器抛出的403错误引起的。
但是,我想拦截特定的 CSRF 错误以执行自定义操作。即,以下将不起作用,因为错误比 MVC 管道更早抛出
@ExceptionHandler(CsrfException.class)
public String exception(CsrfException ex)
{
log.error(ex.getMessage(), ex);
return "redirect:/index.jsp";
}
重定向到索引页面(或其他)似乎是一个不错的解决方案。如何拦截错误的 CSRF 令牌错误并自定义服务器响应?
【问题讨论】:
-
500 通常表示未捕获的异常。你能找到堆栈跟踪吗?
-
对不起,我的意思是 403。我将处理当前的答案
标签: spring spring-security csrf-protection