0

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

假设/约束:

  1. 我对网络应用程序代码库没有任何控制权。
  2. 身份验证在 http 代理级别处理。

设想:

  1. 用户已使用 SAML 对 Web 应用程序进行身份验证,并且已经访问该 Web 应用程序已有一段时间了。
  2. 他的身份验证令牌(或 cookie)过期。
  3. 他提交了一个表单(HTTP POST)。
  4. 服务器需要再次执行身份验证工作流,这需要 HTTP 重定向。

现在,要求是在完成身份验证工作流程后,以某种方式自动为用户重新提交原始 HTTP POST。我能想到的几个选择是:

  1. 使用 javascript 注入将 POST 状态存储在浏览器的 sessionStorage 中,并在完成身份验证工作流程后重新发布内容。但是我不知道如果原始 POST 是使用 XMLHttpRequest 完成的,这将如何工作???
  2. 在服务器(或代理)端存储 POST 状态并执行内部 rePOST 并将结果返回给浏览器。

还有其他选择吗???如果我们可以避免在服务器端保存状态,那就太好了。人们通常如何处理这种情况?

TIA,

普拉迪

4

1 回答 1

0

一般采用第二种方法。

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

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

于 2014-03-26T12:33:21.483 回答