From 14b1cd4930f5bf94ddf0a6979097d27892497523 Mon Sep 17 00:00:00 2001 From: Per Larsson Date: Tue, 1 Feb 2022 13:19:52 +0100 Subject: Refactored cloud cache access token provider. --- zenserver/zenserver.cpp | 69 +++++++++++++++++++++---------------------------- 1 file changed, 29 insertions(+), 40 deletions(-) (limited to 'zenserver/zenserver.cpp') diff --git a/zenserver/zenserver.cpp b/zenserver/zenserver.cpp index 4227a296c..a67e9f7e8 100644 --- a/zenserver/zenserver.cpp +++ b/zenserver/zenserver.cpp @@ -742,68 +742,57 @@ ZenServer::InitializeStructuredCache(const ZenServerOptions& ServerOptions) // Jupiter upstream { - /* zen::CloudCacheClientOptions Options; - if (UpstreamConfig.JupiterConfig.UseProductionSettings) - { - Options = - zen::CloudCacheClientOptions{.Name = "Jupiter-Prod"sv, - .ServiceUrl = "https://jupiter.devtools.epicgames.com"sv, - .DdcNamespace = "ue.ddc"sv, - .BlobStoreNamespace = "ue.ddc"sv, - .OAuthProvider = "https://epicgames.okta.com/oauth2/auso645ojjWVdRI3d0x7/v1/token"sv, - .OAuthClientId = "0oao91lrhqPiAlaGD0x7"sv, - .OAuthSecret = "-GBWjjenhCgOwhxL5yBKNJECVIoDPH0MK4RDuN7d"sv, - .ConnectTimeout = std::chrono::milliseconds(UpstreamConfig.ConnectTimeoutMilliseconds), - .Timeout = std::chrono::milliseconds(UpstreamConfig.TimeoutMilliseconds), - .UseLegacyDdc = false}; - } - else if (UpstreamConfig.JupiterConfig.UseDevelopmentSettings) + + if (UpstreamConfig.JupiterConfig.UseProductionSettings || UpstreamConfig.JupiterConfig.UseDevelopmentSettings) { + std::string EndpointName = "Jupiter-Dev"sv; + std::string Url = "https://jupiter.devtools-dev.epicgames.com" sv; + + if (UpstreamConfig.JupiterConfig.UseProductionSettings) + { + EndpointName = "Jupiter-Prod"sv; + Url = "https://jupiter.devtools.epicgames.com" sv; + } + + auto TokenProvider = CloudCacheTokenProvider::MakeFromOAuthClientCredentials( + {.Url = "https://epicgames.okta.com/oauth2/auso645ojjWVdRI3d0x7/v1/token"sv, + .ClientId = "0oao91lrhqPiAlaGD0x7"sv, + .ClientSecret = "-GBWjjenhCgOwhxL5yBKNJECVIoDPH0MK4RDuN7d"sv}); + Options = - zen::CloudCacheClientOptions{.Name = "Jupiter-Dev"sv, - .ServiceUrl = "https://jupiter.devtools-dev.epicgames.com"sv, + zen::CloudCacheClientOptions{.Name = EndpointName, + .ServiceUrl = Url, .DdcNamespace = "ue.ddc"sv, .BlobStoreNamespace = "ue.ddc"sv, - .OAuthProvider = "https://epicgames.okta.com/oauth2/auso645ojjWVdRI3d0x7/v1/token"sv, - .OAuthClientId = "0oao91lrhqPiAlaGD0x7"sv, - .OAuthSecret = "-GBWjjenhCgOwhxL5yBKNJECVIoDPH0MK4RDuN7d"sv, .ConnectTimeout = std::chrono::milliseconds(UpstreamConfig.ConnectTimeoutMilliseconds), .Timeout = std::chrono::milliseconds(UpstreamConfig.TimeoutMilliseconds), + .TokenProvider = std::move(TokenProvider), .UseLegacyDdc = false}; } else { - const auto JupiterEndpointName = - UpstreamConfig.JupiterConfig.Name.empty() ? "Jupiter"sv : UpstreamConfig.JupiterConfig.Name; + const auto EndpointName = UpstreamConfig.JupiterConfig.Name.empty() ? "Jupiter"sv : UpstreamConfig.JupiterConfig.Name; + + auto TokenProvider = CloudCacheTokenProvider::MakeFromOAuthClientCredentials( + {.Url = "https://epicgames.okta.com/oauth2/auso645ojjWVdRI3d0x7/v1/token"sv, + .ClientId = "0oao91lrhqPiAlaGD0x7"sv, + .ClientSecret = "-GBWjjenhCgOwhxL5yBKNJECVIoDPH0MK4RDuN7d"sv}); Options = - zen::CloudCacheClientOptions{.Name = JupiterEndpointName, + zen::CloudCacheClientOptions{.Name = EndpointName, .ServiceUrl = UpstreamConfig.JupiterConfig.Url, .DdcNamespace = UpstreamConfig.JupiterConfig.DdcNamespace, .BlobStoreNamespace = UpstreamConfig.JupiterConfig.Namespace, - .OAuthProvider = UpstreamConfig.JupiterConfig.OAuthProvider, - .OAuthClientId = UpstreamConfig.JupiterConfig.OAuthClientId, - .OAuthSecret = UpstreamConfig.JupiterConfig.OAuthClientSecret, .ConnectTimeout = std::chrono::milliseconds(UpstreamConfig.ConnectTimeoutMilliseconds), .Timeout = std::chrono::milliseconds(UpstreamConfig.TimeoutMilliseconds), + .TokenProvider = std::move(TokenProvider), .UseLegacyDdc = false}; } - */ - - const AuthMgr::OpenIdAccessToken Token = m_AuthMgr->GetOpenIdAccessToken("Okta"); - - zen::CloudCacheClientOptions Options = - zen::CloudCacheClientOptions{.Name = "Jupiter-Prod"sv, - .ServiceUrl = "https://jupiter.devtools.epicgames.com"sv, - .DdcNamespace = "ue.ddc"sv, - .BlobStoreNamespace = "ue.ddc"sv, - .ConnectTimeout = std::chrono::milliseconds(UpstreamConfig.ConnectTimeoutMilliseconds), - .Timeout = std::chrono::milliseconds(UpstreamConfig.TimeoutMilliseconds), - .UseLegacyDdc = false}; + if (!Options.ServiceUrl.empty()) { - std::unique_ptr JupiterEndpoint = zen::MakeJupiterUpstreamEndpoint(Options, *m_AuthMgr); + std::unique_ptr JupiterEndpoint = zen::MakeJupiterUpstreamEndpoint(std::move(Options), *m_AuthMgr); m_UpstreamCache->RegisterEndpoint(std::move(JupiterEndpoint)); } } -- cgit v1.2.3