簡體   English   中英

AJAX調用不同的應用程序上下文(Java + Tomcat)

[英]AJAX call on a different application context (Java + Tomcat)

我有兩個使用Spring Security開發的Web應用程序。 每個應用程序都有自己的WAR,因此部署在它自己的上下文中:

localhost:8080/my-app1
localhost:8080/my-app2

現在,當我嘗試將my-app1上的AJAX調用發送到my-app2上的控制器時,我收到一條錯誤消息,指出我的會話已過期。 這是有道理的,畢竟用戶在my-app1上進行my-app1身份驗證,但未在my-app2上進行身份驗證。

那有什么解決方法嗎?

我有兩個解決方案:

  1. 安全的:您可以嘗試在數據庫中為兩個應用程序保存“id會話”,並在調用中傳遞此ID。 在第二個應用程序上,您可以驗證該ID並繼續調用。
  2. 不安全的一個:您可以將Spring配置為不在my-app2上的此調用(url映射)上驗證用戶會話。

並發現了這一點: 在tomcat中不同應用程序之間共享會話狀態的方法是什么?

我建議你在瀏覽器端將登錄令牌存儲為cookie條目,cookie應該與app1和app2具有相同的域(在你的情況下,它只是localhost)。 所以它將被傳遞到兩個應用程序的后端。

登錄令牌可以具有加密的用戶名,該用戶名可以由服務器解密,密碼的散列用於驗證。

這實際上是Spring Security中基於令牌的記住我服務背后的想法。

暫無
暫無

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

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