com.pureinfo.tgirls.utils.servlet.CookieUtils.java Source code

Java tutorial

Introduction

Here is the source code for com.pureinfo.tgirls.utils.servlet.CookieUtils.java

Source

/**
 * PureInfo TGirls
 * @(#)CookieUtils.java   1.0 2009-4-7
 * 
 * Copyright(c) 2004-2005, PureInfo Information Technology Corp. Ltd. 
 * All rights reserved, see the license file.
 * 
 * www.pureinfo.com.cn
 */

package com.pureinfo.tgirls.utils.servlet;

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;

import com.pureinfo.ark.ArkHelper;
import com.pureinfo.ark.content.ArkContentHelper;
import com.pureinfo.force.exception.PureException;
import com.pureinfo.tgirls.domain.IUserMgr;
import com.pureinfo.tgirls.model.User;

public class CookieUtils {
    public static final String NAME = "n";
    public static final String NICK_NAME = "nn";
    public static final String TAOBAO_ID = "tid";
    public static final String HEAD_IMG = "img";
    public static final String TOP_SESSION_ID = "topsessionid";

    private static Logger logger = Logger.getLogger(CookieUtils.class.getName());

    public static User getLoginUser(HttpServletRequest _request, HttpServletResponse _response) {
        User loginUser = (User) _request.getSession().getAttribute(ArkHelper.ATTR_LOGIN_USER);
        if (loginUser != null) {

            logger.debug("get user from session." + loginUser.getTaobaoID());

            return loginUser;
        }

        logger.debug("user not in session.");

        String taobaoId = getCookieValue(_request.getCookies(), TAOBAO_ID);
        if (StringUtils.isEmpty(taobaoId)) {
            return null;
        }

        try {
            IUserMgr mgr = (IUserMgr) ArkContentHelper.getContentMgrOf(User.class);
            loginUser = mgr.getUserByTaobaoId(taobaoId);
            _request.getSession().setAttribute(ArkHelper.ATTR_LOGIN_USER, loginUser);
            return loginUser;
        } catch (PureException e) {
            // TODO Auto-generated catch block
            e.printStackTrace(System.err);
        }

        return null;
    }

    public static String getCookieValue(Cookie[] _cookies, String _attrLoginUser) {
        logger.debug("to get cookie value of name [" + _attrLoginUser + "]");

        if (_cookies == null) {
            return null;
        }
        for (int i = 0; i < _cookies.length; i++) {
            Cookie c = _cookies[i];
            if (c.getName().equals(_attrLoginUser)) {
                logger.debug("cookie[" + _attrLoginUser + "] value[" + c.getValue() + "]");

                return c.getValue();
            }
        }

        return null;
    }

    public static Object getRequestCookieValue(HttpServletRequest request, String key) {
        Object value = request.getSession().getAttribute(key);
        if (value != null) {
            return value;
        }
        return getCookieValue(request.getCookies(), key);
    }

}