我有什么:
- 我有sprint Boot API,和Angular 的应用程序在diferents域(不子域),并不是一个选项改变它.
*我只允许cors访问我的angular domain应用。
我需要什么:
- 我需要使用Csrf cookie与samesite=无允许从Chrome浏览器的身份验证,因为它不工作,我认为是因为默认的samesite=宽松的默认策略.在火狐工作正常.
我尝试了什么
- 我已经更新到spring 2.7尝试使用
server.servlet.session.cookie.same-site= none
属性,但它只影响JSESSIONID cookie。它不适用于csrf cookie。 - 我已经更新到spring 3尝试使用CookieCsrfTokenRepository.setCookieCustomizer()方法,我找不到关于我可以使用此方法配置cookie的信息
- 我尝试实现OncePerRequestFilter并修改头
Set-cookie
,但随后,我丢失了JSESSIONID cookie的set-cookie头。
<$我能做些什么来获得csrf cookie samesite=none?<$有没有其他的解决方案来运行csrf身份验证在Chrome与diferents域?
Thanks in advance
1条答案
按热度按时间beq87vna1#
我找到解决办法了
1.首先,使用带有
Consumer<ResponseCookie.ResponseCookieBuilder>
的setCookieCustomizer
metohd创建自定义CookieCsrfTokenRepository
字符串
1.适用于
filterChain(HttpSecurity http)
方法:型