恢复HTTP POST的最佳方法是什么?

时间:2013-11-09 18:45:09

标签: javascript authentication web-applications oauth-2.0 saml-2.0

我正在尝试处理以下情况,我是网络应用程序世界的新手所以请原谅我的无知(如果有的话):

假设/限制条件:

  1. 我无法控制任何网络应用程序代码库。
  2. 正在http代理级别处理身份验证。
  3. 情景:

    1. 用户已使用SAML对网络应用进行了身份验证,并且已经访问了网络应用程序很长一段时间。
    2. 他的身份验证令牌(或cookie)过期。
    3. 他提交表格(HTTP POST)。
    4. 服务器需要再次执行身份验证工作流,这需要HTTP重定向。
    5. 现在,要求是在完成身份验证工作流程后,以某种方式为用户自动重新提交原始HTTP POST。我能想到的几个选项是:

      1. 使用javascript注入将POST状态存储在浏览器的sessionStorage中,并在完成auth工作流后重新执行操作。但我无法想象如果使用XMLHttpRequest ???
      2. 完成原始POST,这将如何工作
      3. 在服务器(或代理)端存储POST状态,并执行内部rePOST并将结果返回给浏览器。
      4. 还有其他选择吗???如果我们能够避免在服务器端保存状态,那就太棒了。人们通常如何处理这种情况?

        TIA,

        praddy

1 个答案:

答案 0 :(得分:0)

通常第二种方法已经实施。

您将请求发送到运行应用程序的服务器,它会保留POST数据(实际上再次执行身份验证),发送您进行身份验证,重定向您并再次POST数据。此功能可能已存在于您的身份验证基础结构中,只需要启用,但这当然取决于您正在运行的内容。

此功能有时也被称为“POST数据保存”。