當前位置: 首頁>>代碼示例>>Java>>正文


Java Session.getTimeout方法代碼示例

本文整理匯總了Java中org.apache.shiro.session.Session.getTimeout方法的典型用法代碼示例。如果您正苦於以下問題:Java Session.getTimeout方法的具體用法?Java Session.getTimeout怎麽用?Java Session.getTimeout使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在org.apache.shiro.session.Session的用法示例。


在下文中一共展示了Session.getTimeout方法的3個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: saveSession

import org.apache.shiro.session.Session; //導入方法依賴的package包/類
@Override
public void saveSession(Session session) {
    if (session == null || session.getId() == null)
        throw new NullPointerException("session is empty");
    try {
        byte[] key = generateRedisSessionKey(session.getId()).getBytes();
        
        //不存在才添加。
        if(null == session.getAttribute(UserSessionServiceImpl.SESSION_STATUS)){
        	//session狀態
        	SessionStatus sessionStatus = new SessionStatus();
        	session.setAttribute(UserSessionServiceImpl.SESSION_STATUS, sessionStatus);
        }
        
        byte[] value = SerializeUtil.serialize(session);
        long sessionTimeOut = session.getTimeout() / 1000;
        Long expireTime = sessionTimeOut + SESSION_VAL_TIME_SPAN + (5 * 60);
        getRedisManager().saveValueByKey(DB_INDEX, key, value, expireTime.intValue());
    } catch (Exception e) {
    	logger.error("save session error,id:"+session.getId(), e);
    }
}
 
開發者ID:wjggwm,項目名稱:webside,代碼行數:23,代碼來源:RedisShiroSessionRepository.java

示例2: update

import org.apache.shiro.session.Session; //導入方法依賴的package包/類
@Override
public void update(Session session) throws UnknownSessionException {
	if (session == null || session.getId() == null) {
		return;
	}

	HttpServletRequest request = Servlets.getRequest();
	if (request != null) {
		String uri = request.getServletPath();
		// 如果是靜態文件,則不更新SESSION
		if (Servlets.isStaticFile(uri)) {
			return;
		}
		// 如果是視圖文件,則不更新SESSION
		if (StringUtils.startsWith(uri, Global.getConfig("web.view.prefix")) && StringUtils.endsWith(uri, Global.getConfig("web.view.suffix"))) {
			return;
		}
		// 手動控製不更新SESSION
		if (Global.NO.equals(request.getParameter("updateSession"))) {
			return;
		}
	}

	Jedis jedis = null;
	try {

		jedis = JedisUtils.getResource();

		// 獲取登錄者編號
		PrincipalCollection pc = (PrincipalCollection) session.getAttribute(DefaultSubjectContext.PRINCIPALS_SESSION_KEY);
		String principalId = pc != null ? pc.getPrimaryPrincipal().toString() : StringUtils.EMPTY;

		jedis.hset(sessionKeyPrefix, session.getId().toString(), principalId + "|" + session.getTimeout() + "|" + session.getLastAccessTime().getTime());
		jedis.set(JedisUtils.getBytesKey(sessionKeyPrefix + session.getId()), JedisUtils.toBytes(session));

		// 設置超期時間
		int timeoutSeconds = (int) (session.getTimeout() / 1000);
		jedis.expire((sessionKeyPrefix + session.getId()), timeoutSeconds);

		logger.debug("update {} {}", session.getId(), request != null ? request.getRequestURI() : "");
	} catch (Exception e) {
		logger.error("update {} {}", session.getId(), request != null ? request.getRequestURI() : "", e);
	} finally {
		JedisUtils.returnResource(jedis);
	}
}
 
開發者ID:funtl,項目名稱:framework,代碼行數:47,代碼來源:JedisSessionDAO.java

示例3: update

import org.apache.shiro.session.Session; //導入方法依賴的package包/類
@Override
public void update(Session session) throws UnknownSessionException {
	if (session == null || session.getId() == null) {  
           return;
       }
	
	HttpServletRequest request = Servlets.getRequest();
	if (request != null){
		String uri = request.getServletPath();
		// 如果是靜態文件,則不更新SESSION
		if (Servlets.isStaticFile(uri)){
			return;
		}
		// 如果是視圖文件,則不更新SESSION
		if (StringUtils.startsWith(uri, Global.getInstance().getConfig("app.view.prefix"))
				&& StringUtils.endsWith(uri, Global.getInstance().getConfig("app.view.suffix"))){
			return;
		}
		// 手動控製不更新SESSION
		if (Global.NO.equals(request.getParameter("updateSession"))){
			return;
		}
	}
	
	Jedis jedis = null;
	try {
		
		jedis = JedisUtils.getResource();
		
		// 獲取登錄者編號
		PrincipalCollection pc = (PrincipalCollection)session.getAttribute(DefaultSubjectContext.PRINCIPALS_SESSION_KEY);
		String principalId = pc != null ? pc.getPrimaryPrincipal().toString() : StringUtils.EMPTY;
		
		jedis.hset(sessionKeyPrefix, session.getId().toString(), principalId + "|" + session.getTimeout() + "|" + session.getLastAccessTime().getTime());
		jedis.set(JedisUtils.getBytesKey(sessionKeyPrefix + session.getId()), JedisUtils.toBytes(session));
		
		// 設置超期時間
		int timeoutSeconds = (int)(session.getTimeout() / 1000);
		jedis.expire((sessionKeyPrefix + session.getId()), timeoutSeconds);

		logger.debug("update {} {}", session.getId(), request != null ? request.getRequestURI() : "");
	} catch (Exception e) {
		logger.error("update {} {}", session.getId(), request != null ? request.getRequestURI() : "", e);
	} finally {
		JedisUtils.returnResource(jedis);
	}
}
 
開發者ID:egojit8,項目名稱:easyweb,代碼行數:48,代碼來源:JedisSessionDAO.java


注:本文中的org.apache.shiro.session.Session.getTimeout方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。