簡體   English   中英

會話超時后,基於Tomcat FORM的身份驗證無需頁面包裝即可加載Ajax內容

[英]Tomcat FORM-based authentication loads ajax content without page wrapper after session timeout

會話超時並且用戶重新登錄后,Java應用程序正在加載原始ajax數據。

場景:

  1. 用戶登錄成功
  2. 應用程序加載並在會話超時期間處於空閑狀態
  3. 用戶選擇一個作為ajax調用的選項來刷新頁面內容
  4. 由於超過了超時時間,因此將用戶重定向到WEB.XML文件中定義的基於FORM的登錄頁面。
  5. 用戶再次成功登錄
  6. 問題從這里開始:由於上一個URL請求是針對ajax調用的,因此頁面加載的是原始內容,而沒有完整的HTML頁面包裝器

問題:由於Tomcat正在處理登錄和會話創建過程-

如何通過發送帶有請求的完整HTML頁面或僅將用戶發送到應用程序登錄頁面來處理這種情況?

我希望有一個更優雅的解決方案,但這是我為解決問題所采取的措施。

在我的servlet控制器的頂部,添加了以下代碼。 如果會話變量“ FirstTimeIn”為null,則表示該用戶剛剛登錄。然后檢查userPath是否為“ / ajaxCall”。 我用它來識別我所有的ajax請求。 如果userPath是“ / ajaxCall”,那么我將用戶重定向到Web應用程序的登錄頁面。

if (session.getAttribute("FirstTimeIn") == null) {
        session.setAttribute("FirstTimeIn", "No");
        if (userPath.equals("/ajaxCall")) {
            response.sendRedirect("sc?action=dashboard");
        }
 }

暫無
暫無

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

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