tomcat - 使用 Grails 和 Spring Security 进行跨域身份验证

标签 tomcat grails spring-security cross-domain

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

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

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

我认为不可能使用 cookie 进行这项工作,因为它们是特定于域的,并且无法通过网络应用程序访问跨域 cookie,如果我错了请纠正我。

我正在考虑尝试的解决方案之一是确保两个 Web 服务器之间存在 session 复制,例如使用 tomcat 集群并强制在域切换上重写 URL,以便 session 由另一台服务器定位。然而,这个解决方案是我最后的选择,因为如果访问者在 domain1.com 上通过身份验证后决定输入 domain2.com,而不是单击重写的 URL 链接, session 信息将会丢失。

有什么想法、建议吗?谢谢

最佳答案

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

关于tomcat - 使用 Grails 和 Spring Security 进行跨域身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7476091/

相关文章:

java - 在应用程序 context.xml 中定义自定义 UserDatabase 资源

mysql - linux env 上的 grails 部署中的 BeanCreationException

mongodb - 无法安装 Grails MongoDB 插件

spring - JpaRepository 上的 @PreAuthorize

java - 为什么 Spring Security 的 BindAuthenticator 需要用户读取权限?

java - 应用服务器重新部署ear文件是否重启服务器

spring-boot - 无法使Netbeans Project确认现有的Tomcat或Glassfish服务器

javascript - 显示没有标记或DOM更改的消息

grails - 重定向到UrlMappings.groovy中的静态页面

spring-boot - Spring Boot 2.1.0使用Kotlin数据类更改安全性?