0
我試圖弄清楚什麼時候設置了一個特定的cookie,並根據它的新值更新了一些東西。我試圖通過實施我自己的Cookie政策來實現這一點Java CookiePolicy ACCEPT_ORIGINAL_SERVER拒絕Cookie
我在HttpCookie.domainMatches方法中遇到了問題。
當我使用CookiPolicy.ACCEPT_ORIGINAL_SERVER策略時,它會拒絕多個Cookie。
Cookie具有「HostName」域(即machineName123)。這顯然是一個無效的域名。
我應該在服務器端明確設置域名嗎?
如果我能利用InetAddress的CanonicalHostName,我只是得到一個IP地址...
例如:
CookieHandler.setDefault(new CookieManager(null, new CookiePolicy() {
@Override
public boolean shouldAccept(java.net.URI uri, final java.net.HttpCookie cookie) {
if(CookiePolicy.ACCEPT_ORIGINAL_SERVER.shouldAccept(uri, cookie)) {
//custom code here
}
System.out.println("Accepting cookie uri Host: " + uri.getHost() + " name:" + cookie.getName() + " value: " + cookie.getValue() + " domain: " + cookie.getDomain() + " path: " + cookie.getPath());
System.out.println("Domain matches uri: " + HttpCookie.domainMatches(cookie.getDomain(), uri.getHost()));
return true;
}
System.out.println("Rejecting cookie uri Host: " + uri.getHost() + " name:" + cookie.getName() + " value: " + cookie.getValue() + " domain: " + cookie.getDomain() + " path: " + cookie.getPath());
System.out.println("Domain matches uri: " + HttpCookie.domainMatches(cookie.getDomain(), uri.getHost()));
return false;
};
}));
有另一種方式來確定當一個特定的Cookie會設置? (它可能發生在多個連接上),還是有另一種方式解析主機名?
謝謝!
不幸的是,並非所有的cookies應該被接受。我最終使用ORIGINAL_SERVER策略並使用一些特殊規則來識別不是「正確」域的計算機名稱 – user1649803 2015-04-13 17:34:39