Java 跨多个子域的Web应用程序身份验证

Java 跨多个子域的Web应用程序身份验证,java,javascript,web-services,web,spring-security,Java,Javascript,Web Services,Web,Spring Security,我们正在使用SpringMVC和SpringSecurity开发一个基于web的应用程序 简单地说,这个应用程序将在主域foo.com上运行一个网站 foo.com将是一个漂亮的shell,它将从api.foo.com(我们的RESTAPI)获取数据(使用javascript) 将要开发的移动应用程序也将使用api.foo.com,并将OAuth 2用于其身份验证流 当用户登录foo.com时,将使用基于cookie的系统对其进行身份验证 我们想知道有什么好的解决方案可以让已经登录的用户以经过身

我们正在使用SpringMVC和SpringSecurity开发一个基于web的应用程序

简单地说,这个应用程序将在主域foo.com上运行一个网站

foo.com将是一个漂亮的shell,它将从api.foo.com(我们的RESTAPI)获取数据(使用javascript)

将要开发的移动应用程序也将使用api.foo.com,并将OAuth 2用于其身份验证流

当用户登录foo.com时,将使用基于cookie的系统对其进行身份验证

我们想知道有什么好的解决方案可以让已经登录的用户以经过身份验证的方式使用api.foo.com

cookie是否应该重复使用并随每个请求一起发送?我们已经了解到Cookie+COR在不同的域上不能很好地发挥作用,这对子域是真的吗

我们还一直在考虑让基于cookie的登录用户在幕后使用OAuth访问api.foo.com。
因此,当用户对自己进行身份验证时,将向javascript代码提供一个访问令牌,该代码将使用相同的令牌在api.foo.com上标识自己,我们有一个类似的框架,但我们使用HMAC进行api授权。我想你可以用类似的方式在cookie中使用代码。HMAC就像OAuth light,但它可能非常适合这种情况

以下是一些链接:

谢谢,HMAC方法对我来说是新的。在阅读了相关内容后,我想知道如何在浏览器中安全地将此私钥存储在客户端?