1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package com.linecorp.centraldogma.server.auth;
17
18 import static java.util.Objects.requireNonNull;
19
20 import java.util.concurrent.CompletableFuture;
21 import java.util.function.Function;
22 import java.util.function.Supplier;
23
24 import com.linecorp.armeria.common.HttpRequest;
25 import com.linecorp.armeria.server.auth.Authorizer;
26 import com.linecorp.centraldogma.server.CentralDogmaConfig;
27
28
29
30
31 public final class AuthProviderParameters {
32
33 private final Authorizer<HttpRequest> authorizer;
34 private final CentralDogmaConfig config;
35 private final AuthConfig authConfig;
36 private final Supplier<String> sessionIdGenerator;
37 private final Function<Session, CompletableFuture<Void>> loginSessionPropagator;
38 private final Function<String, CompletableFuture<Void>> logoutSessionPropagator;
39
40
41
42
43
44
45
46
47
48
49
50
51 public AuthProviderParameters(
52 Authorizer<HttpRequest> authorizer,
53 CentralDogmaConfig config,
54 Supplier<String> sessionIdGenerator,
55 Function<Session, CompletableFuture<Void>> loginSessionPropagator,
56 Function<String, CompletableFuture<Void>> logoutSessionPropagator) {
57 this.authorizer = requireNonNull(authorizer, "authorizer");
58 this.config = requireNonNull(config, "config");
59 this.sessionIdGenerator = requireNonNull(sessionIdGenerator, "sessionIdGenerator");
60 this.loginSessionPropagator = requireNonNull(loginSessionPropagator, "loginSessionPropagator");
61 this.logoutSessionPropagator = requireNonNull(logoutSessionPropagator, "logoutSessionPropagator");
62 authConfig = requireNonNull(config.authConfig(), "authConfig");
63 }
64
65
66
67
68 public Authorizer<HttpRequest> authorizer() {
69 return authorizer;
70 }
71
72
73
74
75 public CentralDogmaConfig config() {
76 return config;
77 }
78
79
80
81
82 public AuthConfig authConfig() {
83 return authConfig;
84 }
85
86
87
88
89
90
91 public Supplier<String> sessionIdGenerator() {
92 return sessionIdGenerator;
93 }
94
95
96
97
98
99 public Function<Session, CompletableFuture<Void>> loginSessionPropagator() {
100 return loginSessionPropagator;
101 }
102
103
104
105
106
107 public Function<String, CompletableFuture<Void>> logoutSessionPropagator() {
108 return logoutSessionPropagator;
109 }
110 }