如何使用Spring Security在多个基于JVM的应用程序上实现单点登录

前端之家收集整理的这篇文章主要介绍了如何使用Spring Security在多个基于JVM的应用程序上实现单点登录前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我目前正在尝试在多个基于JVM(Grails,Servlets)的Web应用程序上实现单一登录解决方案,这些Web应用程序当前都部署在同一个servlet容器中(目前是Tomcat,但不希望将我的解决方案仅限于Tomcat).所有Web应用程序共享一个公共数据库

我已经看过使用CAS或其他第三方库创建新的Web服务来处理单点登录的各种选项,但似乎没有一个真正满足业务需求.我当前的实现涉及创建一个新的jar库,它具有基于Spring Security的AuthenticationProvidersPre-Authentication Filters的通用实现.

在这种方法中,我有多个AuthenticationProviders(当前是Active Directory和Database)供应用程序进行身份验证.验证成功后,将在包含用户的会话表,过期时间和令牌中插入一行.令牌也将作为cookie存储在用户的计算机上,并用于验证它们在预认证过滤器中是否具有当前会话.

在我想要确保我没有创建一个巨大的安全问题之前从未这样做过,我也想知道创建令牌需要什么?此时一个简单的GUID似乎足够了吗?

目前我们正在开发Spring Security 3.0.x,尚未升级到3.1.

提前致谢.

最佳答案
Spring Security Extensions网站上有可用于KERBEROS,OAuth和SAML的扩展.这是博客条目,提供了一个示例:SpringSource Blog

如果您使用NTLM作为SSO提供程序,请查看jespa-spring项目.

或者你可能想看看Java Open Single Sign-On Project

猜你在找的Spring相关文章