【问题标题】:Redirect with jsessionid path parameter results in 404 error使用 jsessionid 路径参数重定向会导致 404 错误
【发布时间】:2012-08-15 19:55:09
【问题描述】:

自从迁移到新服务器后,我们在登录 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。

谢谢 西蒙

【问题讨论】:

  • 同时我发现这是 Tomcat 6.0.33 中引入的错误修复,它现在传递 Request.getRequestURI() 中的路径参数。我仍然不确定如何处理这种“增强”,即在哪里过滤掉 jsessionid。

标签: tomcat jsessionid


【解决方案1】:

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

(从 Tomcat 6.0.33 开始,路径参数在 Request.getRequestURI() 中返回。这被视为一个错误修复。)

【讨论】:

    猜你喜欢
    • 2021-12-23
    • 1970-01-01
    • 2013-09-12
    • 2020-12-17
    • 1970-01-01
    • 2019-01-17
    • 1970-01-01
    • 2019-05-30
    • 1970-01-01
    相关资源
    最近更新 更多