SaSessionCustomUtil.java 1.6 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

	// 添加上指定前缀,防止恶意伪造session  
	public static String session_key = "custom";
	public static String getSessionKey(String sessionId) {
		return SaTokenManager.getConfig().getTokenName() + ":" + session_key + ":session:" + sessionId;
	}
	
shengzhang_'s avatar
shengzhang_ 已提交
18 19 20 21 22
	/** 
	 * 指定key的session是否存在
	 * @param sessionId session的id
	 * @return 是否存在 
	 */
shengzhang_'s avatar
shengzhang_ 已提交
23 24 25 26
	public boolean isExists(String sessionId) {
		return SaTokenManager.getDao().getSaSession(getSessionKey(sessionId)) != null;
	}
	
shengzhang_'s avatar
shengzhang_ 已提交
27 28 29 30 31 32
	/** 
	 * 获取指定key的session
	 * @param sessionId key
	 * @param is_create 如果没有,是否新建并返回
	 * @return
	 */
shengzhang_'s avatar
shengzhang_ 已提交
33 34 35 36 37 38 39 40
	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;
	}
shengzhang_'s avatar
shengzhang_ 已提交
41 42 43 44 45
	/** 
	 * 获取指定key的session, 如果没有则新建并返回  
	 * @param sessionId key
	 * @return session对象 
	 */
shengzhang_'s avatar
shengzhang_ 已提交
46 47 48 49
	public static SaSession getSessionById(String sessionId) {
		return getSessionById(sessionId, true);
	}

shengzhang_'s avatar
shengzhang_ 已提交
50 51 52 53
	/** 
	 * 删除指定key的session
	 * @param sessionId 删除指定key  
	 */
shengzhang_'s avatar
shengzhang_ 已提交
54 55 56 57 58 59 60
	public static void delSessionById(String sessionId) {
		SaTokenManager.getDao().delSaSession(getSessionKey(sessionId));
	}
	
	
	
}