当前位置: 首页>>代码示例>>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;未经允许,请勿转载。