SaSessionCustomUtil.java 1.4 KB
Newer Older
shengzhang_'s avatar
shengzhang_ 已提交
1 2 3 4 5
package cn.dev33.satoken.session;

import cn.dev33.satoken.SaTokenManager;

/**
shengzhang_'s avatar
shengzhang_ 已提交
6
 *    自定义sa-session工具类  
shengzhang_'s avatar
shengzhang_ 已提交
7 8 9
 * @author kong
 *
 */
shengzhang_'s avatar
shengzhang_ 已提交
10
public class SaSessionCustomUtil {
shengzhang_'s avatar
shengzhang_ 已提交
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44

	// 添加上指定前缀,防止恶意伪造session  
	public static String session_key = "custom";
	public static String getSessionKey(String sessionId) {
		return SaTokenManager.getConfig().getTokenName() + ":" + session_key + ":session:" + sessionId;
	}
	
	/** 指定key的session是否存在  */
	public boolean isExists(String sessionId) {
		return SaTokenManager.getDao().getSaSession(getSessionKey(sessionId)) != null;
	}
	
	/** 获取指定key的session, 如果没有,is_create=是否新建并返回  */
	public static SaSession getSessionById(String sessionId, boolean is_create) {
		SaSession session = SaTokenManager.getDao().getSaSession(getSessionKey(sessionId));
		if(session == null && is_create) {
			session = new SaSession(getSessionKey(sessionId));
			SaTokenManager.getDao().saveSaSession(session, SaTokenManager.getConfig().getTimeout());
		}
		return session;
	}
	/** 获取指定key的session, 如果没有则新建并返回  */
	public static SaSession getSessionById(String sessionId) {
		return getSessionById(sessionId, true);
	}

	/** 删除指定key的session  */
	public static void delSessionById(String sessionId) {
		SaTokenManager.getDao().delSaSession(getSessionKey(sessionId));
	}
	
	
	
}