diff options
| author | Per Larsson <[email protected]> | 2022-02-02 09:25:28 +0100 |
|---|---|---|
| committer | Per Larsson <[email protected]> | 2022-02-02 09:25:28 +0100 |
| commit | b22e362ae30b669a02825a13ed2544ae0b9ac649 (patch) | |
| tree | fa5e119212535cf44908dfd95f92c37c73322684 /zenserver/upstream/jupiter.cpp | |
| parent | Moved cloud cache token provider out from options. (diff) | |
| download | zen-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.cpp | 19 |
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) |