2012-01-16 17 views
5

クロムに関する問題:ChromeとJSESSIONID

私はGrails 1.3.7アプリケーションをサーバー上で実行しています。私は、Chromeから静的コンテンツ(非ダイナミックHTMLファイルなど)をリクエストすると、2つのJSESSIONIDクッキーを作成することに気付きました。ログインウィンドウが現れたときの最初のものと、成功したログイン後のもの。ページをリフレッシュするか、別のリソースをリクエストしたい場合は、もう一度ログインする必要があります。 (私はTomcatがそれらの2つのクッキーを理解していないためだと思う)

私はFFで試したことがあるが、FFはちょうど1つのCookieとその完璧な動作を作成する。 また、私はローカルでアプリを実行しましたが、クロムを使っても機能します。だから、tomecatと何かが間違っている必要があります。

的環境:

  • Grailsの-アプリケーション1.3.7
  • のApache Tomcat 7(春のセキュリティコア1.2.4で)

私のhttpd(Windows Server 2008で)。 conf:

ProxyPass /manager http://myUrl:8080/manager 
ProxyPass /myGrailsApp http://myUrl:8080/myGrailsApp 
ProxyPassReverse /manager http://myUrl:8080/manager 
ProxyPassReverse /myGrailsApp http://myUrl:8080/myGrailsApp 

ProxyPass/http://myUrl:8080/myGrailsApp/frontend 
ProxyPassReverse/http://myUrl:8080/myGrailsApp/frontend 

ありがとうございます。

アップデート1:

I再建て、再展開のアプリと再びTomcatを再起動します。

今注目しています。Chromeはもう2つのCookieを生成しません。しかし、エラーは同じです。リフレッシュしたりリクエストしたりするたびに、JSESSIONIDが変更され、再度ログインする必要があります。 (クロムと)私は、サーバー上でローカルにそれを試してみました

:クロームからのもの...

アップデート2 -

のtomcat-サーバー上の短い時計は、アクティブなセッションの大きな量を表示します:

  • はlocalhost /て、myApp /フロントエンドは=>はApache => FAIL
  • はlocalhost:8080 /て、myApp /フロントエンド=> Tomcatの=> OK

これはApacheの問題(?)のようです。

ソリューション:私はそれを持っている

:) Grailsの* .gsp-テンプレートは、常に要求に 'favicon.icoを' を要求しました。 静的コンテンツ(htmlファイルなど)にエラーが表示されたのは、Grails-Applicationのリソースにリダイレクトするためです。

だから私は右の場所でのfavicon.icoを入れてきた、そして今では動作します:)

このエラーは、ちょうどそれが何の問題もなく働いたFFとIEには、Google Chromeに関するものです。

+0

あなたの質問と解決策は、多国籍企業の開発者やエンジニアのグループが実際に数ヶ月間発生していた生産上の問題を解決するのに役立ちました。ありがとうございました。 – rubynorails

答えて

6

この問題も発生しました。何が起こっていたのか(Wiresharkで嗅ぐことを含む)、さらに実行可能な解決策を見つけるのにさらに時間がかかりました。 最後にこのスレッドが見つかりましたhttps://vaadin.com/forum/-/message_boards/view_message/1216366

これはChrome/Safari(Webkitブラウザ)の問題とリダイレクトされたCookieの処理方法に問題があることを示しています。 簡単な修正は

<?xml version='1.0' encoding='utf-8'?> 
<Context sessionCookiePathUsesTrailingSlash='false'> 
</Context> 

を含むし、新しいwarファイルを再デプロイ、私の春のプロジェクトで、META-INFディレクトリへのcontext.xmlを追加しました。今はすべてが意図どおりに機能しています。

+0

良いソリューション、投稿していただきありがとうございます! :-) – Beastcraft

+0

しかし、投稿した直後に突然私の仕事が止まったことを認めなければなりません。 tisのような継ぎ目が修正の一部であり、もう1つはJkmountをProxyPassとProxyPassReverseで置き換えることでした。 私はこれらの変更を行ったので、それは本当にうまく動作します – Marqs

+0

はい、私はまた良いとクリーンなソリューションのためのいくつかの手順があると思います。 P – Beastcraft

関連する問題