本文整理匯總了Java中org.apache.shiro.session.Session.setTimeout方法的典型用法代碼示例。如果您正苦於以下問題:Java Session.setTimeout方法的具體用法?Java Session.setTimeout怎麽用?Java Session.setTimeout使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類org.apache.shiro.session.Session
的用法示例。
在下文中一共展示了Session.setTimeout方法的6個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。
示例1: saveSession
import org.apache.shiro.session.Session; //導入方法依賴的package包/類
/**
* save session
* @param session
* @throws UnknownSessionException
*/
private void saveSession(Session session) throws UnknownSessionException{
if(session == null || session.getId() == null){
logger.error("session or session id is null");
return;
}
byte[] key = getByteKey(session.getId());
byte[] value = JavaSerializeUtil.serialize(session);
session.setTimeout(expire*1000);
try {
this.jedisClient.set(key, value, expire);
}catch (Exception e){
e.printStackTrace();
}
}
示例2: doCreate
import org.apache.shiro.session.Session; //導入方法依賴的package包/類
/**
* SessionManager創建完session後會調用該方法
* @param session
* @return
*/
@Override
protected Serializable doCreate(Session session) {
Serializable sessionId = this.generateSessionId(session);
assignSessionId(session,sessionId);
Jedis jedis = null;
try{
jedis = jedisPool.getResource();
//session由Redis緩存失效決定,這裏作簡單標識
session.setTimeout(expireTime);
jedis.setex(prefix + sessionId, expireTime, SerializeUtils.serializaToString((ShiroSession) session));
logger.info("sessionId {} name {} 被創建", sessionId, session.getClass().getName());
}catch (Exception e){
logger.warn("創建session失敗",e);
}finally {
jedis.close();
}
return sessionId;
}
示例3: setAuthenticationSession
import org.apache.shiro.session.Session; //導入方法依賴的package包/類
/**
* 將一些數據放到ShiroSession中,以便於其它地方使用
* 比如Controller裏麵,使用時直接用HttpSession.getAttribute(key)就可以取到
*/
private void setAuthenticationSession(Object value){
Subject currentUser = SecurityUtils.getSubject();
if(null != currentUser){
Session session = currentUser.getSession();
System.out.println("當前Session超時時間為[" + session.getTimeout() + "]毫秒");
session.setTimeout(1000 * 60 * 60 * 2);
System.out.println("修改Session超時時間為[" + session.getTimeout() + "]毫秒");
session.setAttribute("currentUser", value);
}
}
示例4: kickoutByAccount
import org.apache.shiro.session.Session; //導入方法依賴的package包/類
@Override
public void kickoutByAccount(String account) {
if (Strings.isNullOrEmpty(account)) return;
Collection<Session> sessions = sessionDAO.getActiveSessions();
if (sessions.size() <= 0) return;
System.out.println("kickoutByAccount sessions size is :" + sessions.size());
for(Session session : sessions){
Object obj = session.getAttribute(DefaultSubjectContext.PRINCIPALS_SESSION_KEY);
if (obj != null) {
String tempName = obj.toString();
if (account.equals(tempName)) {
// 會話已失效 但在線列表仍可獲取Session會話對象
session.setAttribute("kickout", true); // 標記為已下線
session.setTimeout(0L); //設置session立即失效,即將其踢出係統break;
// session.stop(); //銷毀Shiro的會話
// 記錄日誌
LoginLog log = new LoginLog();
log.setUserId(account);
log.setLoginType((short) 1);
log.setLoginDesc("賬號異地登錄,被迫強製下線");
log.setIpInfoCountry(null);
log.setIpInfoRegion(null);
log.setIpInfoCity(null);
log.setIpInfoIsp(null);
log.setLoginIp(RequestUtil.getAddr(RequestUtil.getRequest()));
log.setLoginTime(new Timestamp(new Date().getTime()));
// 保存退出日誌
loginLogMapper.insert(log);
break;
}
}
}
}
示例5: kickoutBySessionId
import org.apache.shiro.session.Session; //導入方法依賴的package包/類
@Override
public void kickoutBySessionId(String sessionId) {
Session session = getSessionBysessionId(sessionId);
if (null != session) {
session.setAttribute("kickout", true); // 標記為已下線
session.setTimeout(0L); //設置session立即失效,即將其踢出係統break;
// session.stop(); //銷毀Shiro的會話
}
}
示例6: newSessionInstance
import org.apache.shiro.session.Session; //導入方法依賴的package包/類
@Override
protected Session newSessionInstance(SessionContext context) {
Session session = super.newSessionInstance(context);
session.setTimeout(getGlobalSessionTimeout());
return session;
}