RedisOperationsSessionRepsitory only deletes once
Previously RedisOperationsSessionRepository incorrectly: * Deleted the session * Added the session * Set the expiration to be 0 This commit ensures that if the expiration is 0 that the sesson is only deleted. Fixes gh-292
This commit is contained in:
@@ -85,8 +85,12 @@ final class RedisSessionExpirationPolicy {
|
||||
String sessionKey = getSessionKey(keyToExpire);
|
||||
|
||||
expireOperations.expire(fiveMinutesAfterExpires, TimeUnit.SECONDS);
|
||||
redis.boundValueOps(sessionKey).append("");
|
||||
redis.boundValueOps(sessionKey).expire(sessionExpireInSeconds, TimeUnit.SECONDS);
|
||||
if(sessionExpireInSeconds == 0) {
|
||||
redis.delete(sessionKey);
|
||||
} else {
|
||||
redis.boundValueOps(sessionKey).append("");
|
||||
redis.boundValueOps(sessionKey).expire(sessionExpireInSeconds, TimeUnit.SECONDS);
|
||||
}
|
||||
redis.boundHashOps(getSessionKey(session.getId())).expire(fiveMinutesAfterExpires, TimeUnit.SECONDS);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user