Class RedisSessionStore
java.lang.Object
br.ufsc.labsec.signature.database.authCodeSession.RedisSessionStore
- All Implemented Interfaces:
AuthCodeSessionStore
public class RedisSessionStore extends Object implements AuthCodeSessionStore
Implementação de
AuthCodeSessionStore usando Redis.
Esta classe gerencia o armazenamento de sessões de autenticação em um
servidor Redis. Cada sessão é armazenada como um Hash.-
Constructor Summary
Constructors Constructor Description RedisSessionStore(String redisUri)Construtor que inicializa a conexão com o Redis e registra um shutdown hook para liberar os recursos no encerramento da aplicação. -
Method Summary
Modifier and Type Method Description voidclose()Set<String>getExpiredSessionIds(Duration expirationTime)NOTA IMPORTANTE SOBRE EXPIRAÇÃO: O Redis gerencia a expiração de chaves automaticamente.StringgetSession(String sessionId, String key)Obtém o valor de uma chave específica para uma sessão de um Hash do Redis.voidremoveSession(String sessionId)Deleta a sessão inteira (o Hash) do Redis.voidsaveSession(String sessionId, String key, String value)Salva um par chave-valor para uma sessão em um Hash do Redis.
-
Constructor Details
-
RedisSessionStore
Construtor que inicializa a conexão com o Redis e registra um shutdown hook para liberar os recursos no encerramento da aplicação.- Parameters:
redisUri- A URI de conexão do Redis.
-
-
Method Details
-
close
public void close() -
saveSession
Salva um par chave-valor para uma sessão em um Hash do Redis. A cada salvamento, o tempo de expiração da sessão (o Hash inteiro) é renovado.- Specified by:
saveSessionin interfaceAuthCodeSessionStore- Parameters:
sessionId- O identificador da sessão (será a chave do Hash).key- A chave do valor a ser salvo (será o field do Hash).value- O valor a ser salvo.
-
getSession
Obtém o valor de uma chave específica para uma sessão de um Hash do Redis.- Specified by:
getSessionin interfaceAuthCodeSessionStore- Parameters:
sessionId- O identificador da sessão.key- A chave do valor a ser recuperado.- Returns:
- O valor associado à chave, ou null se não for encontrado.
-
removeSession
Deleta a sessão inteira (o Hash) do Redis.- Specified by:
removeSessionin interfaceAuthCodeSessionStore- Parameters:
sessionId- O identificador da sessão a ser removido.
-
getExpiredSessionIds
NOTA IMPORTANTE SOBRE EXPIRAÇÃO: O Redis gerencia a expiração de chaves automaticamente. Retorna um conjunto vazio, pois a limpeza é passiva e automática no Redis.- Specified by:
getExpiredSessionIdsin interfaceAuthCodeSessionStore- Parameters:
expirationTime- A duração para verificar (não utilizado).- Returns:
- Um conjunto vazio.
-