我向 UAA 发送的 post 请求缺少 CSRF 值,即 X-Uaa-Csrf=2QytIy。这是登录 Cloud Foundry UAA 所必需的。这个问题是由于在 haproxy 中完成了互联网域名/私有域名映射。
获取/登录请求响应具有 X-Uaa-Csrf 令牌,并且我想对我的帖子请求使用相同的令牌。
我必须在 cookies 部分添加 X-Uaa-Csrf=2QytIy。是否可以从 Get 请求中捕获 X-Uaa-Csrf 令牌并将其添加到 Post 请求中
登录获取请求响应如下所示
...{...GHTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-XSS-Protection: 1; mode=block
X-Frame-Options: DENY
X-Content-Type-Options: nosniff
Set-Cookie: X-Uaa-Csrf=mfDZv6; Expires=Wed, 20-Apr-2016 17:49:28 GMT; HttpOnly
Content-Type: text/html;charset=ISO-8859-1
Content-Language: en-US
Content-Length: 2307
Date: Wed, 20 Apr 2016 17:44:28 GMT
Connection: close
我想使用 haproxy 将 X-Uaa-Csrf=mfDZv6 添加到我的帖子请求 Cookies 部分
有可能做到这一点吗
更新:
我尝试过,但没有成功
stick-table type string len 32 1 expire 5m
stick store-response set-cookie(X-Uaa-Csrf)
stick store-request cookie(X-Uaa-Csrf)
就我而言,我们有两个 haproxy
1.内部 haproxy (Cloud Foundry)
2.外部 Haproxy (haproxy-1.5.4-2.el7.x86_64.rpm)
我仅在内部 haproxy 中进行了更改。刚才我尝试了这个,但没有成功
rspirep ^(Set-Cookie:.*)\ Domain=uaa.devtest22.io(.*) \1\ Domain=Internet-devtest22.cisco.com\2 if hdr_set_cookie_domain
uaa.devtest22.io 是私有域名
Internet-devtest22.cisco.com 互联网域名