Java 使用CAS保护rest api并对现有web应用程序使用单点登录

Java 使用CAS保护rest api并对现有web应用程序使用单点登录,java,spring-security,single-sign-on,cas,Java,Spring Security,Single Sign On,Cas,我有两个应用程序,一个标准java/SpringWeb应用程序和一个SpringRESTAPI(实际上,我有几个RESTAPI,其中一些非常适合在多个web应用程序之间共享,但这并没有改变示例)。当用户登录到webapp时,我希望他们能够无缝地对restapi进行ajax调用(GET和POST),restapi也受到CAS的保护 到目前为止,建议的方法似乎是在webapp中获取代理授权票证,并使用它生成可用于调用restapi的票证。然而,这意味着从客户端页面发出的ajax调用必须通过web应用

我有两个应用程序,一个标准java/SpringWeb应用程序和一个SpringRESTAPI(实际上,我有几个RESTAPI,其中一些非常适合在多个web应用程序之间共享,但这并没有改变示例)。当用户登录到webapp时,我希望他们能够无缝地对restapi进行ajax调用(GET和POST),restapi也受到CAS的保护

到目前为止,建议的方法似乎是在webapp中获取代理授权票证,并使用它生成可用于调用restapi的票证。然而,这意味着从客户端页面发出的ajax调用必须通过web应用程序进行代理

在没有代理的情况下,是否有其他方法可以通过webapp实现这一点?并不是所有的rest端点都是安全的(有些是公开的),我意识到我可以通过直接使用RESTAPI来减少代理的使用,但是,对于其他请求,必须加倍处理,感觉很沉重


我有一个想法,我不知道这是否可能,那就是不通过webapp代理,如果webapp可以将代理票证返回给客户端,然后ajax调用就可以用它来调用我了?似乎不建议这样做-

您找到解决方案了吗?我现在也需要同样的,用cas保护rest api,并从其他应用程序访问它。我已经实现了代理授权票证设置,作为rest调用失败时的备用方法。然而,大多数时候,调用工作正常,我从rest api加载一个安全的1像素图像,在用户登录到主应用程序后,这会启动对rest api的登录。我也遇到了同样的问题,我添加了jsessionId,从服务器返回到我的rest api请求(我把它放在cookie中),一切都很好!