2017-10-13 11 views
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()); 

オブジェクトはまだnullです。

私はJava Webアプリケーションの新機能ですが、これは応答がリダイレクトされる方法に問題があると思います。私はクロムで2つの異なるクッキーを見ることができます。また、本番ウェブサイトでは、私が使用しているコードとは異なるクッキーの値を変更します。

答えて

1

異なるアプリケーションにリダイレクトするとき、同じセッションオブジェクトを取得することはありません。これにはシングル・シング・オン(SSO)が必要です。

+0

ありがとうございます、これは問題だと思います。私はSSOがオプションだとは思わない、私は2つのアプリケーションを1つにまとめることができるかどうかを知るだろう。 –

関連する問題