在使用spring boot oauth2實現登錄時,有時會出現登錄成功後跳轉地址爲 http://localhost:8080/performance-now.js.map 這樣的情況。
使用fiddler進行抓包分析後情況如下圖
發現在加載完登錄頁後會自動發送一條 http://localhost:8080/performance-now.js.map 這樣的請求到服務端,由於此時session都爲同一個導致HttpSessionRequestCache緩存時將原來的重定向地址覆蓋爲後面請求的地址。然後登錄成功後獲取到的地址就是之後的地址,從而導致重定向地址錯誤。
關於這條請求的來源,經過幾次測試後發現只有在打開瀏覽器devtools時纔會出現。具體可以搜索 performance 查看相關原因。
知道原因後解決方法就比較簡單類。 自定義RequestCache實現相關的存取邏輯然後替換當前的配置即可處理這個問題。
http.requestCache()
.requestCache(new MyRequestCache());