lam*_*bad 5 azure session-cookies azure-application-gateway azure-vm-scale-set
我有一个包含多个实例的 VMSS,其中部署了一个 java 应用程序。VMSS 连接到应用程序网关。网关启用了会话亲和性。
是否可以覆盖或告诉网关使用由java应用程序创建的cookie?
我需要它的原因是,当请求到达具有多个参数的应用程序网关时,处理是由java应用程序完成的。此处理会创建用户重定向到的唯一 ID 记录。
当此重定向请求到达应用程序网关时,网关将请求发送到另一台不存在唯一 ID 的服务器,从而引发错误。
我的想法:当请求到达网关并到达java程序时,我创建一个包含一些信息的cookie。cookie 被发回,当请求重定向时,我使用相同的 cookie 来识别服务器。
这可能吗?
我可以使用应用程序 cookie 并告诉应用程序网关使用该 cookie 来识别服务器吗?
这可能会告诉网关使用应用程序创建的 cookie 并重写 HTTP 标头。
取自使用应用程序网关重写 HTTP 标头。HTTP 标头重写支持仅适用于 Standard_V2 和 WAF_v2 SKU。
应用程序网关支持多个服务器变量,可帮助您存储有关请求和响应的其他信息。您可以重写请求和响应中的所有标头(Host、Connection 和 Upgrade 标头除外)。您还可以使用应用程序网关创建自定义标头并将其添加到通过它路由的请求和响应中。
但是,也有一些限制:
如果响应具有多个同名标头,则重写其中一个标头的值将导致删除响应中的其他标头。Set-Cookie标头通常会发生这种情况 ,因为响应中可以有多个Set-Cookie标头。其中一种场景是,您将应用服务与应用程序网关一起使用,并且在应用程序网关上配置了基于 cookie 的会话关联性。在这种情况下,响应将包含 2 个 Set-Cookie 标头:一个由应用程序服务使用,即 Set-Cookie: ARRAffinity=ba127f1caf6ac822b2347cc18bba0364d699ca1ad44d20e0ec01ea80cda2a735;Path=/;HttpOnly;Domain=sitename.azurewebsites.net ,另一个用于应用程序网关关联性,即设置 Cookie:ApplicationGatewayAffinity=c1a2bd51lfd396387f96bl9cc3d2c516;路径=/。 在这种情况下重写 Set-Cookie 标头之一可能会导致从响应中删除另一个 Set-Cookie 标头。
根据我的理解,您可以重写 set-cookie 标头之一以保持Set-Cookie标头相同。
归档时间: |
|
查看次数: |
5506 次 |
最近记录: |