使用 Grails 和 Spring Security 进行跨域身份验证
Posted
技术标签:
【中文标题】使用 Grails 和 Spring Security 进行跨域身份验证【英文标题】:Cross domain authentication with grails and spring security 【发布时间】:2011-11-20 12:34:32 【问题描述】:我正在开发将在两个域名下运行的 grails 应用程序,两个单独的 Web 服务器使用相同的数据库服务器,因此所有数据都是共享的,并且对于两个域都是相同的。该应用程序在两个域上都是相同的,只有 Config.groovy 和 css 文件中的 serverURL 设置不同。我正在使用 spring-security 插件进行身份验证。
简而言之,我需要的是当用户登录查看 domain1.com/account 时,用户应该能够转到 domain2.com/account 并且仍然登录以查看相同的信息。
所有登录都不是通过 twitter/facebook 登录或 OpenID 功能,而是使用 spring-security 在我的应用程序中创建帐户。
我认为不可能使用 cookie 进行这项工作,因为它们是特定于域的,并且无法通过网络应用程序访问跨域 cookie,如果我错了,请纠正我。
我正在考虑尝试的解决方案之一是确保两个 Web 服务器之间存在会话复制,例如使用 tomcat 集群并强制在域交换机上重写 URL,以便会话由另一台服务器定位。但是,此解决方案是我的最后一个选择,因为如果访问者在 domain1.com 进行身份验证后决定键入 domain2.com,而不是单击 URL 重写链接,则会话信息将丢失。
有什么想法、建议吗?谢谢
【问题讨论】:
【参考方案1】:一种选择是使用某种单点登录技术,例如CAS。甚至还有一个用于 CAS here 的 grails/spring 安全插件。
【讨论】:
谢谢,这不是我想要的。以上是关于使用 Grails 和 Spring Security 进行跨域身份验证的主要内容,如果未能解决你的问题,请参考以下文章
Grails spring-security-core 插件安装永远不会完成
Groovy:使用 Grails 和 Spring 安全核心插件时出现意外令牌