使用grails和spring安全性进行跨域身份验证

时间:2011-09-19 19:17:13

标签: tomcat grails spring-security cross-domain

我正在处理将在两个域名下运行的grails应用程序,两个使用相同数据库服务器的独立Web服务器,因此所有数据都是共享的,并且两个域都相同。两个域上的应用程序相同,Config.groovy和css文件中只有serverURL设置不同。我使用spring-security插件进行身份验证。

简而言之,我需要的是当用户登录以查看domain1.com/account时,用户应该能够访问domain2.com/account并仍然登录以查看相同的信息。

所有登录都不是通过twitter / facebook登录或OpenID功能,而是使用spring-security在我的应用程序中创建帐户。

我不认为可以使用cookie来实现这一点,因为它们是特定于域的,并且无法通过Web应用访问跨域cookie,如果我错了,请纠正我。

我考虑尝试的其中一个解决方案是确保在两个Web服务器之间使用tomcat集群进行会话复制,并强制在域交换机上重写URL,以便会话由另一个服务器定位。但是,此解决方案是我的最后一个选项,因为如果访问者在domain1.com上进行身份验证后决定键入domain2.com,而不是单击URL重写链接,则会话信息将丢失。

有什么想法,建议吗?感谢

1 个答案:

答案 0 :(得分:1)

一种选择是使用某种单点登录技术,例如CAS。 CAS here甚至还有一个grails / spring安全插件。