【问题标题】:Can Azure Application gateway cookie be replaced by application cookie?Azure 应用程序网关 cookie 是否可以替换为应用程序 cookie?
【发布时间】:2023-03-11 15:26:02
【问题描述】:

我有一个带有多个实例的 VMSS,其中部署了一个 java 应用程序。 VMSS 连接到应用程序网关。网关启用了会话亲和性。

是否可以覆盖或告诉网关使用 java 应用程序创建的 cookie?

我之所以需要它是因为,当请求到达具有多个参数的应用程序网关时,处理是由 java 应用程序完成的。此处理创建一个唯一的 ID 记录,用户被重定向到该记录。

当这个重定向请求到达应用程序网关时,网关将请求发送到另一个没有唯一ID的服务器,结果抛出错误。

我的想法:当请求到达网关并到达java程序时,我创建一个包含一些信息的cookie。 cookie 被发回,当请求被重定向时,我使用相同的 cookie 来识别服务器。

这可能吗?

我可以使用应用程序 cookie 并告诉应用程序网关使用该 cookie 来识别服务器吗?

【问题讨论】:

    标签: java azure session-cookies azure-application-gateway azure-vm-scale-set


    【解决方案1】:

    这也许可以告诉网关使用应用程序创建的 cookie 来重写 HTTP 标头。

    取自rewriting HTTP headers with Application Gateway。 HTTP 标头重写支持仅适用于 Standard_V2 和 WAF_v2 SKU。

    应用程序网关支持多个server variables,可帮助您存储有关请求和响应的其他信息。您可以重写请求和响应中的所有标头,但 Host、Connection 和 Upgrade 标头除外。您还可以使用应用程序网关创建自定义标头并将它们添加到通过它路由的请求和响应中。

    不过也有一些limitations

    如果响应有多个同名标头,则 重写这些标头之一的值将导致删除 响应中的其他标头。这通常会发生在 Set-Cookie 标头,因为您可以拥有多个 Set-Cookie 标头 在回应中。一种这样的情况是当您使用应用服务时 具有应用程序网关并已配置基于 cookie 的会话 应用程序网关上的亲和力。在这种情况下,响应将 包含 2 个 Set-Cookie 标头:一个由应用服务使用,即 设置 Cookie: ARRAffinity=ba127f1caf6ac822b2347cc18bba0364d699ca1ad44d20e0ec01ea80cda2a735;Path=/;HttpOnly;Domain=sitename.azurewebsites.net 另一个用于应用程序网关关联,即 Set-Cookie: ApplicationGatewayAffinity=c1a2bd51lfd396387f96bl9cc3d2c516;路径=/。 在这种情况下重写 Set-Cookie 标头之一可能会导致 从响应中删除另一个 Set-Cookie 标头。

    根据我的理解,您可以重写其中一个 set-cookie 标头以保持 Set-Cookie 标头相同。

    【讨论】:

      猜你喜欢
      • 2015-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-15
      • 2017-06-12
      • 2012-02-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多