spring可以支持多应用共享成员资格吗?

问题描述 投票:0回答:3

Spring 框架是否支持共享公共用户群的多个应用程序?

例如2 个独立的 Web 应用程序以某种方式连接到单个数据库以获取用户相关信息(用户名、密码,甚至角色)

这个想法是这样的,类似于 asp.net 会员资格

它的工作原理如下,您可以拥有 10 个网站,所有网站都从同一数据源提取其会员 API。安全(角色)和站点映射均通过此会员 API 执行。

通常发生的情况是您发布应用程序。然后你发布另一个应用程序,然后你的客户询问你是否可以合并用户等。asp.net 会员资格从一开始就解决了这个问题。

更新

我并不是要求单点登录,因为您只需登录一次就可以访问任何网站。相反,您拥有可在所有站点上使用的相同登录凭据。

java spring membership
3个回答
3
投票

单个数据库可以被多个应用程序访问,包括 Spring 应用程序。只需向每个应用程序提供对此数据库的访问,通常通过数据源(是的,Java 应用程序可以使用多个数据源)。

根据一些评论,似乎问题可能是关于SSO的。在这种情况下,我建议查看 Spring Security,或 CAS 实现,如 JA-SIG CAS,或 Spring Security with CAS


1
投票

当然可以。看看带有 Spring 的 Terracota。它允许使用分布式缓存。即,您可以写入哈希图,它会透明地复制到另一个 JVM 实例(即应用程序)上的哈希图。

http://www.springsource.org/node/279

还可以谷歌“cluster spring”。

您可以将任何内容放入数据结构中:用户信息、角色等。它还为您提供了一个很好的小型集群解决方案,您可以在其中轻松地在应用程序的多个实例之间负载平衡会话。


0
投票

是的......有点。看看 SpringSecurity。

我说“有点”是因为 Spring 目前没有为用户帐户管理问题提供现成的解决方案。您可以选择连接到现有解决方案(例如 LDAP)或推出您自己的“用户详细信息服务”和帐户管理工具。

此外,SpringSecurity 还没有(据我所知)真正的“单点登录”解决方案。

但是当然,一旦您实现了基于 SpringSecurity 的身份验证/访问控制解决方案,就应该很容易将其应用于多个网站,并具有统一的用户帐户库……或者不是。

编辑响应评论,当我说 SpringSecurity + LDAP 不是现成的用户帐户管理解决方案时,我的意思是它不是可以简单地添加到他的基于 Spring 的东西(如 OP) webapps 并部署在 Tomcat / 任何地方。相反,他必须

  1. 研究 LDAP 的工作原理,
  2. 选择和 LDAP 实施,
  3. 安装 LDAP 实施,
  4. 根据需要配置和定制 LDAP,
  5. 与 SpringSecurity 集成,
  6. 想办法对他的网络应用程序实施扩展,以便远程用户可以自行注册、更改密码、更改个人资料等。

在我看来,如果您已经拥有企业 LDAP 设置(或者您拥有广泛的 LDAP 专业知识),那么 SpringSecurity + LDAP 是一个很好的解决方案,但它不能很好地满足 OP 对简单解决方案的要求。

© www.soinside.com 2019 - 2024. All rights reserved.