2012-09-24 129 views
1

我有一個與Spring 3.1身份驗證連接的應用程序。我有一些頁面使AJAX請求顯示對話框中的一些信息。現在,如果用戶的會話超時,Spring將重定向到登錄頁面。我不想要一個基於AJAX的登錄頁面。我希望用戶完全導航到登錄頁面,取消當前的操作。用戶登錄後,將用戶導航回到他所在的最後一頁(從發出AJAX請求的位置)。Spring 3.1:處理會話超時

重定向的東西工作正常,如果請求是從一個頁面。

回答

1

執行重定向到登錄頁面的類是LoginUrlAuthenticationEntryPoint。我會編寫一個自定義的AuthenticationEntryPoint實現來檢測Ajax請求(例如,通過查看Accept標頭),併發送錯誤代碼而不是執行重定向。

儘管如此,您仍然必須在客戶端檢測到這一點。 Spring Security在那裏沒有多少功能,但是你應該能夠從Javascript重新加載當前頁面,這將強制登錄,然後重定向到原始頁面(默認的Spring安全行爲)。

+0

你能給我一個示例代碼如何從ajax調用重定向嗎? – grep