Spring CRSF LazyCsrfTokenRepository是如何工作的?
Java8-Spring4.3.x 在配置spring security和enable csrf功能时,我遇到了两个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
CsrfTokenRepository
的实现,一个是懒惰的,另一个是基于Cokkie的
我知道,CookieCsrfTokenRepository
使用将csrf令牌写入cookie并接受标头中的cookie值来验证有效请求
有人能帮助我理解LazyCsrfTokenRepository
是如何工作的吗?来自:
一种CsrfTokenRepository
,它延迟保存新的CsrfToken
,直到
访问生成的CsrfToken
的属性
为什么会这样?在Spring Security的早期版本中,httpsessionsrftokenrepository
是默认设置。这样做的缺点是它总是创建令牌,触发会话创建,而不管是否使用令牌,这在某些应用程序中可能是浪费
另一方面,LazyCsrfTokenRepository
仅创建包装器,并且仅当调用了getToken()
时(例如在生成表单时)才创建实际的令牌。这避免了不必要的会话创建
LazyCsrfTokenRepository的一个问题是,在提交HTTP响应之前,实际的令牌生成仍然必须发生,否则会出现异常。如果您对此有问题,那么使用(仅)其他两种实现中的一种是最简单的