2012-08-03 502 views
0

由於移至新服務器,因此登錄Web應用程序時出現404錯誤。我們使用Spring的Acegi進行身份驗證,以及HTTP流是相當典型:重定向jsessionid路徑參數導致404錯誤

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

感謝 西蒙

+0

在此期間,我發現這是引入了bug修復Tomcat 6.0.33現在傳遞Request.getRequestURI()中的路徑參數。我仍然不確定如何處理這個「增強」,即在哪裏過濾jsessionid。 – Simon 2012-08-13 18:40:29

回答