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

标签 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。

谢谢 西蒙

最佳答案

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

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

关于tomcat - 使用 jsessionid 路径参数重定向导致 404 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11790756/

相关文章:

java - 计数值显示在 apache-tomcat 上

java - Tomcat 7 创建多个 session

redirect - 301 为 Facelets 中的 SEO 重定向 jsessionid 链接?

java - Java 中的 Web 服务

java - 启动现代编译器时出错

kubernetes - 如何使用容器为具有(长期)粘性 session 的应用程序进行零停机滚动更新

spring - 注销会在浏览器上留下 JSESSIONID。如何清除它?

java - Spring Boot 为嵌入式服务器配置自定义 jsessionid

java - 在logging.properties中自定义catalina日志路径

java - Tomcat 抛出 java.lang.IndexOutOfBoundsException