【发布时间】:2012-11-27 10:35:28
【问题描述】:
我的应用程序需要访问在不同服务器上运行的 RESTful Web 服务。此 Web 服务使用 CAS 身份验证,当通过浏览器使用它时,如果用户尚未通过身份验证,它将重定向到 CAS 登录。没有通过 CAS 实际登录的方法。我的应用程序也使用 CAS,因此用户将通过身份验证
我想通过 JQuery/Ajax 访问它,但服务器似乎没有为 JSONP 配置,我理解这是必不可少的,因为跨域问题。
现在,我可以改为通过我的服务器发出 Ajax 请求,这就引出了我的问题:没有可供我的服务器调用的 CAS 登录方法,我如何“告诉”Web 服务用户已通过身份验证?
所以我想首先我想弄清楚浏览器、CAS 和 RESTful 服务之间发生了什么,以及如何在没有任何显式传递凭据的情况下处理授权。其次,我想看看在从我的服务器调用服务时如何/是否可以复制它 - 它与来自浏览器的请求不同,因此没有 CAS 授权令牌,但我没有看看如何获得或提供。
【问题讨论】:
-
当您说“...通过我的服务器发出 Ajax 请求...”您的意思是通过 HTTP 请求向 Web 服务发出请求吗?了解您的服务器应用程序是用哪种语言编写的可能也很有用。
-
嗨 Paul- 是的,我的意思是 HTTP 请求,服务器是 Java。
-
所以现在看起来 CAS 框架支持某种应用程序范围的身份验证,我认为这意味着我应该能够让我的 servlet 生成 HttpRequest 并对其进行身份验证。虽然这不起作用,我认为我需要对 org.jasig.cas.client 做一些事情,但我不太明白这应该是什么。任何建议仍不胜感激!
标签: rest authentication service web cas