session失效之後重新登錄,點擊失效之前的菜單依舊返回登錄頁面

框架是SpringMVC+Spring-security+freemarker


錯誤分析:正常來說,session失效的時候服務器後臺會將失效的sessionId發送給前端的瀏覽器並作爲cookie存儲起來,這樣cookie也會馬上失效。但是發生以上的問題

經過日誌跟蹤發現session失效的時候,產生了一個未知的cookie,這個cookie並不是由服務器端傳到瀏覽器的,這樣就導致session失效了,但是點擊失效鏈接產生的cookie卻不生效,只有清除瀏覽器緩存或者關閉瀏覽器纔會失效,所以導致瞭如標題所述的問題。


解決方法:在web.xml中我配置的servlet-mapping爲:

     <servlet-mapping>
        <servlet-name>springMVC</servlet-name>
        <url-pattern>/ps-admin-nimitz/*</url-pattern><!-- 注意這裏就是URL攔截配置 -->
    </servlet-mapping>

由於我的一級菜單比較多,所以我的URL並不是直接用   /ps-admin-nimitz/hello.do,而是在ps-admin-nimitz和hello.do之間加了一個一級菜單的名稱,例如 /ps-admin-nimitz/consumer/hello.do,經過驗證就是由於加了這個consumer導致了以上的問題,所以去掉consumer即可。


發佈了97 篇原創文章 · 獲贊 14 · 訪問量 16萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章