セッションを上書きされないために
いや、SAStrutsの話ではないんだけれど。
IE や Firefox だと セッション(セッションCookie)はプロセスごとに振られる。
この仕様のために、二重ログインによるセッションの上書き、という問題に多くの開発者は悩まされてきたと思う。
業務システムでブラウザを使う場合なんかは、「それはブラウザの仕様です」とか「そんな使い方はしないでください」と言っても、お客様がなかなか納得してくれなかったりする。
これってどうすればいいんだろう。
仮に対応するのであれば、ログイン時にユニークな文字列をつくり、そいつをHttpSessionのキーにして、その下にまたMapを持たせて管理するような感じだろうか。
- HttpSession
- ログイン時に発行されたキーabcに紐づくMap
- ログイン時に発行されたキーxyzに紐づくMap
となると、そのキー文字列は hidden でもちまわることになる。一昔前の CGI でのセッション管理を同じ発想だ。
某プロジェクトでは、これっぽいつくりで実際に開発したそうである。
hidden でもちまわるんだろうけど、タグをうめこみ忘れたら終わりじゃんって思ったら、独自の form タグを使って、自動的にhiddenタグが入るようになっているそうである。
なかなか考えたなと思うけど、「GETで送るときどうすんだよ」とか思う。
というか、ここまでせなあかんのやろか。