我正在构建一个AngularJS应用程序,它将与在不同主机上运行的RESTful服务进行交互。由于请求是跨越来源, CORS 正在进入图片。由于请求将JSON指定为预期内容类型,因此浏览器会触发 CORS预检请求。到目前为止直截了当。
根据W3规范,CORS预检请求应排除用户凭据。 RESTful Web服务应用程序受SiteMinder保护,SiteMinder配置为基于URL 强制执行身份验证。 Web服务依赖于SiteMinder进行身份验证并仅处理授权。这就是无法删除SiteMinder的原因。因此,CORS预检请求将返回 HTTP 401 Authorization Required 。它可以防止浏览器向前推进实际请求。
有关如何在受SiteMinder保护的环境中启用CORS预检请求的任何想法?非常感谢提前!
答案 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。
++++++++++++++++++++++++