- PR -

au端末でのセッション管理に関して

1
投稿者投稿内容
未記入
会議室デビュー日: 2005/07/15
投稿数: 11
投稿日時: 2006-07-18 19:57
いつも、皆さんの議論を参考にさせていただいております。

今回、au端末でのセッション管理で、どうしても解決できない問題が発生しまして、皆様のお力をお借りしたいと思います。

環境は、
Tomcat 5.5.17
apache 2.0.52
mod_jk2
で、
struts1.2.8
sslext
を用いて開発を行っています。

検証している携帯端末は、
Sony Ericssonの、W32Sです。

行いたいことは、httpとhttps間の遷移を行うときに、セッションを引き継ぎたいだけなのですが、PCでも、携帯でもうまく行ったのですが、au端末だけはうまくいきません。

考えられることとして、sessionidが渡されていないのかと思い、サーバ側で、渡されたJSESSIONIDなどを調べてみたところ、cookie経由でidが渡されていましたが、http⇒httpsの遷移の間で、違うSESSIONIDが渡されていました。

auでは、http://www.XXXXXXXXXX.XXX/と、https://www.XXXXXXXXXX.XXX/を別のサイトとして認識しているのかと思い、リダイレクトの際に、クッキーを消去して、httpsのアドレスに;jsessionid=(httpのセッションID)という形式で、URLにセッションIDを付加するように作り変えましたが、セッションが取れませんでした。

再度調べてみたところ、httpsへのアクセスの際に、また別の新しいSessionIDがCookieに付加されて送られてきていました。
それで、URLに付加されたIDよりもCookieのIDを優先してセッション管理が行われてしまっているようです。

自分が調べた範囲では、au端末では、サーバ側で、Cookieの制御がうまく行えないということだったので、別の方法はないかと探して、サブスクライバIDを元にセッション管理したらよいということを見つけました。

ただ、サーブレットでは、セッションIDを指定して、Sessionを生成する方法は、用意されていないようで、Cookieも消せず、サブスクライバIDで、Session生成することもできず、方法が見つからずに困っています。

一般的に、au端末のセッション管理はこうするなど、教えていただければ非常に嬉しいですが、ここを調べたほうがよいとか、この認識は間違えているとか、もっとこういったことを知ったほうがいいとかでも構いませんので、皆さんの助けをいただけないでしょうか。

よろしくお願いします。


[ メッセージ編集済み 編集者: 未記入 編集日時 2006-07-18 19:59 ]
isayan
会議室デビュー日: 2005/06/08
投稿数: 9
投稿日時: 2006-07-25 00:48

近いうちに、同じ問題について調査予定ですので解決方法ではないのですが。

>auでは、http: //www.XXXXXXXXXX.XXX/と、https://www.XXXXXXXXXX.XXX/を
>別のサイトとして認識しているのかと思い、リダイレクトの際に、クッキーを
>消去して、httpsのアドレスに;jsessionid=(httpのセッションID)という形式で、
>URLにセッション IDを付加するように作り変えましたが、セッションが
>取れませんでした。

これは、server.xmlのContextのcookiesはfalseに設定してるのでしょうか?

この方法でもだめなら後思いつくのは、

http→httpsの遷移のときだけGET、POSTのパラメータで渡す。
セッション管理を行いたい時点でhttpsにする。

ぐらいでしょうか。

すでに解決済みなのであれば自分も知りたい。



1

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