セッションを上書きされないために

いや、SAStrutsの話ではないんだけれど。

IEFirefox だと セッション(セッションCookie)はプロセスごとに振られる。

この仕様のために、二重ログインによるセッションの上書き、という問題に多くの開発者は悩まされてきたと思う。

業務システムでブラウザを使う場合なんかは、「それはブラウザの仕様です」とか「そんな使い方はしないでください」と言っても、お客様がなかなか納得してくれなかったりする。

これってどうすればいいんだろう。

仮に対応するのであれば、ログイン時にユニークな文字列をつくり、そいつをHttpSessionのキーにして、その下にまたMapを持たせて管理するような感じだろうか。

  • HttpSession
    • ログイン時に発行されたキーabcに紐づくMap
    • ログイン時に発行されたキーxyzに紐づくMap

となると、そのキー文字列は hidden でもちまわることになる。一昔前の CGI でのセッション管理を同じ発想だ。

某プロジェクトでは、これっぽいつくりで実際に開発したそうである。

hidden でもちまわるんだろうけど、タグをうめこみ忘れたら終わりじゃんって思ったら、独自の form タグを使って、自動的にhiddenタグが入るようになっているそうである。

なかなか考えたなと思うけど、「GETで送るときどうすんだよ」とか思う。

というか、ここまでせなあかんのやろか。