我想知道如何使用Spring Security來實現無緩存功能。也就是說,當用戶註銷應用程序時,他/她總是可以使用瀏覽器後退按鈕訪問前一頁。使用Spring Security實現無緩存
我想防止這種行爲,並向用戶顯示頁面過期的消息,並要求他重新登錄。
我如何使用Spring安全性來實現這一點。
我想知道如何使用Spring Security來實現無緩存功能。也就是說,當用戶註銷應用程序時,他/她總是可以使用瀏覽器後退按鈕訪問前一頁。使用Spring Security實現無緩存
我想防止這種行爲,並向用戶顯示頁面過期的消息,並要求他重新登錄。
我如何使用Spring安全性來實現這一點。
如果用戶在瀏覽器中點擊後退按鈕,它可能會返回到本地瀏覽器緩存中的頁面,而不會對網站執行新的請求。
您將能夠執行所需功能的唯一方法是,如果您在每個頁面上發送ajax請求,則必須查看用戶會話是否仍然有效。然而,當用戶在他或她的瀏覽器中關閉javascript時,該方法失效。
我不認爲頁面緩存是應用程序安全的責任。
如果您的應用程序需要防止在使用後退按鈕時顯示緩存頁面,則您的應用程序必須在其響應中發送no-cache標頭,如下所示。
如果使用了這些,那麼當使用後退按鈕時,瀏覽器將再次請求頁面,並使用spring security login config和access denied config。
HTTP標頭:
response.addHeader("Pragma", "no-cache");
response.addHeader("Cache-Control", "no-cache");
response.addHeader("Cache-Control", "no-store");
response.addHeader("Cache-Control", "must-revalidate");
// expires on some date in the past
response.addHeader("Expires", "Mon, 8 Aug 2006 10:00:00 GMT");
是的,我在我的過濾器中添加了上述標題,但仍然可以導航到上一頁。 :( – Vivek 2012-02-06 09:33:27
)您是否清除瀏覽器緩存?也許這些是來自同一個URL的緩存頁面,然後再設置這些頭文件? – 2012-02-23 17:04:51
如果您在添加這些頭後添加spring-security到URL中,回到服務器,然後加以保護,標題不阻止用戶回到上一頁,它只是防止從瀏覽器緩存中顯示頁面。 – 2012-02-23 17:06:25
是的,我明白了這個功能。但是,考慮到用戶在瀏覽器中轉動javascript的情況,這會失敗。 有沒有其他的方法來阻止用戶這樣做。 – Vivek 2012-02-03 10:11:07
除了始終在頁面加載時使用javascript/ajax動態加載內容以外,我不認爲有這樣的解決方案。 – 2012-02-03 10:16:19