通过nginx时,请求不会被重定向

时间:2013-08-06 05:53:12

标签: java grails nginx spring-security

我们在Tomcat上运行 Grails 应用程序。所有对 80 端口的请求都会被 Nginx 重定向到 8080 。 为了我们的应用程序的安全性,我们使用 Spring Security

所以问题是:当用户成功登录应用程序时,必须将其重定向到另一个页面,但不会发生。

在Chrome浏览器中没有任何反应,在Firefox页面中显示“Corrupted Content Error”。

当我们直接访问端口8080上的应用程序时,

没有问题。 当我用jsessionid手动删除cookie时问题也消失了,但是在第一次重定向后它再次出现并且问题出现在同一个地方。

nginx conf:

 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;
    }

}

1 个答案:

答案 0 :(得分:0)

我修复了它,但没有通过nginx配置修复。

我已将此代码添加到auth controller的登录操作中:

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

当我的请求通过nginx时,我真的不知道为什么会出现这个问题。 但这是今天的修补程序。