如何在Spring Controller中获取_csrf对象(?!)?我已经配置了Spring Security,可以在jsp文件中获得$ {_ csrf}请求属性。
我试过了:

CsrfToken _csrf = (CsrfToken) session.getAttribute("CsrfToken");
CsrfToken _csrf = (CsrfToken) session.getAttribute("_csrf");

结果为空;

提前致谢!

最佳答案

在调试中,我看到了一个带有键“org.springframework.security.web.csrf.HttpSessionCsrfTokenRepository.CSRF_TOKEN”的会话属性。我查看了HttpSessionCsrfTokenRepository类。它具有一种从传入的HttpServletRequest对象加​​载令牌的方法。

最后,这对我有用:

CsrfToken token = new HttpSessionCsrfTokenRepository().loadToken(request);

如果有人向我解释了它的工作原理,我将不胜感激。

08-26 10:50