1

Tomcat でGrailsアプリケーションを実行しています。80ポートへのすべてのリクエストは、 Nginxによって8080にリダイレクトされます。アプリのセキュリティのために、Spring Securityを使用します。

問題は、ユーザーがアプリケーションに正常にログインすると、別のページにリダイレクトする必要がありますが、リダイレクトされないことです。

Chrome ブラウザでは何も起こらず、Firefox ページでは「破損したコンテンツ エラー」が表示されます。

ポート 8080 でアプリケーションに直接アクセスする場合は問題ありません。jsessionid を使用して手動で Cookie を削除すると問題も消えますが、最初のリダイレクト後に再び表示され、問題は同じ場所にあります。

nginx 設定:

 server {
    limit_conn addr 10;
    listen externalIp:80;
    server_name serverName;
    root /var/ut/;

    location / {
            proxy_pass http://127.0.0.1:8080/;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass_header Set-Cookie;
            proxy_pass_header P3P;
    }

}
4

1 に答える 1

0

私はそれを修正しましたが、nginx の設定によるものではありません。

このコードを認証コントローラーのログイン アクションに追加しました。

    HttpSession session = request.getSession(false);
    if (session!=null && !session.isNew()) {
        session.invalidate();
    }

私のリクエストがnginxを通過するときに、なぜこの問題が存在するのか、私にはよくわかりません。しかし、これは今日のホットフィックスです。

于 2013-08-07T05:15:31.443 に答える