我正在創建一個域名爲的Java過濾器test.example.com,它將根據名稱刪除某些cookie(禁止的cookie名稱列表存儲在過濾器的init配置)。使用Java篩選器從子域中刪除基礎域Cookie
現在,我的Cookie來自其他網站,其域名屬性設置爲.example.com。其中一些Cookie需要被我正在開發的過濾器阻止/刪除。
我已閱讀在線文章,其中包括一些與cookie域匹配相關的stackoverflow帖子。我很確定這些具有域屬性.example.com的cookie應該可以從子域test.example.com訪問。事實上,使用調試我可以驗證是否能夠訪問這些cookie。但是,在調用setMaxAge(0)
並通過addCookie
將其添加回響應中時,我遇到問題。事實證明,Cookie正在被複制,而不是被刪除。
不知是否是以往任何時候都可能與域屬性.example.com的(基本域)從test.example.com(子域)刪除的cookie。或者只有當我從基本域執行我的Java過濾器時纔可能刪除cookie - 這是example.com?
這裏是我的代碼片段:
if (cookieBlockList != null) {
Cookie[] cookies = httpRequest.getCookies();
for (int i=0; i < cookies.length; i++) {
String cookieName = cookies[i].getName();
for(int j=0; j < cookieBlockList.length; j++) {
if (cookieName.equalsIgnoreCase(cookieBlockList[j])) {
Cookie cookie = new Cookie(cookieName, "");
cookie.setMaxAge(0);
httpResponse.addCookie(cookies[i]);
}
}
}
}
filterChain.doFilter(request, response);
將嘗試這一項。謝謝 – Ish