- Add the Codota plugin to your IDE and get smart completions
private void myMethod () {}
/** * Subclass template hook in case per-session timeout is not based on * {@link org.apache.shiro.session.Session#getTimeout()}. * <p/> * <p>This implementation merely returns {@link org.apache.shiro.session.Session#getTimeout()}</p> * * @param session the session for which to determine session timeout. * @return the time in milliseconds the specified session may remain idle before expiring. */ protected long getTimeout(Session session) { return session.getTimeout(); }
/** * Immediately delegates to the underlying proxied session. */ public long getTimeout() throws InvalidSessionException { return delegate.getTimeout(); }
public int getMaxInactiveInterval() { try { return (new Long(getSession().getTimeout() / 1000)).intValue(); } catch (InvalidSessionException e) { throw new IllegalStateException(e); } }
public boolean matches(Object o) { return o instanceof Session && ((Session) o).getTimeout() == this.timeout; } }
public long getTimeout(SessionKey key) throws InvalidSessionException { return lookupRequiredSession(key).getTimeout(); }
@Override protected Serializable doCreate(Session session) { Serializable sessionId = generateSessionId(session); assignSessionId(session, sessionId); RedisUtil.set(ZHENG_UPMS_SHIRO_SESSION_ID + "_" + sessionId, SerializableUtil.serialize(session), (int) session.getTimeout() / 1000); LOGGER.debug("doCreate >>>>> sessionId={}", sessionId); return sessionId; }
@Override protected Serializable doCreate(Session session) { final Serializable id = generateSessionId(session); assignSessionId(session, id); Map<String, Object> fields = Maps.newHashMap(); fields.put("session_id", id); fields.put("host", session.getHost()); fields.put("start_timestamp", session.getStartTimestamp()); fields.put("last_access_time", session.getLastAccessTime()); fields.put("timeout", session.getTimeout()); Map<String, Object> attributes = Maps.newHashMap(); for (Object key : session.getAttributeKeys()) { attributes.put(key.toString(), session.getAttribute(key)); } fields.put("attributes", attributes); final MongoDbSession dbSession = new MongoDbSession(fields); final String objectId = mongoDBSessionService.saveWithoutValidation(dbSession); LOG.debug("Created session {}", objectId); return id; }
public SessionModelDao(final Session session) { this.id = session.getId() == null ? null : session.getId().toString(); this.startTimestamp = new DateTime(session.getStartTimestamp(), DateTimeZone.UTC); this.lastAccessTime = new DateTime(session.getLastAccessTime(), DateTimeZone.UTC); this.timeout = session.getTimeout(); this.host = session.getHost(); try { this.sessionData = serializeSessionData(session); } catch (final IOException e) { this.sessionData = new byte[]{}; } }
Session session = subject.getSession(); String sessionId = session.getId().toString(); int timeOut = (int) session.getTimeout() / 1000;
dbSession.setTimeout(session.getTimeout()); dbSession.setStartTimestamp(session.getStartTimestamp()); dbSession.setLastAccessTime(session.getLastAccessTime());
@Override protected void doUpdate(Session session) { // 如果会话过期/停止 没必要再更新了 if(session instanceof ValidatingSession && !((ValidatingSession)session).isValid()) { return; } // 更新session的最后一次访问时间 UpmsSession upmsSession = (UpmsSession) session; UpmsSession cacheUpmsSession = (UpmsSession) doReadSession(session.getId()); if (null != cacheUpmsSession) { upmsSession.setStatus(cacheUpmsSession.getStatus()); upmsSession.setAttribute("FORCE_LOGOUT", cacheUpmsSession.getAttribute("FORCE_LOGOUT")); } RedisUtil.set(ZHENG_UPMS_SHIRO_SESSION_ID + "_" + session.getId(), SerializableUtil.serialize(session), (int) session.getTimeout() / 1000); // 更新ZHENG_UPMS_SERVER_SESSION_ID、ZHENG_UPMS_SERVER_CODE过期时间 TODO LOGGER.debug("doUpdate >>>>> sessionId={}", session.getId()); }
return SessionResponse.create(new DateTime(s.getLastAccessTime(), DateTimeZone.UTC).plus(s.getTimeout()).toDate(), id.toString()); } else {
/** * Immediately delegates to the underlying proxied session. */ public long getTimeout() throws InvalidSessionException { return delegate.getTimeout(); }
/** * Subclass template hook in case per-session timeout is not based on * {@link org.apache.shiro.session.Session#getTimeout()}. * <p/> * <p>This implementation merely returns {@link org.apache.shiro.session.Session#getTimeout()}</p> * * @param session the session for which to determine session timeout. * @return the time in milliseconds the specified session may remain idle before expiring. */ protected long getTimeout(Session session) { return session.getTimeout(); }
@Override public List<UserOnline> list() { List<UserOnline> list = new ArrayList<>(); Collection<Session> sessions = sessionDAO.getActiveSessions(); for (Session session : sessions) { UserOnline userOnline = new UserOnline(); User user; SimplePrincipalCollection principalCollection; if (session.getAttribute(DefaultSubjectContext.PRINCIPALS_SESSION_KEY) == null) { continue; } else { principalCollection = (SimplePrincipalCollection) session .getAttribute(DefaultSubjectContext.PRINCIPALS_SESSION_KEY); user = (User) principalCollection.getPrimaryPrincipal(); userOnline.setUsername(user.getUsername()); userOnline.setUserId(user.getUserId().toString()); } userOnline.setId((String) session.getId()); userOnline.setHost(session.getHost()); userOnline.setStartTimestamp(session.getStartTimestamp()); userOnline.setLastAccessTime(session.getLastAccessTime()); long timeout = session.getTimeout(); userOnline.setStatus(timeout == 0L ? "0" : "1"); String address = AddressUtils.getCityInfo(userOnline.getHost()); userOnline.setLocation(address); userOnline.setTimeout(timeout); list.add(userOnline); } return list; }
@Test public void testGlobalTimeout() { long timeout = 1000; sm.setGlobalSessionTimeout(timeout); Session session = sm.start(null); assertNotNull(session); assertNotNull(session.getId()); assertEquals(session.getTimeout(), timeout); }
public long getTimeout(SessionKey key) throws InvalidSessionException { return lookupRequiredSession(key).getTimeout(); }
this.redisManager.set(key, value, (int) (session.getTimeout() / MILLISECONDS_IN_A_SECOND)); return; if (expire != NO_EXPIRE && expire * MILLISECONDS_IN_A_SECOND < session.getTimeout()) { logger.warn("Redis session expire time: " + (expire * MILLISECONDS_IN_A_SECOND) + " is less than Session timeout: " + session.getTimeout() + " . It may cause some problems.");
@Override protected void doUpdate(Session session) { // 如果会话过期/停止 没必要再更新了 if(session instanceof ValidatingSession && !((ValidatingSession)session).isValid()) { return; } String sessionId = session.getId().toString(); ValueOperations<String,String> operations = redisTemplate.opsForValue(); operations.set(SESSION_KEY + sessionId, SerializableUtil.serialize(session),session.getTimeout(), TimeUnit.MILLISECONDS); sessionTicketStore.expireBySession(sessionId); }
@Override protected Serializable doCreate(Session session) { Serializable sessionId = generateSessionId(session); //set sessionId to SimpleSession assignSessionId(session, sessionId); RedisUtil.set(VUA_UPMS_SHIRO_SESSION_ID + "_" + sessionId, SerializableUtil.serialize(session), (int)session.getTimeout() / 1000); _log.debug("doCreate >>>> sessionId ={}", sessionId); return sessionId; }