aboutsummaryrefslogtreecommitdiff
path: root/zenserver/config.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'zenserver/config.cpp')
-rw-r--r--zenserver/config.cpp60
1 files changed, 41 insertions, 19 deletions
diff --git a/zenserver/config.cpp b/zenserver/config.cpp
index a36ce5f33..14908b615 100644
--- a/zenserver/config.cpp
+++ b/zenserver/config.cpp
@@ -117,6 +117,19 @@ ParseCliOptions(int argc, char* argv[], ZenServerOptions& ServerOptions)
"Disable Sentry crash handler",
cxxopts::value<bool>(ServerOptions.NoSentry)->default_value("false"));
+ options.add_option("security",
+ "",
+ "encryption-aes-key",
+ "256 bit AES encryption key",
+ cxxopts::value<std::string>(ServerOptions.EncryptionKey),
+ "");
+
+ options.add_option("security",
+ "",
+ "encryption-aes-iv",
+ "128 bit AES encryption initialization vector",
+ cxxopts::value<std::string>(ServerOptions.EncryptionIV),
+ "");
options
.add_option("lifetime", "", "owner-pid", "Specify owning process id", cxxopts::value<int>(ServerOptions.OwnerPid), "<identifier>");
options.add_option("lifetime",
@@ -206,7 +219,7 @@ ParseCliOptions(int argc, char* argv[], ZenServerOptions& ServerOptions)
"",
"upstream-jupiter-oauth-url",
"URL to the OAuth provier",
- cxxopts::value<std::string>(ServerOptions.UpstreamCacheConfig.JupiterConfig.OAuthProvider)->default_value(""),
+ cxxopts::value<std::string>(ServerOptions.UpstreamCacheConfig.JupiterConfig.OAuthUrl)->default_value(""),
"");
options.add_option("cache",
@@ -225,30 +238,30 @@ ParseCliOptions(int argc, char* argv[], ZenServerOptions& ServerOptions)
options.add_option("cache",
"",
- "upstream-jupiter-namespace",
- "The Common Blob Store API namespace",
- cxxopts::value<std::string>(ServerOptions.UpstreamCacheConfig.JupiterConfig.Namespace)->default_value(""),
+ "upstream-jupiter-openid-provider",
+ "Name of a registered Open ID provider",
+ cxxopts::value<std::string>(ServerOptions.UpstreamCacheConfig.JupiterConfig.OpenIdProvider)->default_value(""),
"");
options.add_option("cache",
"",
- "upstream-jupiter-namespace-ddc",
- "The lecacy DDC namespace",
- cxxopts::value<std::string>(ServerOptions.UpstreamCacheConfig.JupiterConfig.DdcNamespace)->default_value(""),
+ "upstream-jupiter-token",
+ "A static authentication token",
+ cxxopts::value<std::string>(ServerOptions.UpstreamCacheConfig.JupiterConfig.AccessToken)->default_value(""),
"");
options.add_option("cache",
"",
- "upstream-jupiter-prod",
- "Enable Jupiter upstream caching using production settings",
- cxxopts::value<bool>(ServerOptions.UpstreamCacheConfig.JupiterConfig.UseProductionSettings)->default_value("false"),
+ "upstream-jupiter-namespace",
+ "The Common Blob Store API namespace",
+ cxxopts::value<std::string>(ServerOptions.UpstreamCacheConfig.JupiterConfig.Namespace)->default_value(""),
"");
options.add_option("cache",
"",
- "upstream-jupiter-dev",
- "Enable Jupiter upstream caching using development settings",
- cxxopts::value<bool>(ServerOptions.UpstreamCacheConfig.JupiterConfig.UseDevelopmentSettings)->default_value("false"),
+ "upstream-jupiter-namespace-ddc",
+ "The lecacy DDC namespace",
+ cxxopts::value<std::string>(ServerOptions.UpstreamCacheConfig.JupiterConfig.DdcNamespace)->default_value(""),
"");
options.add_option("cache",
@@ -322,7 +335,8 @@ ParseCliOptions(int argc, char* argv[], ZenServerOptions& ServerOptions)
"");
try
{
- auto result = options.parse(argc, argv);
+ auto result = options.parse(argc, argv);
+ ServerOptions.DataDir = DataDir;
if (result.count("help"))
{
@@ -486,7 +500,7 @@ ParseConfigFile(const std::filesystem::path& Path, ZenServerOptions& ServerOptio
ServerOptions.UpstreamCacheConfig.JupiterConfig.Url);
UpdateStringValueFromConfig(JupiterConfig.value(),
std::string_view("oauthprovider"),
- ServerOptions.UpstreamCacheConfig.JupiterConfig.OAuthProvider);
+ ServerOptions.UpstreamCacheConfig.JupiterConfig.OAuthUrl);
UpdateStringValueFromConfig(JupiterConfig.value(),
std::string_view("oauthclientid"),
ServerOptions.UpstreamCacheConfig.JupiterConfig.OAuthClientId);
@@ -494,16 +508,18 @@ ParseConfigFile(const std::filesystem::path& Path, ZenServerOptions& ServerOptio
std::string_view("oauthclientsecret"),
ServerOptions.UpstreamCacheConfig.JupiterConfig.OAuthClientSecret);
UpdateStringValueFromConfig(JupiterConfig.value(),
+ std::string_view("openidprovider"),
+ ServerOptions.UpstreamCacheConfig.JupiterConfig.OpenIdProvider);
+ UpdateStringValueFromConfig(JupiterConfig.value(),
+ std::string_view("token"),
+ ServerOptions.UpstreamCacheConfig.JupiterConfig.AccessToken);
+ UpdateStringValueFromConfig(JupiterConfig.value(),
std::string_view("namespace"),
ServerOptions.UpstreamCacheConfig.JupiterConfig.Namespace);
UpdateStringValueFromConfig(JupiterConfig.value(),
std::string_view("ddcnamespace"),
ServerOptions.UpstreamCacheConfig.JupiterConfig.DdcNamespace);
- ServerOptions.UpstreamCacheConfig.JupiterConfig.UseDevelopmentSettings =
- JupiterConfig->get_or("usedevelopmentsettings",
- ServerOptions.UpstreamCacheConfig.JupiterConfig.UseDevelopmentSettings);
-
ServerOptions.UpstreamCacheConfig.JupiterConfig.UseLegacyDdc =
JupiterConfig->get_or("uselegacyddc", ServerOptions.UpstreamCacheConfig.JupiterConfig.UseLegacyDdc);
};
@@ -557,5 +573,11 @@ ParseConfigFile(const std::filesystem::path& Path, ZenServerOptions& ServerOptio
ServerOptions.GcConfig.Cas.TinyStrategySizeLimit = CasGcConfig.value().get_or("tinystrategysizelimit", ~uint64_t(0));
}
}
+
+ if (sol::optional<sol::table> SecurityConfig = lua["security"])
+ {
+ ServerOptions.EncryptionKey = SecurityConfig.value().get_or("encryptionaeskey", std::string());
+ ServerOptions.EncryptionIV = SecurityConfig.value().get_or("encryptionaesiv", std::string());
+ }
}
}