@Override public SessionData get(String sessionId) { try (Jedis jedis = sessions.getResource()) { String sessionStored = jedis.get(sessionId); if (sessionStored == null) { return null; } jedis.expire(sessionId, idleTime); SessionData sessionData = transcoder.decode(sessionStored); return sessionData; } }
protected String checksumSessionData(SessionData sessionData) { String data = transcoder.encode(sessionData); return CryptoUtils.getHmacSHA1(data, hmacSHA1Key); }
@Override public void save(SessionData sessionData) { try (Jedis jedis = sessions.getResource()) { jedis.setex( sessionData.getId(), idleTime, transcoder.encode(sessionData)); } }
@Override public SessionData get(String sessionId) { String sessionStored = executeSelect(select, sessionId); if (sessionStored == null) { return null; } SessionData sessionData = transcoder.decode(sessionStored); return sessionData; }
@Override public void save(SessionData sessionData) { String id = sessionData.getId(); Timestamp time = new Timestamp(System.currentTimeMillis()); String data = transcoder.encode(sessionData); if (executeUpdate(update, time, data, id) == 0) { executeUpdate(insert, id, time, data); } }
@Override public SessionData get(String sessionId) { Cookie cookie = getSessionCookie(getHttpServletRequest()); if (cookie == null) { // TODO create a new SessionData with an warning/error in log ?! return null; } return transcoder.decode(cookie.getValue()); }
@Override public void save(SessionData sessionData) { String data = transcoder.encode(sessionData); Cookie cookie = createSessionCookie(getHttpServletRequest(), data); getHttpServletResponse().addCookie(cookie); }
@Override public SessionData decode(String data) { try { data = encryptor.decrypt(data, secretKey); SessionData sessionData = transcoder.decode(data); return isValidSessionData(sessionData) ? sessionData : null; } catch (Exception ex) { throw new PippoRuntimeException(ex); } }
@Override public String encode(SessionData sessionData) { try { String checksum = checksumSessionData(sessionData); sessionData.put(CHECKSUM_KEY, checksum); String data = transcoder.encode(sessionData); return encryptor.encrypt(data, secretKey); } catch (Exception ex) { throw new PippoRuntimeException(ex); } }
@Override public SessionData get(String sessionId) { Document doc = this.sessions .find(eq(SESSION_ID, sessionId)) .projection(include(SESSION_DATA)) .first(); if (doc == null) { return null; } String sessionStored = doc.getString(SESSION_DATA); SessionData sessionData = transcoder.decode(sessionStored); return sessionData; }
@Override public void save(SessionData sessionData) { String sessionId = sessionData.getId(); this.sessions.updateOne( eq(SESSION_ID, sessionId), combine( set(SESSION_ID, sessionId), set(SESSION_TTL, new Date()), set(SESSION_DATA, transcoder.encode(sessionData))), new UpdateOptions().upsert(true)); }
@Override public SessionData get(String sessionId) { Cookie cookie = getSessionCookie(getHttpServletRequest()); if (cookie == null) { // TODO create a new SessionData with an warning/error in log ?! return null; } return transcoder.decode(cookie.getValue()); }
@Override public void save(SessionData sessionData) { String data = transcoder.encode(sessionData); Cookie cookie = createSessionCookie(getHttpServletRequest(), data); getHttpServletResponse().addCookie(cookie); }