我们在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;
}
}
答案 0 :(得分:0)
我修复了它,但没有通过nginx配置修复。
我已将此代码添加到auth controller的登录操作中:
HttpSession session = request.getSession(false);
if (session!=null && !session.isNew()) {
session.invalidate();
}
当我的请求通过nginx时,我真的不知道为什么会出现这个问题。 但这是今天的修补程序。