一次cookie引起系統不斷要求重新登入問題分析

2022-08-02 03:12:09 字數 1356 閱讀 8627

我們的產品裡有一配置服務(tomcat),採用ajax來通訊互動

但是最近頻頻發現登入後馬上彈出要重新登入的情況,一開始以為是cookie沒有帶上導致session找不到,後來問題依舊,檢視瀏覽器cookie,竟然發現我們的配置服務web站點上有3個cookie, 而且path不一樣,乙個path是/跟路徑,另外兩個是/conf/ajax1, /conf/ajax2,而且裡面的cookie值jsessionid不一樣

why?

我們從開始登入覆盤一下,剛開始登入後產生/跟的cookie,這點沒問題,但是path 的/conf/ajax1,/conf/ajax2 cookie是如何產生的?當我們的session超時過期後,再嘗試直接去訪問/conf/ajax1/a就產生path為/conf/ajax1的cookie了,但是我們同時也發現/跟的cookie的sessionid也被重置了,why?我們看了看單獨訪問/conf/ajax1/a介面的時候的response header , 竟然有2個set-cookie

第二個set-cookie的path就是當前訪問url目錄的路徑/conf/ajax1

tomcat自身會返回乙個set-cookie:jsessionid=2c1c994beaf199ea12dde5585da2f6ce, 但第乙個set-cookie是如何產生的,翻看我們的**果然有response.addcookie(cookie),原來是這裡導致了多個cookie

我們再用另外一種方式來模擬覆盤一下之前的問題,先清空cookie, 直接瀏覽器訪問/conf/ajax1/a 介面,產生 path為/ , /conf/ajax1 兩個cookie, 然後刪除path 為/ 的cookie, 再瀏覽器裡直接訪問 /conf/ajax2/a 介面,又新產生了/和 /conf/ajax2兩個cookie,加上之前的/conf/ajax1

一共3個cookie

補充:如果我們先直接瀏覽器訪問/conf/ajax1/a 介面,產生 path為/ , /conf/ajax1 兩個cookie後,又直接訪問/conf/ajax2/a 會不會產生/conf/ajax2 的cookie了?答案是不會, 因為訪問乙個位址的時候,瀏覽器會檢視是否有這個位址所包含的path的cookie,如果有就攜帶,我們這裡訪問/conf/ajax2/a

位址包含了/ ,所以跟path的cookie會被攜帶, 如果我們訪問的是/conf/ajax1/xx/b 這個位址,因為包含了/和/conf/ajax1 兩個path, 所以這兩個cookie都會被攜帶。

我要試一次

剛看了 蘆葦的思考 http crazelionking.blogdriver.com crazelionking index.html 裡的 行動起來吧 翻出劉韌的 我要試一次 我忘記和缺少的東西越來越多,有激情有夢想.貼出 我要試一次 我要試一次 劉韌我在18歲的時候,愛上乙個姑娘,她是我高中的...

一次因NAS儲存故障引起的Linux系統恢復案例

nas作業系統核心為linux,自帶的儲存有16塊硬碟,總共分兩組,每組做了raid5,linux作業系統無法正常啟動,在服務啟動到cups那裡就停止了,按鍵ctrl c強制斷開也沒有響應,檢視硬碟狀態,都是正常的,沒有報警或者警告現象。1 第一次處理過程 nas系統本身就是乙個linux核心裝載了...

一次因NAS儲存故障引起的Linux系統恢復案例

nas作業系統核心為linux,自帶的儲存有16塊硬碟,總共分兩組,每組做了raid5,linux作業系統無法正常啟動,在服務啟動到cups那裡就停止了,按鍵ctrl c強制斷開也沒有響應,檢視硬碟狀態,都是正常的,沒有報警或者警告現象。1 第一次處理過程 nas系統本身就是乙個linux核心裝載了...