无法从新页面

时间:2017-10-13 20:26:43

标签: java jsp session

我正在处理一些破解身份验证的旧Java代码。 Web应用程序以jsp文件开头,该文件成功创建并验证用户对象。然后使用以下代码创建会话变量。

session.setAttribute("guiUser", userIdentity);

如果我决定在同一个jsp文件中获取此用户对象:

UserIdentity foo = (UserIdentity) session.getAttribute("guiUser");
System.out.println(foo.getName());

我可以成功检索经过身份验证的用户对象。

但是,然后使用

将页面重定向到我工作区中不同项目中的另一个jsp
response.sendRedirect(targetPage);

当我到达这个新的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的值。

1 个答案:

答案 0 :(得分:1)

当您重定向到不同的应用程序时,您将无法获得相同的会话对象。为此需要单身唱歌(SSO)。