如何克服Ajax调用cas保护资源的跨域问题



当尝试对位于与CAS服务器不同的服务器上的受CAS保护的ssl加密资源进行AJAX调用时,发生重定向问题,可能的解决方案是什么?

CAS服务器用于身份验证,其行为与设计一致。这个问题似乎是ajax特有的。

这里有一个类似的问题,但是我们不能为CAS服务器和后端资源使用相同的域/服务器/端口。JASIG CAS邮件列表提到使用JSESSIONID。

另一种可能的方法是修改CAS Filter,将过期票据的默认行为更改为更健壮的行为。

你会用什么设计模式来克服这个问题?

我有两个建议:

  • 你可以设置一个代理脚本在同一域作为一个持有JS代码?这样,代理脚本将查询CAS并返回所需的结果
  • 可以启用JSONP吗?这种类型的请求不受安全策略的限制(但是任何人都可以使用该服务)

我从未听说过CAS,但一般来说:Javascript有一些称为"同源策略"的限制。可见的资源对Javascript也不会自动可见。您是否尝试使用反向代理访问资源以使其在同一域中可用?你也可以考虑将你的域名指向一个单独的web服务器,并在这里包括两个服务器作为反向代理(对于Tomacat, JKmounts是首选)。

最新更新