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