我正在研究grails应用程序,它将在两个域名下运行,两个独立的web服务器使用相同的数据库服务器,因此所有数据都是共享的,并且对于两个域都是相同的。该应用程序在两个域上是相同的,只有serverURL设置在配置中不同。Groovy和一个CSS文件。我使用spring-security插件进行身份验证。
简而言之,我需要的是当用户登录看到domain1.com/account时,用户应该能够去domain2.com/account并且仍然登录看到相同的信息。
所有登录都不是通过twitter/facebook登录或OpenID功能,而是使用spring-security在我的应用程序中创建帐户。
我不认为它可能使这个工作与cookie,因为它们是特定于域的,没有办法通过web应用程序访问跨域cookie,纠正我,如果我错了。
我想尝试的解决方案之一是确保在两个web服务器之间有会话复制,例如使用tomcat集群,并在域切换上强制URL重写,以便会话被另一个服务器定位。然而,这个解决方案是我的最后一个选择,因为如果访问者在domain1.com进行身份验证后决定输入domain2.com,而不是点击URL重写的链接,会话信息将丢失。
有什么想法和建议吗?由于
一种选择是使用某种单点登录技术,例如CAS。这里甚至有一个grails/spring的CAS安全插件