- PR -

struts struts-config(scope=session)

投稿者投稿内容
nori1122
常連さん
会議室デビュー日: 2003/09/14
投稿数: 30
投稿日時: 2003-11-04 11:45
struts-config.xml内にスコープをsessionとして以下のように定義します。

<action path="/test"
type="jp.test.TestAction"
name="TestActionForm"
scope="session"
input="/test.jsp">
<forward name="success" path="/success.do"/>
</action>

上のリクエスト後、一連の処理が完了しsessionが不要になった場合に削除したいときは、
やはりプログラム側でセッション削除のコードを書く必要があるのでしょうか?
struts-config.xmlの定義で、セッションを無効化することができるのでしょうか?
よろしくお願いします。

山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2003-11-04 12:30
セッションのライフサイクルを管理するような昨日は Struts には無かったと思います。
どこかの Action / Filter / JSP 内で session.invalidate() するかセッションがタイムアウトするまで持続します。
nori1122
常連さん
会議室デビュー日: 2003/09/14
投稿数: 30
投稿日時: 2003-11-04 13:03
やはりそうなんですね。
今以下のような処理の中で、セッション保持を使用したいとおもっていたのですが、
登録画面
↓ ボタン押下 :セッション内にActionFormの情報を保持
登録内容の確認画面
↓ ボタン押下
実際の登録処理 :セッション内のActionFormの情報を使って登録

※登録後、セッション内のActionForm情報は不要

でも、明示的にセッション内のActionFormをクリアしなきゃいけないというのは、ちょっと気持ちわるい気がするのは私だけでしょうか・・・

[ メッセージ編集済み 編集者: nori 編集日時 2003-11-04 13:34 ]
ゆん
常連さん
会議室デビュー日: 2003/07/11
投稿数: 32
投稿日時: 2003-11-06 12:42
私はスコープを必ずrequestにしています。
nori1122
常連さん
会議室デビュー日: 2003/09/14
投稿数: 30
投稿日時: 2003-11-06 19:44
引用:

ゆんさんの書き込み (2003-11-06 12:42) より:
私はスコープを必ずrequestにしています。



なぜそうしているのですか?

私がセッションにもつ理由は、確認画面で入力された情報をHiddenで隠すのは
セキュリティ上あまりよくないと思いセッションに保持しています。
PAL
ベテラン
会議室デビュー日: 2002/11/14
投稿数: 63
投稿日時: 2003-11-10 11:31
引用:

noriさんの書き込み (2003-11-06 19:44) より:
引用:

ゆんさんの書き込み (2003-11-06 12:42) より:
私はスコープを必ずrequestにしています。


なぜそうしているのですか?
私がセッションにもつ理由は、確認画面で入力された情報をHiddenで隠すのは
セキュリティ上あまりよくないと思いセッションに保持しています。



私もゆんさんと同じくstrutsに管理させるBeanのスコープは全てrequestにしています。
理由は、
(1)生成がstrutsで破棄が自分のソースとなると、前後関係を考えるのが非常に面倒
   ⇒自分で管理するほうが安全な気がする。
(2)下手に、大きなオブジェクトを入れられるとかなわない。

ためですね。

元の書き込みとはそれてしまっていますが。。。。
toppo
ベテラン
会議室デビュー日: 2003/10/28
投稿数: 89
お住まい・勤務地: 東京・池袋
投稿日時: 2003-11-10 18:15
こんにちはtoppoです。

スコープをrequestにするという事と、
値をhiddenで持つ事は実質的には
違いますよね。

だから、hiddennで持つ事がセキュリティ上不安
という心配に対しては、恐らく当てはまらないでしょう。

なので、解決案としての
"スコープをrequestにしてみる"
は再度検討する意義がありそうですね。。

それでは。

nori1122
常連さん
会議室デビュー日: 2003/09/14
投稿数: 30
投稿日時: 2003-11-10 18:19
引用:

PALさんの書き込み (2003-11-10 11:31) より:
引用:

noriさんの書き込み (2003-11-06 19:44) より:
引用:

ゆんさんの書き込み (2003-11-06 12:42) より:
私はスコープを必ずrequestにしています。


なぜそうしているのですか?
私がセッションにもつ理由は、確認画面で入力された情報をHiddenで隠すのは
セキュリティ上あまりよくないと思いセッションに保持しています。



私もゆんさんと同じくstrutsに管理させるBeanのスコープは全てrequestにしています。
理由は、
(1)生成がstrutsで破棄が自分のソースとなると、前後関係を考えるのが非常に面倒
   ⇒自分で管理するほうが安全な気がする。
(2)下手に、大きなオブジェクトを入れられるとかなわない。

ためですね。

元の書き込みとはそれてしまっていますが。。。。



(1)については、自分で管理するほうが安全ですか?
(面倒という話になると、元も子もありませんが・・)
情報がクライアント側で持たれるんですから安全ではないですよね。
パスワードがHiddenで埋め込まれるとなると・・・どうでしょう?

(2)は確かにリソースは犠牲になりますが、でも(1)の安全性を考慮した設計をする上ではしかたないと思いますが。。ただ、今回の質問させていただいたとおり、私も無駄なリソース(使い終わったセッション)をなるべくなくしたいとは考えています。

スキルアップ/キャリアアップ(JOB@IT)