private Cookie parseCookie()

in common/src/main/java/org/apache/asyncweb/common/codec/HttpResponseDecodingState.java [263:298]


        private Cookie parseCookie(String cookieHeader) throws DateParseException {

            MutableCookie cookie = null;

            String pairs[] = cookieHeader.split(";");
            for (int i = 0; i < pairs.length; i++) {
                String nameValue[] = pairs[i].trim().split("=");
                String name = nameValue[0].trim();
                String value = (nameValue.length == 2) ? nameValue[1].trim() : null;

                //First pair is the cookie name/value
                if (i == 0) {
                    cookie = new DefaultCookie(name, value);
                } else if (name.equalsIgnoreCase(COOKIE_COMMENT)) {
                    cookie.setComment(value);
                } else if (name.equalsIgnoreCase(COOKIE_PATH)) {
                    cookie.setPath(value);
                } else if (name.equalsIgnoreCase(COOKIE_SECURE)) {
                    cookie.setSecure(true);
                } else if (name.equalsIgnoreCase(COOKIE_VERSION)) {
                    cookie.setVersion(Integer.parseInt(value));
                } else if (name.equalsIgnoreCase(COOKIE_MAX_AGE)) {
                    int age = Integer.parseInt(value);
                    cookie.setMaxAge(age);
                } else if (name.equalsIgnoreCase(COOKIE_EXPIRES)) {
                    long createdDate = System.currentTimeMillis();
                    int age = (int)(DateUtil.parseDate(value).getTime() - createdDate) / 1000;
                    cookie.setCreatedDate(createdDate);
                    cookie.setMaxAge(age);
                } else if (name.equalsIgnoreCase(COOKIE_DOMAIN)) {
                    cookie.setDomain(value);
                }
            }

            return cookie;
        }