使用Tomcat8.5以上版本,啓動時報錯An invalid domain [*] was specified for this cookie

1,原因分析
項目運行在Tomcat 8.5.30以上啓動報出
An invalid domain [] was specified for this cookie,報錯行:在某個filter中設置頂層域名cookie,原因:該Tomcat版本下域名驗證的時候錯誤了,不符合Tomcat 8.5.30以上的驗證規則
在這裏插入圖片描述

原因是:tomcat8.5以上版本默認使用的是Rfc6265CookieProcessor實現的,而tomcat8.0以下版本是LegacyCookieProcessor

rfc6265中域屬性規則:

(1)必須是1-9、a-z、A-Z、. 、- (注意是-不是_)這幾個字符組成

(2)必須是數字或字母開頭 (所以以前的cookie的設置爲.XX.com 的機制要改爲 XX.com 即可)

(3)必須是數字或字母結尾

2,解決方案

 修改Tomcat目錄下的/conf/content.xml 文件,增加一行代碼,
 <CookieProcessor className="org.apache.tomcat.util.http.LegacyCookieProcessor" />  

在這裏插入圖片描述
修改好後,重啓Tomcat即可。

延伸問題:不同版本的Rfc6265CookieProcessor的解析域名規則也不同,見:https://blog.csdn.net/kuyuyingzi/article/details/83387253

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