diff options
Diffstat (limited to 'zenserver/config.cpp')
| -rw-r--r-- | zenserver/config.cpp | 60 |
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()); + } } } |