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 void
close()
Set<String>
getExpiredSessionIds(Duration expirationTime)
NOTA IMPORTANTE SOBRE EXPIRAÇÃO: O Redis gerencia a expiração de chaves automaticamente.String
getSession(String sessionId, String key)
Obtém o valor de uma chave específica para uma sessão de um Hash do Redis.void
removeSession(String sessionId)
Deleta a sessão inteira (o Hash) do Redis.void
saveSession(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:
saveSession
in 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:
getSession
in 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:
removeSession
in 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:
getExpiredSessionIds
in interfaceAuthCodeSessionStore
- Parameters:
expirationTime
- A duração para verificar (não utilizado).- Returns:
- Um conjunto vazio.
-