我想在我的ajax應用程序中實現表單身份驗證。 我遇到的問題是,當會話過期時,我得到302個代碼,將我重定向到我在web.xml中指定的登錄頁面(並且它將整個應用程序刷新爲登錄頁面)。Ajax和表單身份驗證
我想要做的是獲得「未認證」(401)代碼,然後在彈出窗口中顯示登錄表單,並在登錄成功時繼續執行我正在做的事情。
這裏是正在發生的事情的一個畫面:
和文檔 http://docs.oracle.com/javaee/1.4/tutorial/doc/Security5.html
基本上,我想顯示彈出式的,而不是重定向到登錄頁面,然後不做重定向到資源,但以AJAX方式進行更新。 根據我的理解,無法僅在客戶端完成重定向,因爲無法避免重定向(請參閱:redirect info),我需要在服務器上編寫某種邏輯以防止重定向,請參閱此處有關在IIS中執行此操作的詳細信息:IIS implementation
PS到目前爲止,這個:http://www.oracle.com/technetwork/articles/entarch/session-lifecycle-096133.html看起來是實現它的最有前途的方式。這個類已被棄用,但我找不到新的,並認爲這是Weblogic的唯一方法。
我不確定您所談論的web.xml文件是如何工作的,但是如果它所做的只是在會話過期時檢查會話並重定向,那麼您是否可以不在相關頁面上手動編寫該邏輯? – mowwwalker
我不想編寫自己的邏輯來檢查身份驗證/會話過期,我想使用Web容器中可用的Web應用程序 –
您使用的是Servlet 3.0嗎?史前的J2EE教程鏈接和Weblogic標籤建議不要,但只是要求確定,因爲這可以使用Servlet 3.0中的新API設施。否則,你需要回到特定於容器的黑客/解決方法(我認爲很遺憾,很難爲Weblogic獲得答案,因爲社區對這個封閉源代碼容器的支持很低;最好的是你最可能得到的自制認證或採用更靈活的認證框架,如Spring Security或Apache Shiro)。 – BalusC