[Wicket-ja-user 164] RE: Re: Redirect時のSessionについて

Back to archive index

古川 烈 r_f_315****@hotma*****
2008年 7月 24日 (木) 17:35:28 JST


古川です。

分り易いページへの誘導ありがとうございます。
なるほど、納得しました。

さらに調査した結果を報告します。

dirty()で綺麗なURLになると書きましたが、間違いでした。
誤情報を流して申し訳ありませんでした。
dirty()を記述しようがしまいが、初回のリクエスト時だけはjsessionidがURLの後ろに付けられます。
※結局のところdirty()が何を行うメソッドなのか不明です。

動きとしては、bind()を呼ぶだけでセッションが維持され、

1.cookieを使用可能にしているブラウザでアクセスした場合、
 初回のみURLにjsessionidが付与され、次ページ以降の遷移に関してはURLは綺麗なままでした。

2.cookieを使用不可にしているブラウザでアクセスした場合は、
 初回以降も遷移する度に同じjsessionidがURLの後ろに自動で割り振られました。


なんというか、とても歯がゆい状態です。。。

理想の動作としては、

・初回もURLを汚してほしくない
・Cookieが使用できないブラウザでアクセスされた場合は常にURLにjsessionidを付与する

という動作が望ましいのですが。。。

ためしにBookmarkablePageLinkの protected CharSequence getURL() の中身を
{
    String url = new StringBuffer( super.getURL() ).toString();

    return url.replaceAll(";jsessionid=.*(\\?|$)", "");
}
こんな感じでオーバーライドしてみたら、初回からもURLは汚されませんでしたが、
当然cookieが無効になっているブラウザでURLにjsessionidが付かないので問題有りでした。
但し、cookieが有効なブラウザで初回のURLが綺麗でも問題なくセッションは維持されていました。

BookmarkablePageLinkの中身を見て上記の動作が実現できるようにもう少し研究してみます。


---------------------------------------------------
古川 烈(ふるかわ れつ)
電子メール:r_f_315****@hotma*****
---------------------------------------------------

_________________________________________________________________
MSN相談党、誕生。あなたの知識で日本を変えよう。党首には押切もえが就任!
http://questionbox.jp.msn.com/index.php3?StatusCheck=ON
-------------- next part --------------
HTMLの添付ファイルを保管しました...
Télécharger 


Wicket-ja-user メーリングリストの案内
Back to archive index