0
我正在處理一些破損認證的舊Java代碼。 Web應用程序以成功創建和驗證用戶對象的jsp文件開始。然後使用以下代碼創建一個會話變量。Java會話變量無法從新頁面訪問
session.setAttribute("guiUser", userIdentity);
如果我決定要在同一個JSP文件中該用戶對象:
UserIdentity foo = (UserIdentity) session.getAttribute("guiUser");
System.out.println(foo.getName());
我能成功地獲取認證的用戶對象。
但是,使用
response.sendRedirect(targetPage);
當我到了這個新的jsp頁面,登錄檢查JSP是其他任何東西之前運行的頁面,然後重定向到另一個JSP不同的項目中在我的工作區。登錄檢查有以下代碼來實例化從會話變量用戶對象(或至少這是我認爲這是應該做的。)
<jsp:useBean id="guiUser" class="com.ussposco.sso.UserIdentity" scope="session"/>
<% (code that uses guiUser object) %>
似乎這段代碼不工作,因爲用戶對象爲null。所以我試着用這段代碼從會話中抓取用戶對象。
UserIdentity foo = (UserIdentity) session.getAttribute("guiUser");
System.out.println(foo.getName());
而且該對象仍爲空。
我對Java Web應用程序很新穎,但我認爲這是響應重定向方式的問題。 Chrome瀏覽器中可以看到兩個不同的Cookie,但我認爲應該只有一個。另外,在生產網站上,它改變了不同於我使用的代碼(明顯過期)使用的cookie的價值。
謝謝,我認爲這是問題所在。我不認爲SSO是一種選擇,我會看看我是否可以將這兩個應用程序合併爲一個。 –