Java 类org.apache.http.cookie.CookieRestrictionViolationException 实例源码

项目:lams    文件:RFC2965PortAttributeHandler.java   
/**
 * Validate cookie port attribute. If the Port attribute was specified
 * in header, the request port must be in cookie's port list.
 */
public void validate(final Cookie cookie, final CookieOrigin origin)
        throws MalformedCookieException {
    if (cookie == null) {
        throw new IllegalArgumentException("Cookie may not be null");
    }
    if (origin == null) {
        throw new IllegalArgumentException("Cookie origin may not be null");
    }
    int port = origin.getPort();
    if (cookie instanceof ClientCookie
            && ((ClientCookie) cookie).containsAttribute(ClientCookie.PORT_ATTR)) {
        if (!portMatch(port, cookie.getPorts())) {
            throw new CookieRestrictionViolationException(
                    "Port attribute violates RFC 2965: "
                    + "Request port not found in cookie's port list.");
        }
    }
}
项目:lams    文件:NetscapeDomainHandler.java   
@Override
public void validate(final Cookie cookie, final CookieOrigin origin)
        throws MalformedCookieException {
    super.validate(cookie, origin);
    // Perform Netscape Cookie draft specific validation
    String host = origin.getHost();
    String domain = cookie.getDomain();
    if (host.contains(".")) {
        int domainParts = new StringTokenizer(domain, ".").countTokens();

        if (isSpecialDomain(domain)) {
            if (domainParts < 2) {
                throw new CookieRestrictionViolationException("Domain attribute \""
                    + domain
                    + "\" violates the Netscape cookie specification for "
                    + "special domains");
            }
        } else {
            if (domainParts < 3) {
                throw new CookieRestrictionViolationException("Domain attribute \""
                    + domain
                    + "\" violates the Netscape cookie specification");
            }
        }
    }
}
项目:remote-files-sync    文件:NetscapeDomainHandlerHC4.java   
@Override
public void validate(final Cookie cookie, final CookieOrigin origin)
        throws MalformedCookieException {
    super.validate(cookie, origin);
    // Perform Netscape Cookie draft specific validation
    final String host = origin.getHost();
    final String domain = cookie.getDomain();
    if (host.contains(".")) {
        final int domainParts = new StringTokenizer(domain, ".").countTokens();

        if (isSpecialDomain(domain)) {
            if (domainParts < 2) {
                throw new CookieRestrictionViolationException("Domain attribute \""
                    + domain
                    + "\" violates the Netscape cookie specification for "
                    + "special domains");
            }
        } else {
            if (domainParts < 3) {
                throw new CookieRestrictionViolationException("Domain attribute \""
                    + domain
                    + "\" violates the Netscape cookie specification");
            }
        }
    }
}
项目:purecloud-iot    文件:RFC2965PortAttributeHandler.java   
/**
 * Validate cookie port attribute. If the Port attribute was specified
 * in header, the request port must be in cookie's port list.
 */
@Override
public void validate(final Cookie cookie, final CookieOrigin origin)
        throws MalformedCookieException {
    Args.notNull(cookie, "Cookie");
    Args.notNull(origin, "Cookie origin");
    final int port = origin.getPort();
    if (cookie instanceof ClientCookie
            && ((ClientCookie) cookie).containsAttribute(ClientCookie.PORT_ATTR)) {
        if (!portMatch(port, cookie.getPorts())) {
            throw new CookieRestrictionViolationException(
                    "Port attribute violates RFC 2965: "
                    + "Request port not found in cookie's port list.");
        }
    }
}
项目:purecloud-iot    文件:BasicDomainHandler.java   
@Override
public void validate(final Cookie cookie, final CookieOrigin origin)
        throws MalformedCookieException {
    Args.notNull(cookie, "Cookie");
    Args.notNull(origin, "Cookie origin");
    // Validate the cookies domain attribute.  NOTE:  Domains without
    // any dots are allowed to support hosts on private LANs that don't
    // have DNS names.  Since they have no dots, to domain-match the
    // request-host and domain must be identical for the cookie to sent
    // back to the origin-server.
    final String host = origin.getHost();
    final String domain = cookie.getDomain();
    if (domain == null) {
        throw new CookieRestrictionViolationException("Cookie 'domain' may not be null");
    }
    if (!host.equals(domain) && !domainMatch(domain, host)) {
        throw new CookieRestrictionViolationException(
                "Illegal 'domain' attribute \"" + domain + "\". Domain of origin: \"" + host + "\"");
    }
}
项目:Visit    文件:NetscapeDomainHandlerHC4.java   
@Override
public void validate(final Cookie cookie, final CookieOrigin origin)
        throws MalformedCookieException {
    super.validate(cookie, origin);
    // Perform Netscape Cookie draft specific validation
    final String host = origin.getHost();
    final String domain = cookie.getDomain();
    if (host.contains(".")) {
        final int domainParts = new StringTokenizer(domain, ".").countTokens();

        if (isSpecialDomain(domain)) {
            if (domainParts < 2) {
                throw new CookieRestrictionViolationException("Domain attribute \""
                    + domain
                    + "\" violates the Netscape cookie specification for "
                    + "special domains");
            }
        } else {
            if (domainParts < 3) {
                throw new CookieRestrictionViolationException("Domain attribute \""
                    + domain
                    + "\" violates the Netscape cookie specification");
            }
        }
    }
}
项目:ZTLib    文件:NetscapeDomainHandlerHC4.java   
@Override
public void validate(final Cookie cookie, final CookieOrigin origin)
        throws MalformedCookieException {
    super.validate(cookie, origin);
    // Perform Netscape Cookie draft specific validation
    final String host = origin.getHost();
    final String domain = cookie.getDomain();
    if (host.contains(".")) {
        final int domainParts = new StringTokenizer(domain, ".").countTokens();

        if (isSpecialDomain(domain)) {
            if (domainParts < 2) {
                throw new CookieRestrictionViolationException("Domain attribute \""
                    + domain
                    + "\" violates the Netscape cookie specification for "
                    + "special domains");
            }
        } else {
            if (domainParts < 3) {
                throw new CookieRestrictionViolationException("Domain attribute \""
                    + domain
                    + "\" violates the Netscape cookie specification");
            }
        }
    }
}
项目:lams    文件:BasicPathHandler.java   
public void validate(final Cookie cookie, final CookieOrigin origin)
        throws MalformedCookieException {
    if (!match(cookie, origin)) {
        throw new CookieRestrictionViolationException(
            "Illegal path attribute \"" + cookie.getPath()
            + "\". Path of origin: \"" + origin.getPath() + "\"");
    }
}
项目:lams    文件:RFC2965VersionAttributeHandler.java   
/**
 * validate cookie version attribute. Version attribute is REQUIRED.
 */
public void validate(final Cookie cookie, final CookieOrigin origin)
        throws MalformedCookieException {
    if (cookie == null) {
        throw new IllegalArgumentException("Cookie may not be null");
    }
    if (cookie instanceof SetCookie2) {
        if (cookie instanceof ClientCookie
                && !((ClientCookie) cookie).containsAttribute(ClientCookie.VERSION_ATTR)) {
            throw new CookieRestrictionViolationException(
                    "Violates RFC 2965. Version attribute is required.");
        }
    }
}
项目:lams    文件:RFC2109VersionHandler.java   
@Override
public void validate(final Cookie cookie, final CookieOrigin origin)
        throws MalformedCookieException {
    if (cookie == null) {
        throw new IllegalArgumentException("Cookie may not be null");
    }
    if (cookie.getVersion() < 0) {
        throw new CookieRestrictionViolationException("Cookie version may not be negative");
    }
}
项目:lams    文件:RFC2109Spec.java   
@Override
public void validate(final Cookie cookie, final CookieOrigin origin)
        throws MalformedCookieException {
    if (cookie == null) {
        throw new IllegalArgumentException("Cookie may not be null");
    }
    String name = cookie.getName();
    if (name.indexOf(' ') != -1) {
        throw new CookieRestrictionViolationException("Cookie name may not contain blanks");
    }
    if (name.startsWith("$")) {
        throw new CookieRestrictionViolationException("Cookie name may not start with $");
    }
    super.validate(cookie, origin);
}
项目:remote-files-sync    文件:RFC2965PortAttributeHandlerHC4.java   
/**
 * Validate cookie port attribute. If the Port attribute was specified
 * in header, the request port must be in cookie's port list.
 */
public void validate(final Cookie cookie, final CookieOrigin origin)
        throws MalformedCookieException {
    Args.notNull(cookie, "Cookie");
    Args.notNull(origin, "Cookie origin");
    final int port = origin.getPort();
    if (cookie instanceof ClientCookie
            && ((ClientCookie) cookie).containsAttribute(ClientCookie.PORT_ATTR)) {
        if (!portMatch(port, cookie.getPorts())) {
            throw new CookieRestrictionViolationException(
                    "Port attribute violates RFC 2965: "
                    + "Request port not found in cookie's port list.");
        }
    }
}
项目:remote-files-sync    文件:RFC2965VersionAttributeHandlerHC4.java   
/**
 * validate cookie version attribute. Version attribute is REQUIRED.
 */
public void validate(final Cookie cookie, final CookieOrigin origin)
        throws MalformedCookieException {
    Args.notNull(cookie, "Cookie");
    if (cookie instanceof SetCookie2) {
        if (cookie instanceof ClientCookie
                && !((ClientCookie) cookie).containsAttribute(ClientCookie.VERSION_ATTR)) {
            throw new CookieRestrictionViolationException(
                    "Violates RFC 2965. Version attribute is required.");
        }
    }
}
项目:remote-files-sync    文件:BasicDomainHandlerHC4.java   
public void validate(final Cookie cookie, final CookieOrigin origin)
        throws MalformedCookieException {
    Args.notNull(cookie, "Cookie");
    Args.notNull(origin, "Cookie origin");
    // Validate the cookies domain attribute.  NOTE:  Domains without
    // any dots are allowed to support hosts on private LANs that don't
    // have DNS names.  Since they have no dots, to domain-match the
    // request-host and domain must be identical for the cookie to sent
    // back to the origin-server.
    final String host = origin.getHost();
    String domain = cookie.getDomain();
    if (domain == null) {
        throw new CookieRestrictionViolationException("Cookie domain may not be null");
    }
    if (host.contains(".")) {
        // Not required to have at least two dots.  RFC 2965.
        // A Set-Cookie2 with Domain=ajax.com will be accepted.

        // domain must match host
        if (!host.endsWith(domain)) {
            if (domain.startsWith(".")) {
                domain = domain.substring(1, domain.length());
            }
            if (!host.equals(domain)) {
                throw new CookieRestrictionViolationException(
                    "Illegal domain attribute \"" + domain
                    + "\". Domain of origin: \"" + host + "\"");
            }
        }
    } else {
        if (!host.equals(domain)) {
            throw new CookieRestrictionViolationException(
                "Illegal domain attribute \"" + domain
                + "\". Domain of origin: \"" + host + "\"");
        }
    }
}
项目:remote-files-sync    文件:RFC2109VersionHandlerHC4.java   
@Override
public void validate(final Cookie cookie, final CookieOrigin origin)
        throws MalformedCookieException {
    Args.notNull(cookie, "Cookie");
    if (cookie.getVersion() < 0) {
        throw new CookieRestrictionViolationException("Cookie version may not be negative");
    }
}
项目:remote-files-sync    文件:RFC2109SpecHC4.java   
@Override
public void validate(final Cookie cookie, final CookieOrigin origin)
        throws MalformedCookieException {
    Args.notNull(cookie, "Cookie");
    final String name = cookie.getName();
    if (name.indexOf(' ') != -1) {
        throw new CookieRestrictionViolationException("Cookie name may not contain blanks");
    }
    if (name.startsWith("$")) {
        throw new CookieRestrictionViolationException("Cookie name may not start with $");
    }
    super.validate(cookie, origin);
}
项目:remote-files-sync    文件:BasicPathHandlerHC4.java   
public void validate(final Cookie cookie, final CookieOrigin origin)
        throws MalformedCookieException {
    if (!match(cookie, origin)) {
        throw new CookieRestrictionViolationException(
            "Illegal path attribute \"" + cookie.getPath()
            + "\". Path of origin: \"" + origin.getPath() + "\"");
    }
}
项目:purecloud-iot    文件:BasicPathHandler.java   
@Override
public void validate(final Cookie cookie, final CookieOrigin origin)
        throws MalformedCookieException {
    if (!match(cookie, origin)) {
        throw new CookieRestrictionViolationException(
            "Illegal 'path' attribute \"" + cookie.getPath()
            + "\". Path of origin: \"" + origin.getPath() + "\"");
    }
}
项目:purecloud-iot    文件:RFC2965VersionAttributeHandler.java   
/**
 * validate cookie version attribute. Version attribute is REQUIRED.
 */
@Override
public void validate(final Cookie cookie, final CookieOrigin origin)
        throws MalformedCookieException {
    Args.notNull(cookie, "Cookie");
    if (cookie instanceof SetCookie2) {
        if (cookie instanceof ClientCookie
                && !((ClientCookie) cookie).containsAttribute(ClientCookie.VERSION_ATTR)) {
            throw new CookieRestrictionViolationException(
                    "Violates RFC 2965. Version attribute is required.");
        }
    }
}
项目:purecloud-iot    文件:RFC2109VersionHandler.java   
@Override
public void validate(final Cookie cookie, final CookieOrigin origin)
        throws MalformedCookieException {
    Args.notNull(cookie, "Cookie");
    if (cookie.getVersion() < 0) {
        throw new CookieRestrictionViolationException("Cookie version may not be negative");
    }
}
项目:purecloud-iot    文件:NetscapeDomainHandler.java   
@Override
public void validate(final Cookie cookie, final CookieOrigin origin)
        throws MalformedCookieException {
    final String host = origin.getHost();
    final String domain = cookie.getDomain();
    if (!host.equals(domain) && !BasicDomainHandler.domainMatch(domain, host)) {
        throw new CookieRestrictionViolationException(
                "Illegal domain attribute \"" + domain + "\". Domain of origin: \"" + host + "\"");
    }
    if (host.contains(".")) {
        final int domainParts = new StringTokenizer(domain, ".").countTokens();

        if (isSpecialDomain(domain)) {
            if (domainParts < 2) {
                throw new CookieRestrictionViolationException("Domain attribute \""
                    + domain
                    + "\" violates the Netscape cookie specification for "
                    + "special domains");
            }
        } else {
            if (domainParts < 3) {
                throw new CookieRestrictionViolationException("Domain attribute \""
                    + domain
                    + "\" violates the Netscape cookie specification");
            }
        }
    }
}
项目:purecloud-iot    文件:RFC2109Spec.java   
@Override
public void validate(final Cookie cookie, final CookieOrigin origin)
        throws MalformedCookieException {
    Args.notNull(cookie, "Cookie");
    final String name = cookie.getName();
    if (name.indexOf(' ') != -1) {
        throw new CookieRestrictionViolationException("Cookie name may not contain blanks");
    }
    if (name.startsWith("$")) {
        throw new CookieRestrictionViolationException("Cookie name may not start with $");
    }
    super.validate(cookie, origin);
}
项目:Visit    文件:RFC2965PortAttributeHandlerHC4.java   
/**
 * Validate cookie port attribute. If the Port attribute was specified
 * in header, the request port must be in cookie's port list.
 */
public void validate(final Cookie cookie, final CookieOrigin origin)
        throws MalformedCookieException {
    Args.notNull(cookie, "Cookie");
    Args.notNull(origin, "Cookie origin");
    final int port = origin.getPort();
    if (cookie instanceof ClientCookie
            && ((ClientCookie) cookie).containsAttribute(ClientCookie.PORT_ATTR)) {
        if (!portMatch(port, cookie.getPorts())) {
            throw new CookieRestrictionViolationException(
                    "Port attribute violates RFC 2965: "
                    + "Request port not found in cookie's port list.");
        }
    }
}
项目:Visit    文件:RFC2965VersionAttributeHandlerHC4.java   
/**
 * validate cookie version attribute. Version attribute is REQUIRED.
 */
public void validate(final Cookie cookie, final CookieOrigin origin)
        throws MalformedCookieException {
    Args.notNull(cookie, "Cookie");
    if (cookie instanceof SetCookie2) {
        if (cookie instanceof ClientCookie
                && !((ClientCookie) cookie).containsAttribute(ClientCookie.VERSION_ATTR)) {
            throw new CookieRestrictionViolationException(
                    "Violates RFC 2965. Version attribute is required.");
        }
    }
}
项目:Visit    文件:BasicDomainHandlerHC4.java   
public void validate(final Cookie cookie, final CookieOrigin origin)
        throws MalformedCookieException {
    Args.notNull(cookie, "Cookie");
    Args.notNull(origin, "Cookie origin");
    // Validate the cookies domain attribute.  NOTE:  Domains without
    // any dots are allowed to support hosts on private LANs that don't
    // have DNS names.  Since they have no dots, to domain-match the
    // request-host and domain must be identical for the cookie to sent
    // back to the origin-server.
    final String host = origin.getHost();
    String domain = cookie.getDomain();
    if (domain == null) {
        throw new CookieRestrictionViolationException("Cookie domain may not be null");
    }
    if (host.contains(".")) {
        // Not required to have at least two dots.  RFC 2965.
        // A Set-Cookie2 with Domain=ajax.com will be accepted.

        // domain must match host
        if (!host.endsWith(domain)) {
            if (domain.startsWith(".")) {
                domain = domain.substring(1, domain.length());
            }
            if (!host.equals(domain)) {
                throw new CookieRestrictionViolationException(
                    "Illegal domain attribute \"" + domain
                    + "\". Domain of origin: \"" + host + "\"");
            }
        }
    } else {
        if (!host.equals(domain)) {
            throw new CookieRestrictionViolationException(
                "Illegal domain attribute \"" + domain
                + "\". Domain of origin: \"" + host + "\"");
        }
    }
}
项目:Visit    文件:RFC2109VersionHandlerHC4.java   
@Override
public void validate(final Cookie cookie, final CookieOrigin origin)
        throws MalformedCookieException {
    Args.notNull(cookie, "Cookie");
    if (cookie.getVersion() < 0) {
        throw new CookieRestrictionViolationException("Cookie version may not be negative");
    }
}
项目:Visit    文件:RFC2109SpecHC4.java   
@Override
public void validate(final Cookie cookie, final CookieOrigin origin)
        throws MalformedCookieException {
    Args.notNull(cookie, "Cookie");
    final String name = cookie.getName();
    if (name.indexOf(' ') != -1) {
        throw new CookieRestrictionViolationException("Cookie name may not contain blanks");
    }
    if (name.startsWith("$")) {
        throw new CookieRestrictionViolationException("Cookie name may not start with $");
    }
    super.validate(cookie, origin);
}
项目:Visit    文件:BasicPathHandlerHC4.java   
public void validate(final Cookie cookie, final CookieOrigin origin)
        throws MalformedCookieException {
    if (!match(cookie, origin)) {
        throw new CookieRestrictionViolationException(
            "Illegal path attribute \"" + cookie.getPath()
            + "\". Path of origin: \"" + origin.getPath() + "\"");
    }
}
项目:ZTLib    文件:RFC2965PortAttributeHandlerHC4.java   
/**
 * Validate cookie port attribute. If the Port attribute was specified
 * in header, the request port must be in cookie's port list.
 */
public void validate(final Cookie cookie, final CookieOrigin origin)
        throws MalformedCookieException {
    Args.notNull(cookie, "Cookie");
    Args.notNull(origin, "Cookie origin");
    final int port = origin.getPort();
    if (cookie instanceof ClientCookie
            && ((ClientCookie) cookie).containsAttribute(ClientCookie.PORT_ATTR)) {
        if (!portMatch(port, cookie.getPorts())) {
            throw new CookieRestrictionViolationException(
                    "Port attribute violates RFC 2965: "
                    + "Request port not found in cookie's port list.");
        }
    }
}
项目:ZTLib    文件:RFC2965VersionAttributeHandlerHC4.java   
/**
 * validate cookie version attribute. Version attribute is REQUIRED.
 */
public void validate(final Cookie cookie, final CookieOrigin origin)
        throws MalformedCookieException {
    Args.notNull(cookie, "Cookie");
    if (cookie instanceof SetCookie2) {
        if (cookie instanceof ClientCookie
                && !((ClientCookie) cookie).containsAttribute(ClientCookie.VERSION_ATTR)) {
            throw new CookieRestrictionViolationException(
                    "Violates RFC 2965. Version attribute is required.");
        }
    }
}
项目:ZTLib    文件:BasicDomainHandlerHC4.java   
public void validate(final Cookie cookie, final CookieOrigin origin)
        throws MalformedCookieException {
    Args.notNull(cookie, "Cookie");
    Args.notNull(origin, "Cookie origin");
    // Validate the cookies domain attribute.  NOTE:  Domains without
    // any dots are allowed to support hosts on private LANs that don't
    // have DNS names.  Since they have no dots, to domain-match the
    // request-host and domain must be identical for the cookie to sent
    // back to the origin-server.
    final String host = origin.getHost();
    String domain = cookie.getDomain();
    if (domain == null) {
        throw new CookieRestrictionViolationException("Cookie domain may not be null");
    }
    if (host.contains(".")) {
        // Not required to have at least two dots.  RFC 2965.
        // A Set-Cookie2 with Domain=ajax.com will be accepted.

        // domain must match host
        if (!host.endsWith(domain)) {
            if (domain.startsWith(".")) {
                domain = domain.substring(1, domain.length());
            }
            if (!host.equals(domain)) {
                throw new CookieRestrictionViolationException(
                    "Illegal domain attribute \"" + domain
                    + "\". Domain of origin: \"" + host + "\"");
            }
        }
    } else {
        if (!host.equals(domain)) {
            throw new CookieRestrictionViolationException(
                "Illegal domain attribute \"" + domain
                + "\". Domain of origin: \"" + host + "\"");
        }
    }
}
项目:ZTLib    文件:RFC2109VersionHandlerHC4.java   
@Override
public void validate(final Cookie cookie, final CookieOrigin origin)
        throws MalformedCookieException {
    Args.notNull(cookie, "Cookie");
    if (cookie.getVersion() < 0) {
        throw new CookieRestrictionViolationException("Cookie version may not be negative");
    }
}
项目:ZTLib    文件:RFC2109SpecHC4.java   
@Override
public void validate(final Cookie cookie, final CookieOrigin origin)
        throws MalformedCookieException {
    Args.notNull(cookie, "Cookie");
    final String name = cookie.getName();
    if (name.indexOf(' ') != -1) {
        throw new CookieRestrictionViolationException("Cookie name may not contain blanks");
    }
    if (name.startsWith("$")) {
        throw new CookieRestrictionViolationException("Cookie name may not start with $");
    }
    super.validate(cookie, origin);
}
项目:ZTLib    文件:BasicPathHandlerHC4.java   
public void validate(final Cookie cookie, final CookieOrigin origin)
        throws MalformedCookieException {
    if (!match(cookie, origin)) {
        throw new CookieRestrictionViolationException(
            "Illegal path attribute \"" + cookie.getPath()
            + "\". Path of origin: \"" + origin.getPath() + "\"");
    }
}
项目:lams    文件:RFC2965DomainAttributeHandler.java   
/**
 * Validate cookie domain attribute.
 */
public void validate(final Cookie cookie, final CookieOrigin origin)
        throws MalformedCookieException {
    if (cookie == null) {
        throw new IllegalArgumentException("Cookie may not be null");
    }
    if (origin == null) {
        throw new IllegalArgumentException("Cookie origin may not be null");
    }
    String host = origin.getHost().toLowerCase(Locale.ENGLISH);
    if (cookie.getDomain() == null) {
        throw new CookieRestrictionViolationException("Invalid cookie state: " +
                                           "domain not specified");
    }
    String cookieDomain = cookie.getDomain().toLowerCase(Locale.ENGLISH);

    if (cookie instanceof ClientCookie
            && ((ClientCookie) cookie).containsAttribute(ClientCookie.DOMAIN_ATTR)) {
        // Domain attribute must start with a dot
        if (!cookieDomain.startsWith(".")) {
            throw new CookieRestrictionViolationException("Domain attribute \"" +
                cookie.getDomain() + "\" violates RFC 2109: domain must start with a dot");
        }

        // Domain attribute must contain at least one embedded dot,
        // or the value must be equal to .local.
        int dotIndex = cookieDomain.indexOf('.', 1);
        if (((dotIndex < 0) || (dotIndex == cookieDomain.length() - 1))
            && (!cookieDomain.equals(".local"))) {
            throw new CookieRestrictionViolationException(
                    "Domain attribute \"" + cookie.getDomain()
                    + "\" violates RFC 2965: the value contains no embedded dots "
                    + "and the value is not .local");
        }

        // The effective host name must domain-match domain attribute.
        if (!domainMatch(host, cookieDomain)) {
            throw new CookieRestrictionViolationException(
                    "Domain attribute \"" + cookie.getDomain()
                    + "\" violates RFC 2965: effective host name does not "
                    + "domain-match domain attribute.");
        }

        // effective host name minus domain must not contain any dots
        String effectiveHostWithoutDomain = host.substring(
                0, host.length() - cookieDomain.length());
        if (effectiveHostWithoutDomain.indexOf('.') != -1) {
            throw new CookieRestrictionViolationException("Domain attribute \""
                                               + cookie.getDomain() + "\" violates RFC 2965: "
                                               + "effective host minus domain may not contain any dots");
        }
    } else {
        // Domain was not specified in header. In this case, domain must
        // string match request host (case-insensitive).
        if (!cookie.getDomain().equals(host)) {
            throw new CookieRestrictionViolationException("Illegal domain attribute: \""
                                               + cookie.getDomain() + "\"."
                                               + "Domain of origin: \""
                                               + host + "\"");
        }
    }
}
项目:lams    文件:RFC2109DomainHandler.java   
public void validate(final Cookie cookie, final CookieOrigin origin)
        throws MalformedCookieException {
    if (cookie == null) {
        throw new IllegalArgumentException("Cookie may not be null");
    }
    if (origin == null) {
        throw new IllegalArgumentException("Cookie origin may not be null");
    }
    String host = origin.getHost();
    String domain = cookie.getDomain();
    if (domain == null) {
        throw new CookieRestrictionViolationException("Cookie domain may not be null");
    }
    if (!domain.equals(host)) {
        int dotIndex = domain.indexOf('.');
        if (dotIndex == -1) {
            throw new CookieRestrictionViolationException("Domain attribute \""
                    + domain
                    + "\" does not match the host \""
                    + host + "\"");
        }
        // domain must start with dot
        if (!domain.startsWith(".")) {
            throw new CookieRestrictionViolationException("Domain attribute \""
                + domain
                + "\" violates RFC 2109: domain must start with a dot");
        }
        // domain must have at least one embedded dot
        dotIndex = domain.indexOf('.', 1);
        if (dotIndex < 0 || dotIndex == domain.length() - 1) {
            throw new CookieRestrictionViolationException("Domain attribute \""
                + domain
                + "\" violates RFC 2109: domain must contain an embedded dot");
        }
        host = host.toLowerCase(Locale.ENGLISH);
        if (!host.endsWith(domain)) {
            throw new CookieRestrictionViolationException(
                "Illegal domain attribute \"" + domain
                + "\". Domain of origin: \"" + host + "\"");
        }
        // host minus domain may not contain any dots
        String hostWithoutDomain = host.substring(0, host.length() - domain.length());
        if (hostWithoutDomain.indexOf('.') != -1) {
            throw new CookieRestrictionViolationException("Domain attribute \""
                + domain
                + "\" violates RFC 2109: host minus domain may not contain any dots");
        }
    }
}
项目:lams    文件:BasicDomainHandler.java   
public void validate(final Cookie cookie, final CookieOrigin origin)
        throws MalformedCookieException {
    if (cookie == null) {
        throw new IllegalArgumentException("Cookie may not be null");
    }
    if (origin == null) {
        throw new IllegalArgumentException("Cookie origin may not be null");
    }
    // Validate the cookies domain attribute.  NOTE:  Domains without
    // any dots are allowed to support hosts on private LANs that don't
    // have DNS names.  Since they have no dots, to domain-match the
    // request-host and domain must be identical for the cookie to sent
    // back to the origin-server.
    String host = origin.getHost();
    String domain = cookie.getDomain();
    if (domain == null) {
        throw new CookieRestrictionViolationException("Cookie domain may not be null");
    }
    if (host.contains(".")) {
        // Not required to have at least two dots.  RFC 2965.
        // A Set-Cookie2 with Domain=ajax.com will be accepted.

        // domain must match host
        if (!host.endsWith(domain)) {
            if (domain.startsWith(".")) {
                domain = domain.substring(1, domain.length());
            }
            if (!host.equals(domain)) {
                throw new CookieRestrictionViolationException(
                    "Illegal domain attribute \"" + domain
                    + "\". Domain of origin: \"" + host + "\"");
            }
        }
    } else {
        if (!host.equals(domain)) {
            throw new CookieRestrictionViolationException(
                "Illegal domain attribute \"" + domain
                + "\". Domain of origin: \"" + host + "\"");
        }
    }
}
项目:remote-files-sync    文件:RFC2965DomainAttributeHandlerHC4.java   
/**
 * Validate cookie domain attribute.
 */
public void validate(final Cookie cookie, final CookieOrigin origin)
        throws MalformedCookieException {
    Args.notNull(cookie, "Cookie");
    Args.notNull(origin, "Cookie origin");
    final String host = origin.getHost().toLowerCase(Locale.ENGLISH);
    if (cookie.getDomain() == null) {
        throw new CookieRestrictionViolationException("Invalid cookie state: " +
                                           "domain not specified");
    }
    final String cookieDomain = cookie.getDomain().toLowerCase(Locale.ENGLISH);

    if (cookie instanceof ClientCookie
            && ((ClientCookie) cookie).containsAttribute(ClientCookie.DOMAIN_ATTR)) {
        // Domain attribute must start with a dot
        if (!cookieDomain.startsWith(".")) {
            throw new CookieRestrictionViolationException("Domain attribute \"" +
                cookie.getDomain() + "\" violates RFC 2109: domain must start with a dot");
        }

        // Domain attribute must contain at least one embedded dot,
        // or the value must be equal to .local.
        final int dotIndex = cookieDomain.indexOf('.', 1);
        if (((dotIndex < 0) || (dotIndex == cookieDomain.length() - 1))
            && (!cookieDomain.equals(".local"))) {
            throw new CookieRestrictionViolationException(
                    "Domain attribute \"" + cookie.getDomain()
                    + "\" violates RFC 2965: the value contains no embedded dots "
                    + "and the value is not .local");
        }

        // The effective host name must domain-match domain attribute.
        if (!domainMatch(host, cookieDomain)) {
            throw new CookieRestrictionViolationException(
                    "Domain attribute \"" + cookie.getDomain()
                    + "\" violates RFC 2965: effective host name does not "
                    + "domain-match domain attribute.");
        }

        // effective host name minus domain must not contain any dots
        final String effectiveHostWithoutDomain = host.substring(
                0, host.length() - cookieDomain.length());
        if (effectiveHostWithoutDomain.indexOf('.') != -1) {
            throw new CookieRestrictionViolationException("Domain attribute \""
                                               + cookie.getDomain() + "\" violates RFC 2965: "
                                               + "effective host minus domain may not contain any dots");
        }
    } else {
        // Domain was not specified in header. In this case, domain must
        // string match request host (case-insensitive).
        if (!cookie.getDomain().equals(host)) {
            throw new CookieRestrictionViolationException("Illegal domain attribute: \""
                                               + cookie.getDomain() + "\"."
                                               + "Domain of origin: \""
                                               + host + "\"");
        }
    }
}
项目:remote-files-sync    文件:RFC2109DomainHandlerHC4.java   
public void validate(final Cookie cookie, final CookieOrigin origin)
        throws MalformedCookieException {
    Args.notNull(cookie, "Cookie");
    Args.notNull(origin, "Cookie origin");
    String host = origin.getHost();
    final String domain = cookie.getDomain();
    if (domain == null) {
        throw new CookieRestrictionViolationException("Cookie domain may not be null");
    }
    if (!domain.equals(host)) {
        int dotIndex = domain.indexOf('.');
        if (dotIndex == -1) {
            throw new CookieRestrictionViolationException("Domain attribute \""
                    + domain
                    + "\" does not match the host \""
                    + host + "\"");
        }
        // domain must start with dot
        if (!domain.startsWith(".")) {
            throw new CookieRestrictionViolationException("Domain attribute \""
                + domain
                + "\" violates RFC 2109: domain must start with a dot");
        }
        // domain must have at least one embedded dot
        dotIndex = domain.indexOf('.', 1);
        if (dotIndex < 0 || dotIndex == domain.length() - 1) {
            throw new CookieRestrictionViolationException("Domain attribute \""
                + domain
                + "\" violates RFC 2109: domain must contain an embedded dot");
        }
        host = host.toLowerCase(Locale.ENGLISH);
        if (!host.endsWith(domain)) {
            throw new CookieRestrictionViolationException(
                "Illegal domain attribute \"" + domain
                + "\". Domain of origin: \"" + host + "\"");
        }
        // host minus domain may not contain any dots
        final String hostWithoutDomain = host.substring(0, host.length() - domain.length());
        if (hostWithoutDomain.indexOf('.') != -1) {
            throw new CookieRestrictionViolationException("Domain attribute \""
                + domain
                + "\" violates RFC 2109: host minus domain may not contain any dots");
        }
    }
}
项目:purecloud-iot    文件:RFC2965DomainAttributeHandler.java   
/**
 * Validate cookie domain attribute.
 */
@Override
public void validate(final Cookie cookie, final CookieOrigin origin)
        throws MalformedCookieException {
    Args.notNull(cookie, "Cookie");
    Args.notNull(origin, "Cookie origin");
    final String host = origin.getHost().toLowerCase(Locale.ROOT);
    if (cookie.getDomain() == null) {
        throw new CookieRestrictionViolationException("Invalid cookie state: " +
                                           "domain not specified");
    }
    final String cookieDomain = cookie.getDomain().toLowerCase(Locale.ROOT);

    if (cookie instanceof ClientCookie
            && ((ClientCookie) cookie).containsAttribute(ClientCookie.DOMAIN_ATTR)) {
        // Domain attribute must start with a dot
        if (!cookieDomain.startsWith(".")) {
            throw new CookieRestrictionViolationException("Domain attribute \"" +
                cookie.getDomain() + "\" violates RFC 2109: domain must start with a dot");
        }

        // Domain attribute must contain at least one embedded dot,
        // or the value must be equal to .local.
        final int dotIndex = cookieDomain.indexOf('.', 1);
        if (((dotIndex < 0) || (dotIndex == cookieDomain.length() - 1))
            && (!cookieDomain.equals(".local"))) {
            throw new CookieRestrictionViolationException(
                    "Domain attribute \"" + cookie.getDomain()
                    + "\" violates RFC 2965: the value contains no embedded dots "
                    + "and the value is not .local");
        }

        // The effective host name must domain-match domain attribute.
        if (!domainMatch(host, cookieDomain)) {
            throw new CookieRestrictionViolationException(
                    "Domain attribute \"" + cookie.getDomain()
                    + "\" violates RFC 2965: effective host name does not "
                    + "domain-match domain attribute.");
        }

        // effective host name minus domain must not contain any dots
        final String effectiveHostWithoutDomain = host.substring(
                0, host.length() - cookieDomain.length());
        if (effectiveHostWithoutDomain.indexOf('.') != -1) {
            throw new CookieRestrictionViolationException("Domain attribute \""
                                               + cookie.getDomain() + "\" violates RFC 2965: "
                                               + "effective host minus domain may not contain any dots");
        }
    } else {
        // Domain was not specified in header. In this case, domain must
        // string match request host (case-insensitive).
        if (!cookie.getDomain().equals(host)) {
            throw new CookieRestrictionViolationException("Illegal domain attribute: \""
                                               + cookie.getDomain() + "\"."
                                               + "Domain of origin: \""
                                               + host + "\"");
        }
    }
}