簡體   English   中英

如何將已登錄用戶的會話數據傳輸到另一個Java應用程序

[英]How can i transfer session data of a logged in user to another Java application

我有一個舊版應用程序。 登錄系統非常簡單,就像它從用戶那里獲取用戶名/密碼並運行數據庫查詢並驗證用戶一樣。現在,我已經在舊版Java應用程序內創建了一個鏈接,該鏈接登陸到一個完全獨立的Java應用程序儀表板頁面(在Spring MVC)。到目前為止,新的spring應用程序是完全獨立的應用程序,並且在那里沒有實現用戶驗證。 我想要類似某人的鏈接(他只能在登錄到舊應用程序后才能訪問該鏈接),它將與用戶會話數據一起重定向到新應用程序。 這樣,該用戶還可以看到自己已登錄到新應用程序。 而且,如果他從新應用程序注銷,我也希望他也從舊版應用程序注銷。

舊版應用程序-基於簡單servlet jsp的Java應用程序,在tomcat 5.5上運行新應用程序-在Spring MVC 4中編寫,並在tomcat 6上運行

兩個tomcat容器都位於同一個紅色帽子盒上。

任何幫助將不勝感激。 謝謝

您可以嘗試為舊版應用程序開發AuthenticationSuccessHandler,並使其在成功時在兩個應用程序之間的共享內存中設置來自SecurityContext的Autentication。 注銷時,銷毀對象。

對於新應用程序,開發一個過濾器或處理程序,以用於請求檢查以查看與請求中的SESSIONID關聯的共享內存中是否存在授權。 如果不再存在,請強制spring破壞此會話,並注銷您。

AuthenticationSuccessHandler: http : //docs.spring.io/autorepo/docs/spring-security/3.1.7.RELEASE/apidocs/org/springframework/security/web/authentication/AuthenticationSuccessHandler.html

安全性內容: http : //docs.spring.io/autorepo/docs/spring-security/3.2.2.RELEASE/apidocs/org/springframework/security/core/context/SecurityContext.html

共享內存: http//hazelcast.com/

當然,這只是兩個應用程序之間的脆弱鏈接,也許您應該考慮以最能滿足CAS目的的方式重新開發舊版應用程序,例如公開用於登錄的Web服務,並具有用於登錄的處理程序。新應用程序將調用Web服務進行嘗試登錄,並使用答案決定是否登錄用戶。 這樣,您只有一個會話(在新應用程序上),並且可以輕松擴展舊版應用程序(如果需要並且不受其他限制的限制)。

這只是一個觀點,如果您不更詳細地了解您的應用程序,則可能會被證明有用或完全是垃圾:)

假設您已連接到服務器A。在服務器B上,您具有Spring MVC應用程序。

您應該在服務器B上開發一個創建安全令牌的Web服務,並使用對稱算法對其進行加密。 將令牌發送到服務器A。然后服務器A調用服務器B上使用該令牌進行身份驗證的另一個Web服務。 當您使用令牌登錄服務器A時,可以對其進行解密以驗證它是先前發布的令牌。

您可以在網上找到各種文檔和示例 ,以進行基於令牌的身份驗證。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM