2014-03-03 68 views
0

我有一个遗留应用程序,它在Spring 1.0上运行,并在JBoss 4上使用Acegi安全性。我们的计划是将应用程序的一个子集迁移到Tomacat 7和Spring 4.用户将登录到旧版应用程序,但如果他们想导航到正在迁移的子集,他们将被重定向到新的应用程序。跨两台应用程序服务器管理会话

我的问题是如何维护两者之间的会话信息,以便用户可以在两个应用程序之间无缝导航并维护SSO。两台服务器之间不会有其他信息交换。我们遇到的一个制约因素是我们必须对现有的旧应用程序进行微小的更改。

任何帮助将不胜感激。

回答

0

就我所知,你无法保持会话信息。

您可能能够通过配置JBoss和Tomcat的要群集using Tomcat's clustering(并假设随JBoss的Tomcat的版本与您正在运行独立的Tomcat兼容),以获得疯狂的幸运,然后在两个JBoss和Tomcat的enabling SSO ,但是你必须非常小心,不要在JBoss会话中放置任何不会被独立Tomcat实例加载的内容。

您可能会更好地实施一些其他解决方案,比如使用SAML,这可能不太脆弱。

你说你不想做太多的改变,但是如果你愿意弄脏你的手,你可以在Web应用程序之间使用一个共享的URL空间,使用不同的会话ID cookie,然后交叉 - 通过调用“其他”服务器来获取他们的身份验证信息(您必须以某种方式在会话中提供)来检查未经身份验证的用户的传入请求。我建议不要在用户的会话中存储密码..而是允许一个应用程序使用第一个会话cookie从另一个应用程序中获取用户的用户名。相信用户名是准确的,并且用户已经在第一个应用程序中被正确验证,然后在第二个应用程序中执行自动登录。

无论你做什么,它都会变得混乱,因为你的要求相当混乱。