QA@IT

HTTPSでのURL Rewritingが効きません

4181 PV

Java + Tomcat7.0で携帯電話用ページを作成中です。

encodeURLおよびencodeRedirectURLを使用して、Cookie非対応機種にも対応するようにしています。

HTTPで試すと、きちんとjsessionIdの付加がされていて、sessionの保持ができているのですが、同じソースをHTTPSで試すと、jsessionIdの付加がされない状態になっています。
(Cokkie無効の端末で試してます)

HTTPとHTTPSの切り替えでsessionが変わるということは把握していますが、今回はHTTPS内だけの遷移です。

一応isRequestedSessionIdFromCookie()・isRequestedSessionIdFromURL()の結果をシステムアウトして確かめてみたところ、やはり以下のような結果になっていました。

[HTTP]
Cookie:false URL:true

[HTTPS]
Cookie:false URL:false

HTTPSの方は、web.xmlでCookieにsecureを設定していますが、これが原因でencodeURL・encodeRedirectURLが効かなくなることはないと思います。

それぞれ動かしているマシンが違うので、もしかしたらTomcatの設定が影響しているのかもと考えたのですが、皆目見当がつきません。

URL Rewritingができなくなるような要因や、何か手がかりになるような情報がありましたら、教えていただけないでしょうか。

  • 多分 URL Rewritengはできていますよ。
    消えてるのは設定の問題かと
    -
  • コメント有難うございます。
    同じソースなのに駄目だということは、やはり設定の問題ですよね。

    現在、Tomcat・IIS・ISAPIの設定確認をしているのですが、なかなかそれらしい設定をしている個所が見つからない状況です。
    見つかりましたら、またここでご報告させていただきます。
    -

回答

原因が判明致しましたのでご報告します。
やはり設定が原因でした。

web.xmlで、tracking-modeをCookieのみ指定していたため、sessionの維持がCookieのみ行える状況になっていました。
Java/ServletとJSESSIONIDのURL管理

直ぐに気がつかなかったのが情けないことこの上ないです。

編集 履歴 (0)
ウォッチ

この質問への回答やコメントをメールでお知らせします。