RedisSessionRepository implements SessionRepository { byte[] getSessionKey(byte[] session) { int prefixLength = keyPrefixByteArray.length; byte[] copy = Arrays.copyOf(keyPrefixByteArray, prefixLength + session.length + 1); for (int i = 0; i < session.length; i++) { copy[prefixLength + i] = session[i]; } copy[prefixLength + session.length] = '}'; return copy; } RedisSessionRepository(RedisFacade redis, String namespace, String owner, ExpirationStrategy strategy,
      boolean sticky); @Override void setSessionManager(final SessionManager sessionManager); @Override SessionData getSessionData(String id); @Override CommitTransaction startCommit(SessionData session); @Override void remove(SessionData session); byte[] sessionKey(String sessionId); @Override Object getSessionAttribute(SessionData session, String attribute); @Override boolean prepareRemove(SessionData session); @Override Set<String> getAllKeys(SessionData session); @Override void storeSessionData(SessionData sessionData); @Override void requestFinished(); @Override void setSessionAttribute(SessionData session, String name, Object value); @Override void removeSessionAttribute(SessionData session, String name); @Override boolean cleanSessionsOnShutdown(); @Override Collection<String> getOwnedSessionIds(); @Override void close(); @Override void reset(); @Override void sessionIdChange(SessionData sessionData); @Override boolean isConnected();  }
@Test public void testGetSessionKey() { RedisFacade facade = mock(RedisFacade.class); try (RedisSessionRepository rsr = new RedisSessionRepository(facade, "myapp", "localhost", ExpirationStrategy.ZRANGE, false)) { assertEquals("com.amadeus.session::myapp:{test}", encode(rsr.getSessionKey(encode("test")))); } }