我们基于Angular的webapp与运行在不同域和上下文路径上的企业门户集成。我使用基于Spring Security的CSRF令牌来验证传入的请求。该应用程序在本地运行得非常好,但当我将其与门户集成时,所有post调用都失败了403,因为Angular无法读取XSRF令牌并将请求头中的X-XSRF-Token设置为API调用。经过调查,我发现门户和我们的应用程序的上下文路径不同,因此spring将Path、Expires和domain设置为Null的XSRF令牌。当spring创建XSRF令牌时,有没有办法将其设置为特定的cookie路径?
注意:我有一个替代的解决方案来创建过滤器,从请求头读取cookie,并在浏览器上按我想要的路径放置一个新cookie。我正在寻找配置级别的解决方案。
在配置安全(Java文件)中,可以添加:
private CsrfTokenRepository getCsrfTokenRepository() {
CookieCsrfTokenRepository tokenRepository = CookieCsrfTokenRepository.withHttpOnlyFalse();
tokenRepository.setCookiePath("/");
return tokenRepository;
}
并更改函数configure(…)
,行:
http。csrf()。csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse())。和()
具有
http.csrf(). csrfTokenRepository(this.getCsrfTokenRepository()).
这允许有一个解决方案来个性化cookie
XSRF-TOKEN
的路径。
我是一个Spring新手,正在制作一个Spring Web应用程序(不是Spring-boot,这有多大区别?)。部署在Tomcat7服务器上。 应用程序已启动并运行。我的问题是只能通过标准URL访问: http://mycompany.com:8081/cwing-0.0.3-snapshot/index.html 以下操作不起作用:http://mycompany.com:8081/cwing
我必须在tomcat 7中部署我的app.war文件。的。war文件名后面是它的版本号。这里我需要设置一个上下文路径,这样实际的url将只包含应用程序名(没有版本号)。 我的要求是,服务器中不应该有编辑.xml。 这是我的背景。xml如下所示。 context.xml放在war at /META-INF文件夹中。谁能告诉我我错在哪里?
有一个现有项目建立在Laravel 5.2.5和angularjs 1.7.4的基础上。这些页面不是由laravel生成的html页面,只是API。本项目应使用CSRF保护。 Angular文档说,$http服务将自动设置X-XSRF-TOKEN头。 执行XHR请求时,$http服务从cookie中读取令牌(默认情况下为XSRF-token),并将其设置为http头(默认情况下为X-XSRF-to
我有这样的语法: 问题是,我不能在polygonType、pointList规则(除了POLYGON_分隔符,我需要使用逗号)和boolOperator规则(使用逗号)中同时使用逗号标记不同的规则。换句话说,如果我们将POLYGON_分隔符改为逗号,并用这样的值测试这样的语法 我们将得到一个错误 如果有人能帮我理解这个问题,我会很高兴的。 另外,如果我们不改变当前语法,测试的值是
我想从Stormpath帖子中对JWT令牌和CSRF提出疑问,这些令牌和CSRF解释了将JWT存储在localStorage或Cookie中的优缺点。 [...] 如果您使用JS从cookie中读取值,这意味着您不能在cookie上设置Httponly标志,因此现在站点上的任何JS都可以读取它,从而使其与在localStorage中存储内容的安全级别完全相同。 我试图理解为什么他们建议将xsrfT
> 我正在使用OWASP CSRFGuard 3.0保护这些Restful服务不受CSRF的影响。 当使用简单的超文本标记语言访问相同的Rest服务时-AJAX请求-CSRF令牌正在设置,我得到了响应: 下面的代码工作正常。 角度代码(我对角度代码非常陌生) 有人能建议我如何设置角形标记吗。 引自: 在寻找此问题的解决方案时,请阅读以下语句。 跨站请求伪造(XSRF)保护XSRF是一种技术,通过这