クロムの問題に続いて...:
サーバー上で Grails 1.3.7 アプリケーションを実行しています。Chrome から静的コンテンツ (非動的 HTML ファイルなど) をリクエストすると、Chrome は 2 つの JSESSIONID-Cookie を作成することに気付きました。ログインウィンドウが表示されたときの最初のものと、ログインが成功した後の2番目のもの。ページを更新したり、別のリソースをリクエストしたりしたい場合は、再度ログインする必要があります。(Tomcat がこれら 2 つの Cookie を理解していないためだと思います)
FFで試してみましたが、FFはCookieを1つ作成するだけで、完全に機能します。また、アプリをローカルで実行しましたが、Chrome でも完全に動作します。したがって、tomecat の何かが間違っているに違いありません。
環境:
- Grails-Application 1.3.7 (Spring-Security-Core 1.2.4 を使用)
- Apache Tomcat 7 (Windows Server 2008 上)
私のhttpd.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:
アプリを再ビルドして再デプロイし、Tomcat を再起動しました。
今気付きました: Chrome はもう 2 つの Cookie を生成しません。しかし、エラーは同じです。何かを更新または要求するたびに、JSESSIONID が変更され、再度ログインする必要があります。
tomcat-server を短時間見ると、大量のアクティブなセッションが表示されます - Chrome からのセッション...
更新 2:
サーバー上でローカルに試しました(クロムを使用):
- localhost/myApp/frontend => Apache => 失敗
- localhost:8080/myApp/frontend => Tomcat => OK
Apache が問題のようです (?)。
解決:
私はそれを手に入れました:) Grails *.gsp-Templatesは、リクエストごとに常に「favicon.ico」をリクエストしました。エラーが静的コンテンツ (html ファイルなど) に表示される理由は、Grails アプリケーションからそれらのリソースにリダイレクトするためです。
だから私は favicon.ico を正しい場所に置きました、そして今それは動作します:)
このエラーは Google Chrome に関するもので、FF と IE では問題なく動作しました。