使用jsessionid路径参数重定向会导致404错误

时间:2012-08-03 06:55:39

标签: tomcat jsessionid

自从迁移到新服务器后,我们在登录Web应用程序时遇到404错误。我们使用Spring Acegi进行身份验证,而HTTP流非常典型:

Request:
GET /dev/secure/umblogin?j_username=myuer&j_password=XXXX&j_client=1

Response:
HTTP/1.1 302 Moved Temporarily
Set-Cookie: JSESSIONID=3DABF165D2E18094632EA1478EF67D8E; Path=/dev
Location: http://hurricane.umbrellanet.ch/dev/secure/umbrellanet.go;jsessionid=3DABF165D2E18094632EA1478EF67D8E

Request:
GET /dev/login.go;jsessionid=DA122287727B72CD3F1B77DBD799531F

Response:
HTTP/1.1 404 Not Found

原因在于路径参数'; jsessionid = ..',其中分号被编码为%3b,然后服务器无法找到

/dev/login.go%3bjsessionid=DA122287727B72CD3F1B77DBD799531F

我确定这不是一个不常见的问题,但我没有找到任何好的谷歌点击。我们使用的是Apache Tomcat / 6.0.35,浏览器是IE 9。

由于 西蒙

1 个答案:

答案 0 :(得分:0)

这基本上是Is it possible to disable jsessionid in tomcat servlet?的副本。

(自Tomcat 6.0.33起,在Request.getRequestURI()上返回路径参数。这被视为错误修复。)