1
我有一個與Spring 3.1身份驗證連接的應用程序。我有一些頁面使AJAX請求顯示對話框中的一些信息。現在,如果用戶的會話超時,Spring將重定向到登錄頁面。我不想要一個基於AJAX的登錄頁面。我希望用戶完全導航到登錄頁面,取消當前的操作。用戶登錄後,將用戶導航回到他所在的最後一頁(從發出AJAX請求的位置)。Spring 3.1:處理會話超時
重定向的東西工作正常,如果請求是從一個頁面。
我有一個與Spring 3.1身份驗證連接的應用程序。我有一些頁面使AJAX請求顯示對話框中的一些信息。現在,如果用戶的會話超時,Spring將重定向到登錄頁面。我不想要一個基於AJAX的登錄頁面。我希望用戶完全導航到登錄頁面,取消當前的操作。用戶登錄後,將用戶導航回到他所在的最後一頁(從發出AJAX請求的位置)。Spring 3.1:處理會話超時
重定向的東西工作正常,如果請求是從一個頁面。
執行重定向到登錄頁面的類是LoginUrlAuthenticationEntryPoint
。我會編寫一個自定義的AuthenticationEntryPoint
實現來檢測Ajax請求(例如,通過查看Accept
標頭),併發送錯誤代碼而不是執行重定向。
儘管如此,您仍然必須在客戶端檢測到這一點。 Spring Security在那裏沒有多少功能,但是你應該能夠從Javascript重新加載當前頁面,這將強制登錄,然後重定向到原始頁面(默認的Spring安全行爲)。
你能給我一個示例代碼如何從ajax調用重定向嗎? – grep