如何在SiteMinder保护环境中处理CORS预检请求?

时间:2015-02-09 19:46:10

标签: angularjs authentication cors siteminder preflight

我正在构建一个AngularJS应用程序,它将与在不同主机上运行的RESTful服务进行交互。由于请求是跨越来源, CORS 正在进入图片。由于请求将JSON指定为预期内容类型,因此浏览器会触发 CORS预检请求。到目前为止直截了当。

根据W3规范,CORS预检请求应排除用户凭据。 RESTful Web服务应用程序受SiteMinder保护,SiteMinder配置为基于URL 强制执行身份验证。 Web服务依赖于SiteMinder进行身份验证并仅处理授权。这就是无法删除SiteMinder的原因。因此,CORS预检请求将返回 HTTP 401 Authorization Required 。它可以防止浏览器向前推进实际请求。

有关如何在受SiteMinder保护的环境中启用CORS预检请求的任何想法?非常感谢提前!

1 个答案:

答案 0 :(得分:1)

您可以尝试通过在代理的ACO参数中设置autoauthorizeoptions = yes来忽略OPTIONS方法

++++++++++++++++++++++++++++ 允许自动访问使用OPTIONS方法的资源SiteMinder Web代理仍然会对尝试访问使用OPTIONS方法的资源的经过身份验证的用户提出质疑。使用OPTIONS方法的一些资源示例包括(但不一定限于)以下内容:

Microsoft®Word文档 Microsoft®Excel®电子表格文档出现此挑战是因为与资源关联的应用程序使用OPTIONS方法向Web服务器发送请求。由于此请求不包含SiteMinder cookie,因此Web代理会发出挑战。

防止用户受到这些资源的质疑

将以下参数的值设置为yes: autoauthorizeoptions 自动授权对使用HTTP OPTIONS方法的资源的任何请求。

如果将此参数的值设置为yes,还要将PersistentCookies参数的值设置为no。

限制:是,否

将PersistentCookies参数的值设置为no。

++++++++++++++++++++++++