cdn 驗證碼失效

這是一個由servlet訪問url命令引起的bug,我們圖片驗證碼的實現方式是採用servlet的方式生成驗證碼圖片,然後將驗證碼存儲在Session裏面,當用戶登錄驗證時,會獲取當前session中的驗證碼來驗證。
這種實現方式一直都很正常,當我們添加上cdn之後就出錯了,通過查找bug我們發是由於訪問生成圖片驗證碼的servlet時sessionId沒有傳遞過來,導致這個時候驗證碼會存儲在新的Session裏面,從而導致驗證錯誤。
爲什麼這個時候沒有傳遞過來SessionId呢,加了CDN就出錯了,這個問題肯定是CDN引起的,CDN可以緩存加速,比如對一些圖片和文本。訪問圖片驗證碼時沒有傳遞SessionId,這個時候考慮可能的原因就是圖片緩存,查看圖片驗證碼Servlet的訪問URL命名,居然是採用.jpg後綴的,這樣CDN會認爲這個是一個靜態圖片,從而會導致SessionId丟失。
修改Servlet的訪問URL,去掉.jpg的後綴,重啓服務後,一切正常。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章