aboutsummaryrefslogtreecommitdiff
path: root/zenserver/upstream
diff options
context:
space:
mode:
authorPer Larsson <[email protected]>2022-02-02 09:25:28 +0100
committerPer Larsson <[email protected]>2022-02-02 09:25:28 +0100
commitb22e362ae30b669a02825a13ed2544ae0b9ac649 (patch)
treefa5e119212535cf44908dfd95f92c37c73322684 /zenserver/upstream
parentMoved cloud cache token provider out from options. (diff)
downloadzen-b22e362ae30b669a02825a13ed2544ae0b9ac649.tar.xz
zen-b22e362ae30b669a02825a13ed2544ae0b9ac649.zip
Parse expire time from OpenID refresh token and added OpenId token provider.
Diffstat (limited to 'zenserver/upstream')
-rw-r--r--zenserver/upstream/jupiter.cpp19
-rw-r--r--zenserver/upstream/jupiter.h2
-rw-r--r--zenserver/upstream/upstreamcache.cpp7
3 files changed, 24 insertions, 4 deletions
diff --git a/zenserver/upstream/jupiter.cpp b/zenserver/upstream/jupiter.cpp
index b377ac629..6fc952bab 100644
--- a/zenserver/upstream/jupiter.cpp
+++ b/zenserver/upstream/jupiter.cpp
@@ -854,6 +854,25 @@ CloudCacheTokenProvider::MakeFromOAuthClientCredentials(const OAuthClientCredent
return std::make_unique<OAuthClientCredentialsTokenProvider>(Params);
}
+class CallbackTokenProvider final : public CloudCacheTokenProvider
+{
+public:
+ CallbackTokenProvider(std::function<CloudCacheAccessToken()>&& Callback) : m_Callback(std::move(Callback)) {}
+
+ virtual ~CallbackTokenProvider() = default;
+
+ virtual CloudCacheAccessToken AcquireAccessToken() final override { return m_Callback(); }
+
+private:
+ std::function<CloudCacheAccessToken()> m_Callback;
+};
+
+std::unique_ptr<CloudCacheTokenProvider>
+CloudCacheTokenProvider::MakeFromCallback(std::function<CloudCacheAccessToken()>&& Callback)
+{
+ return std::make_unique<CallbackTokenProvider>(std::move(Callback));
+}
+
CloudCacheClient::CloudCacheClient(const CloudCacheClientOptions& Options, std::unique_ptr<CloudCacheTokenProvider> TokenProvider)
: m_Log(zen::logging::Get("jupiter"))
, m_ServiceUrl(Options.ServiceUrl)
diff --git a/zenserver/upstream/jupiter.h b/zenserver/upstream/jupiter.h
index 31224500a..1b9650bdf 100644
--- a/zenserver/upstream/jupiter.h
+++ b/zenserver/upstream/jupiter.h
@@ -157,6 +157,8 @@ public:
};
static std::unique_ptr<CloudCacheTokenProvider> MakeFromOAuthClientCredentials(const OAuthClientCredentialsParams& Params);
+
+ static std::unique_ptr<CloudCacheTokenProvider> MakeFromCallback(std::function<CloudCacheAccessToken()>&& Callback);
};
struct CloudCacheClientOptions
diff --git a/zenserver/upstream/upstreamcache.cpp b/zenserver/upstream/upstreamcache.cpp
index 232ed3031..58c025b4f 100644
--- a/zenserver/upstream/upstreamcache.cpp
+++ b/zenserver/upstream/upstreamcache.cpp
@@ -111,8 +111,6 @@ namespace detail {
return {.State = UpstreamEndpointState::kOk};
}
- const AuthMgr::OpenIdAccessToken Token = m_AuthMgr.GetOpenIdAccessToken("Okta");
-
CloudCacheSession Session(m_Client);
const CloudCacheResult Result = Session.Authenticate();
@@ -1415,11 +1413,12 @@ private:
if (Status.State == UpstreamEndpointState::kOk)
{
- ZEN_INFO("health check endpoint '{} - {}' OK", Info.Name, Info.Url);
+ ZEN_INFO("HEALTH - endpoint '{} - {}' Ok", Info.Name, Info.Url);
}
else
{
- ZEN_WARN("health check endpoint '{} - {}' FAILED, reason '{}'", Info.Name, Info.Url, Status.Reason);
+ const std::string Reason = Status.Reason.empty() ? "" : fmt::format(", reason '{}'", Status.Reason);
+ ZEN_WARN("HEALTH - endpoint '{} - {}' {} {}", Info.Name, Info.Url, ToString(Status.State), Reason);
}
}
}