【问题标题】:Spring Security Between Two Apps两个应用程序之间的 Spring Security
【发布时间】:2011-07-27 03:34:10
【问题描述】:

我正在使用 Spring Source 2.0 安全插件,并且我已经使用 Requestmap 安全方法完成了本页中描述的教程。

Acegi Plugin Tutorial

我现在想按如下方式创建第二个书店并实施相同的教程。

grails create-app bookstore2

两个应用程序将共享同一个数据库,因此两个应用程序之间的所有用户、角色等都是通用的。最后,如果给定用户在第一个书店进行身份验证,我希望他在第二个书店中自动进行身份验证。实现这一点的最佳方法是什么?

【问题讨论】:

    标签: grails


    【解决方案1】:

    您可以利用 Acegi 提供的“记住我”功能。由于它是基于cookie的,一旦你对第一个应用程序进行身份验证,它将丢弃一个cookie,然后当你尝试登录第二个应用程序时,只要安全模型相同,你将立即通过cookie进行身份验证.

    请参阅:Acegi Documentation 了解更多详情。

    【讨论】:

    • 仅当应用在同一个域中时才有效,否则,这将是一个安全漏洞。
    • 没错,一种解决方法是在第二个域中“构建”(如果可以的话)。类似于:www.bookstore.com 和 two.bookstore.com 指向 www.bookstoretwo.com。那么cookie就会起作用,否则,如上所述,它将不起作用。
    • 记住我的 cookie 适用于 /bookstore。第二个书店将在 /bookstore2 上。我猜我必须在 / 上创建 cookie。
    【解决方案2】:

    您可能想看看CAS。它是一个联合登录服务器,允许跨多个 Web 应用程序使用单点登录 - 独立于它的平台。它是基于 Java 和 Spring 的,但需要您熟悉它的架构。 Spring Security 内置了对 CAS 的支持。

    【讨论】:

    • 不应该有更简单的方法吗? Glassfish 等应用程序服务器已经通过领域提供了对 SSO 的支持。
    • 是的,当然有更简单的方法,但我没有太多经验。 CAS 提供了灵活性,例如。当您想连接其他应用程序或要将应用程序移动到另一个应用程序服务器时。
    猜你喜欢
    • 2018-11-27
    • 2017-09-26
    • 2011-09-10
    • 2012-07-24
    • 2015-08-02
    • 2011-04-09
    • 2013-04-22
    • 2017-02-12
    • 2015-12-12
    相关资源
    最近更新 更多