老实说,不确定标题是否具有足够的描述性,所以这里是文字:
背景故事
我正在使用 Spring 框架重建一个 Web 应用程序。但是,旧应用程序在 PHP 上运行。
有一个宽限期,两个应用程序将同时运行,所以我将慢慢地将东西移到 Java 端并远离 PHP。
对我来说幸运的是,后端和前端之间的大部分通信都是通过 jQuery 和 AJAX 完成的。我已经设置了许多休息端点来处理阅读,我的列表中的下一个是保存。
问题
现在问题来了,我的 Spring 应用程序需要知道是否真的允许登录的用户保存数据。一位同事建议我使用 Jasig CAS SSO 作为身份验证,以便 php 和 java 应用程序都使用相同的登录名。
然而,这里也存在一个问题。我已经设置了 Spring Security 来使用 SSO,而且 PHP 知道如何处理它。但是,当我向 Spring 端发出 AJAX 请求时,问题就出现了。Spring security 检测到我没有登录(可能是因为没有发送 cookie),因此返回 302 以便我转到 CAS 登录页面。
我设法让所有东西都在同一个(不是向外的)域上运行:
cas.domain.local
app.domain.local (PHP)
tools.domain.local (Java)
请求来自 app.domain.local 到 tools.domain.local
我已经阅读了很多关于票据授予 cookie、票据授予票据、在我的 ajax 请求中发送会话信息以及称为身份验证代理的内容。
问题
通过 ajax 请求告诉 java 端我已经通过了 cas SSO 服务器的身份验证的最佳方法是什么?
请询问是否需要更多信息。
LEATH
慕虎7371278
相关分类