gpt4 book ai didi

spring-mvc - 配置 AccessDeniedHandler 以处理无效的 csrf token

转载 作者:行者123 更新时间:2023-12-04 01:11:18 32 4
gpt4 key购买 nike

我引用了有关配置 CSRF 保护的 Spring Security 文档:

Instead by default Spring Security’s CSRF protection will produce an HTTP 403 access denied. This can be customized by configuring the AccessDeniedHandler to process InvalidCsrfTokenException differently.



看这里: http://docs.spring.io/spring-security/site/docs/3.2.6.RELEASE/reference/htmlsingle/#csrf-configure

我不确定如何配置我的处理程序以处理无效的 CSRF token 。
private AccessDeniedHandler accessDeniedHandler() {
return new AccessDeniedHandler() {
@Override
public void handle(HttpServletRequest request, HttpServletResponse response, AccessDeniedException accessDeniedException) throws IOException, ServletException {
// TODO: deal with InvalidCsrfTokenException
response.setStatus(HttpStatus.FORBIDDEN.value());
}
};
}

我在客户端使用 angular 与我在 REST 中的 Spring 应用程序进行通信。

处理陈旧/无效 CSRF token 的最佳方法是什么?

我应该使用 AccessDeniedHandler为了添加一个自定义的 http 响应 header ,指示 CSRF token 无效并在客户端处理它?但是我怎样才能从 JS 请求一个新的 CSRF token 呢?

有没有另一种更好的方法来进行,我该怎么做

process the InvalidCsrfTokenException differently



?

最佳答案

如果您提供详细的错误消息,请使用 AccessDeniedHandler .处理程序管理 InvalidCsrfTokenExceptionMissingCsrfTokenException
为什么要生成 csrf token ?每次您请求站点时,spring 都会为您生成它。但是,如果您真的想实现自己的 csrf 策略,请查看 CsrfAuthenticationStrategy

Spring 每次都在 SessionManagementFilter 中调用这个类

关于spring-mvc - 配置 AccessDeniedHandler 以处理无效的 csrf token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29123858/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com