Java Cookie策略ACCEPT_ORIGINAL_SERVER拒绝Cookie



我正试图弄清楚特定cookie何时设置,并根据其新值更新某些内容。我正试图通过实现我自己的cookie策略来做到这一点

我的问题涉及HttpCookie.domainMatches方法。

当我使用CookyPolicy.ACCEPT_ORIGINAL_SERVER策略时,它会拒绝几个cookie。

Cookie的域为"主机名"(即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?(可能发生在多个连接中),或者有其他方法来解析主机名吗?

谢谢!

如果您希望cookie策略接受所有cookie,则需要使用预定义的cookie策略:

CookiePolicy.ACCEPT_ALL

示例:

CookieManager myCustomCookieManager = new CookieManager(null, CookiePolicy.ACCEPT_ALL);

myCustomCookieManager.setCookiePolicy(CookiePolicy.ACCEPT_ALL);

最新更新