1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package com.linecorp.centraldogma.server.internal.admin.auth;
17
18 import java.time.Instant;
19 import java.util.concurrent.CompletableFuture;
20
21 import com.linecorp.centraldogma.server.auth.Session;
22 import com.linecorp.centraldogma.server.auth.SessionManager;
23
24
25
26
27 public final class ExpiredSessionDeletingSessionManager extends ForwardingSessionManager {
28
29 public ExpiredSessionDeletingSessionManager(SessionManager delegate) {
30 super(delegate);
31 }
32
33 @Override
34 public CompletableFuture<Session> get(String sessionId) {
35 return super.get(sessionId).thenApply(session -> {
36 if (session != null) {
37 if (Instant.now().isBefore(session.expirationTime())) {
38 return session;
39 }
40
41
42 delete(sessionId);
43 }
44 return null;
45 });
46 }
47 }