我有一个遗留应用程序。登录系统非常简单,就像从用户那里获取用户名/密码并运行数据库查询并验证用户。现在,我已经在遗留的Java应用程序中创建了一个链接,该链接登陆到一个完全独立的Java应用程序仪表板页面(用Spring MVC)。到目前为止,新的spring应用程序作为完全独立的应用程序而没有用户验证。我希望有人点击链接(他只能在登录遗留应用程序后访问链接),它会重定向到新应用程序以及用户会话数据。这样用户也会看到自己登录到新应用程序。如果他从新应用程序注销,我也希望他从遗留应用程序中退出。
传统应用程序 - 基于servlet jsp的简单java应用程序,运行在tomcat 5.5上 新应用程序 - 在Spring MVC 4中编写并在tomcat 6上运行
两个tomcat容器都位于同一个红帽子盒上。
任何帮助都将受到高度赞赏。谢谢
答案 0 :(得分:1)
您可以尝试为遗留应用程序开发AuthenticationSuccessHandler,并在成功时将两个应用程序之间的共享内存中的Autentication设置为SecurityContext。注销时,销毁对象。
对于新应用程序,开发一个过滤器或处理程序,用于请求检查以查看与请求中的SESSIONID关联的共享内存中是否存在授权。如果它不再存在,请强制弹出以消灭此会话,将您退出。
AuthenticationSuccessHandler:http://docs.spring.io/autorepo/docs/spring-security/3.1.7.RELEASE/apidocs/org/springframework/security/web/authentication/AuthenticationSuccessHandler.html
SecurityContent:http://docs.spring.io/autorepo/docs/spring-security/3.2.2.RELEASE/apidocs/org/springframework/security/core/context/SecurityContext.html
当然,这只是两个应用程序之间的脆弱链接,也许您应该考虑以最能满足CAS目的的方式重新开发遗留应用程序,例如公开Web服务以进行登录,并且新应用程序的登录处理程序调用Web服务进行尝试登录,并使用答案决定是否登录用户。这样,您只有一个会话(在新应用程序上),您可以更轻松地扩展旧应用程序(如果需要,不会被其他限制阻止)。
这只是一个意见,没有更详细的了解你的应用程序,它可能证明是有用的或完全垃圾:)
答案 1 :(得分:0)
让我们说你已经在服务器A上连接了。在服务器B上,你有了你的Spring MVC应用程序。
您应该在服务器B上开发一个创建安全令牌的Web服务,并使用symectric算法对其进行加密。将令牌发送到服务器A. 然后,服务器A调用服务器B上使用令牌进行身份验证的其他Web服务。 当您使用令牌登录服务器时,A可以对其进行解密,以验证它是先前发布的。
您可以在网络上找到各种文档和examples,以进行基于令牌的身份验证。