Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring CRSF LazyCsrfTokenRepository是如何工作的?_Spring_Spring Security_Csrf_Csrf Protection - Fatal编程技术网

Spring CRSF LazyCsrfTokenRepository是如何工作的?

Spring CRSF LazyCsrfTokenRepository是如何工作的?,spring,spring-security,csrf,csrf-protection,Spring,Spring Security,Csrf,Csrf Protection,Java8-Spring4.3.x 在配置spring security和enable csrf功能时,我遇到了两个CsrfTokenRepository的实现,一个是懒惰的,另一个是基于Cokkie的 我知道,CookieCsrfTokenRepository使用将csrf令牌写入cookie并接受标头中的cookie值来验证有效请求 有人能帮助我理解LazyCsrfTokenRepository是如何工作的吗?来自: 一种CsrfTokenRepository,它延迟保存新的CsrfToke

Java8-Spring4.3.x

在配置spring security和enable csrf功能时,我遇到了两个
CsrfTokenRepository
的实现,一个是懒惰的,另一个是基于Cokkie的

我知道,
CookieCsrfTokenRepository
使用将csrf令牌写入cookie并接受标头中的cookie值来验证有效请求

有人能帮助我理解
LazyCsrfTokenRepository
是如何工作的吗?

来自:

一种
CsrfTokenRepository
,它延迟保存新的
CsrfToken
,直到 访问生成的
CsrfToken
的属性

为什么会这样?在Spring Security的早期版本中,
httpsessionsrftokenrepository
是默认设置。这样做的缺点是它总是创建令牌,触发会话创建,而不管是否使用令牌,这在某些应用程序中可能是浪费

另一方面,
LazyCsrfTokenRepository
仅创建包装器,并且仅当调用了
getToken()
时(例如在生成表单时)才创建实际的令牌。这避免了不必要的会话创建

LazyCsrfTokenRepository的一个问题是,在提交HTTP响应之前,实际的令牌生成仍然必须发生,否则会出现异常。如果您对此有问题,那么使用(仅)其他两种实现中的一种是最简单的