package com.yanek.study.util;

/**//*
 * blog: http://hi.baidu.com/bobylou
 * $Revision: 1.1 $
 * $Date: 2007/07/18 10:02:55 $
 * $Author: bobrow$
 */

import java.util.ArrayList;

import javax.servlet.http.HttpSession;

public class Token {

	private static final String TOKEN_LIST_NAME = "tokenList";

	public static final String TOKEN_STRING_NAME = "token";

	private static ArrayList getTokenList(HttpSession session) {
		Object obj = session.getAttribute(TOKEN_LIST_NAME);
		if (obj != null) {
			return (ArrayList) obj;
		} else {
			ArrayList tokenList = new ArrayList();
			session.setAttribute(TOKEN_LIST_NAME, tokenList);
			return tokenList;
		}
	}

	private static void saveTokenString(String tokenStr, HttpSession session) {
		ArrayList tokenList = getTokenList(session);
		tokenList.add(tokenStr);
		session.setAttribute(TOKEN_LIST_NAME, tokenList);
	}

	private static String generateTokenString() {
		return new Long(System.currentTimeMillis()).toString();
	}

	/** */
	/**
	 * Generate a token string, and save the string in session, then return the
	 * token string.
	 * 
	 * @param HttpSession
	 *            session
	 * @return a token string used for enforcing a single request for a
	 *         particular transaction.
	 */
	public static String getTokenString(HttpSession session) {
		String tokenStr = generateTokenString();
		saveTokenString(tokenStr, session);
		return tokenStr;
	}

	/** */
	/**
	 * check whether token string is valid. if session contains the token
	 * string, return true. otherwise, return false.
	 * 
	 * @param String
	 *            tokenStr
	 * @param HttpSession
	 *            session
	 * @return true: session contains tokenStr; false: session is null or
	 *         tokenStr is id not in session
	 */
	public static boolean isTokenStringValid(String tokenStr,
			HttpSession session) {
		boolean valid = false;
		if (session != null) {
			ArrayList tokenList = getTokenList(session);
			if (tokenList.contains(tokenStr)) {
				valid = true;
				tokenList.remove(tokenStr);
			}
		}
		return valid;
	}
}
最近下载更多
冷风lengfeng  LV2 2020年1月17日
dgdhfgvjhbj  LV2 2020年1月6日
至恶咕哒子  LV7 2019年12月25日
小资李  LV13 2019年9月17日
pcvvbb  LV1 2018年5月11日
你高冷  LV12 2017年10月11日
canghaiyiyi  LV8 2017年7月18日
pengqing0407  LV13 2017年6月29日
zw5097  LV23 2017年1月4日
ABC先生  LV18 2016年7月20日
最近浏览更多
EFWAGGFAWGR 2023年10月19日
暂无贡献等级
wuziayng1232  LV10 2023年5月17日
漫步的海星  LV4 2023年3月14日
wwb521  LV7 2022年6月15日
guiqianpeng  LV7 2022年4月22日
tmdgdx  LV9 2021年9月26日
irivn007  LV15 2021年4月25日
52525516  LV4 2020年11月13日
Misshuang  LV13 2020年6月9日
hfk2020  LV2 2020年5月22日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友