場景描述:Https下登錄頁面,首先驗證碼存入cookie,用戶輸入驗證碼然后與cookie中的驗證碼對比,但是在服務端獲取不到cookie,request.getCookies()為null;
過程分析:
查找后發現如果將瀏覽器Cookie清空,可以獲取Cookie,於是用工具查看cookie的信息,發現maxage失效,原因分析:第一次產生cookie是在https下,第二次由http-https后,cookie跨域了,maxAge失效
解決方案:在產生cookie的代碼中始終new Cookie;
即在創建cookie的代碼中去除判空,原先:
if(iCookie==null){
iCookie = new Cookie("captcha", cookieValue);
}else {
iCookie.setValue(cookieValue);
}
改為:
iCookie = new Cookie("captcha", cookieValue);