public Cookie decodeCookie()

in client/src/main/java/org/apache/ahc/codec/HttpDecoder.java [278:332]


    public Cookie decodeCookie(String cookieStr) throws Exception {

        MutableCookie cookie = null;

        String pairs[] = cookieStr.split(";");
        for (int i = 0; i < pairs.length; i++) {
            String nameValue[] = pairs[i].trim().split("=");
            String name = nameValue[0].trim();

            //First one is the cookie name/value pair
            if (i == 0) {
                cookie = new DefaultCookie(name, nameValue[1].trim());
                continue;
            }

            if (name.equalsIgnoreCase(COOKIE_COMMENT)) {
                cookie.setComment(nameValue[1].trim());
                continue;
            }

            if (name.equalsIgnoreCase(COOKIE_PATH)) {
                cookie.setPath(nameValue[1].trim());
            }

            if (name.equalsIgnoreCase(COOKIE_SECURE)) {
                cookie.setSecure(true);
            }

            if (name.equalsIgnoreCase(COOKIE_HTTP_ONLY)) {
                cookie.setHttpOnly(true);
            }

            if (name.equalsIgnoreCase(COOKIE_VERSION)) {
                cookie.setVersion(Integer.parseInt(nameValue[1]));
            }

            if (name.equalsIgnoreCase(COOKIE_MAX_AGE)) {
                int age = Integer.parseInt(nameValue[1]);
                cookie.setMaxAge(age);
            }

            if (name.equalsIgnoreCase(COOKIE_EXPIRES)) {
            	long createdDate = System.currentTimeMillis();
            	int age = (int)(DateUtil.parseDate(nameValue[1]).getTime() - createdDate) / 1000;
            	cookie.setCreatedDate(createdDate);
                cookie.setMaxAge(age);
            }

            if (name.equalsIgnoreCase(COOKIE_DOMAIN)) {
                cookie.setDomain(nameValue[1]);
            }
        }

        return cookie;
    }