mirror of
https://github.com/plan-player-analytics/Plan.git
synced 2025-02-08 00:11:20 +01:00
Implemented cookie expiry in the backend.
This commit is contained in:
parent
99406b961f
commit
235c3d9f54
@ -17,19 +17,23 @@
|
||||
package com.djrapitops.plan.delivery.webserver.auth;
|
||||
|
||||
import com.djrapitops.plan.delivery.domain.auth.User;
|
||||
import com.github.benmanes.caffeine.cache.Cache;
|
||||
import com.github.benmanes.caffeine.cache.Caffeine;
|
||||
import org.apache.commons.codec.digest.DigestUtils;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
public class ActiveCookieStore {
|
||||
|
||||
private static final Map<String, User> USERS_BY_COOKIE = new HashMap<>();
|
||||
private static final Cache<String, User> USERS_BY_COOKIE = Caffeine.newBuilder()
|
||||
.expireAfterWrite(2, TimeUnit.HOURS)
|
||||
.build();
|
||||
|
||||
public static Optional<User> checkCookie(String cookie) {
|
||||
return Optional.ofNullable(USERS_BY_COOKIE.get(cookie));
|
||||
return Optional.ofNullable(USERS_BY_COOKIE.getIfPresent(cookie));
|
||||
}
|
||||
|
||||
public static String generateNewCookie(User user) {
|
||||
@ -39,11 +43,11 @@ public class ActiveCookieStore {
|
||||
}
|
||||
|
||||
public static void removeCookie(String cookie) {
|
||||
USERS_BY_COOKIE.remove(cookie);
|
||||
USERS_BY_COOKIE.invalidate(cookie);
|
||||
}
|
||||
|
||||
public static void removeCookie(User user) {
|
||||
USERS_BY_COOKIE.entrySet().stream().filter(entry -> entry.getValue().getUsername().equals(user.getUsername()))
|
||||
USERS_BY_COOKIE.asMap().entrySet().stream().filter(entry -> entry.getValue().getUsername().equals(user.getUsername()))
|
||||
.findAny()
|
||||
.map(Map.Entry::getKey)
|
||||
.ifPresent(ActiveCookieStore::removeCookie);
|
||||
|
Loading…
Reference in New Issue
Block a user