2016-04-15 15 views
0

単純なJSP-Servletに基づいてJava Webアプリケーションを作成しました。私は静的なIP(例のIP - 102.30.101.5)と1つの専用サーバーを持っています。ポート8080で、IISはポート9090で&を実行しています。Apache Tomcatが実行されています。 Webアプリケーション(demoapp)をポート9090(Apache Tomcat)にデプロイしました。 私は1つのドメイン(例のドメイン - example.comまたはwww.example.com)を持っており、このドメインを静的IPにリダイレクトします。たとえばwww.example.comから102.30.101.5へドメインリダイレクト後にJsp-Servletベースのアプリケーションでセッションが失われる

IISでは、着信URL要求をwww.example.comが着信要求である場合は、Webアプリケーションが動作しているポート9090(Apache Tomcat)にリダイレクトするように設定されています(IISのURL書き換えオプション)。

これをすべて実行した後、私は大きな問題に直面しました。

IPを使用してアプリケーションにアクセスしているとき、つまり102.30.101.5:9090/demoappは正常に動作しています。 しかし、私がwww.example.comを介してアクセスしているときは、リクエストごとに新しいsessionidが作成されます。 Ex。同じブラウザでは、リクエストごとに異なるsessionidを作成します。 このため、私はログインユーザーのセッションを維持することができません。 また、検索エンジンの最適化にも影響します。

私は、そのリダイレクトの問題は考えていますが、問題の原因がわかりません。

すぐに手伝ってください。

ありがとうございます。

答えて

1

あなたのセッションはクッキーによって維持されていると仮定しています。 Cookieは常に特定のホスト名に制限されています.IPアドレスはまったく異なるホスト名になります。ホスト名を変更すると、セッションが失われることが完全に予想されます。なぜなら、これがCookie(最もよく使用されるセッション識別子ストレージ)の仕組みだからです。

ありURLにセッション識別子を追加する方法がありますが、あなたは、外部のサーバにリンクしている場合、これは外部サーバのログに表示されるセッションの傾向がある、ので、それは潜在的なセッション漏れだとあなた絶対には何を知っている限りはお勧めしませんあなたはやっている。

セッションが作成される前に、誰かが意図しないホスト名またはIPアドレスだけでサーバーに接続するたびにリダイレクトするようにリダイレクトを構成する必要があります。

+0

ありがとうございますSir @ olaf-kock他のセッショントラッキング方法を試しましたが、同じ出力を得ました。 –

+0

誰かが標準のホスト名以外に来て、あなたが設定されている場合は、ただちに直ちにリダイレクトを行います。他のテクニックを試してみる必要はもうありません。私が上記のように:彼らは問題を知っていて、絶対に*これらの問題を知ることは*本当の前提条件です。 * "絶対的に" *のイタリック体は、意図的なものです。 –

関連する問題