aboutsummaryrefslogtreecommitdiff
path: root/zenserver/upstream/jupiter.cpp
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/jupiter.cpp
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/jupiter.cpp')
-rw-r--r--zenserver/upstream/jupiter.cpp19
1 files changed, 19 insertions, 0 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)