19#ifndef PULSAR_AUTHENTICATION_H_
20#define PULSAR_AUTHENTICATION_H_
22#include <pulsar/defines.h>
27#include <pulsar/Result.h>
83typedef std::shared_ptr<AuthenticationDataProvider> AuthenticationDataPtr;
84typedef std::shared_ptr<Authentication> AuthenticationPtr;
85typedef std::map<std::string, std::string> ParamMap;
104 authDataContent = authData_;
123 AuthenticationDataPtr authData_;
137 static AuthenticationPtr Disabled();
144 static AuthenticationPtr
create(
const std::string& pluginNameOrDynamicLibPath);
152 static AuthenticationPtr
create(
const std::string& pluginNameOrDynamicLibPath,
153 const std::string& authParamsString);
171 static AuthenticationPtr
create(
const std::string& pluginNameOrDynamicLibPath, ParamMap& params);
174 static bool isShutdownHookRegistered_;
175 static std::vector<void*> loadedLibrariesHandles_;
176 static void release_handles();
184 AuthTls(AuthenticationDataPtr&);
193 static AuthenticationPtr
create(ParamMap& params);
200 static AuthenticationPtr
create(
const std::string& authParamsString);
208 static AuthenticationPtr
create(
const std::string& certificatePath,
const std::string& privateKeyPath);
225 AuthenticationDataPtr authDataTls_;
228typedef std::function<std::string()> TokenSupplier;
253 static AuthenticationPtr
create(ParamMap& params);
260 static AuthenticationPtr
create(
const std::string& authParamsString);
276 static AuthenticationPtr
create(
const TokenSupplier& tokenSupplier);
293 AuthenticationDataPtr authDataToken_;
313 static AuthenticationPtr
create(ParamMap& params);
320 static AuthenticationPtr
create(
const std::string& authParamsString);
337 AuthenticationDataPtr authDataAthenz_;
346 undefined_expiration = -1
404 std::string accessToken_;
406 std::string idToken_;
408 std::string refreshToken_;
413typedef std::shared_ptr<Oauth2TokenResult> Oauth2TokenResultPtr;
439typedef std::shared_ptr<Oauth2Flow> FlowPtr;
461typedef std::shared_ptr<CachedToken> CachedTokenPtr;
488 static AuthenticationPtr
create(ParamMap& params);
495 static AuthenticationPtr
create(
const std::string& authParamsString);
513 CachedTokenPtr cachedTokenPtr_;
Definition: Authentication.h:299
Result getAuthData(AuthenticationDataPtr &authDataAthenz)
const std::string getAuthMethodName() const
static AuthenticationPtr create(ParamMap ¶ms)
static AuthenticationPtr create(const std::string &authParamsString)
Definition: Authentication.h:135
static AuthenticationPtr create(const std::string &pluginNameOrDynamicLibPath)
static AuthenticationPtr create(const std::string &pluginNameOrDynamicLibPath, ParamMap ¶ms)
static AuthenticationPtr create(const std::string &pluginNameOrDynamicLibPath, const std::string &authParamsString)
Definition: Authentication.h:475
static AuthenticationPtr create(ParamMap ¶ms)
const std::string getAuthMethodName() const
static AuthenticationPtr create(const std::string &authParamsString)
Result getAuthData(AuthenticationDataPtr &authDataOauth2)
Definition: Authentication.h:182
static AuthenticationPtr create(const std::string &authParamsString)
const std::string getAuthMethodName() const
static AuthenticationPtr create(ParamMap ¶ms)
static AuthenticationPtr create(const std::string &certificatePath, const std::string &privateKeyPath)
Result getAuthData(AuthenticationDataPtr &authDataTls)
Definition: Authentication.h:233
const std::string getAuthMethodName() const
Result getAuthData(AuthenticationDataPtr &authDataToken)
static AuthenticationPtr createWithToken(const std::string &token)
static AuthenticationPtr create(const std::string &authParamsString)
static AuthenticationPtr create(ParamMap ¶ms)
static AuthenticationPtr create(const TokenSupplier &tokenSupplier)
Definition: Authentication.h:35
virtual bool hasDataFromCommand()
virtual std::string getCommandData()
virtual std::string getTlsPrivateKey()
virtual std::string getHttpHeaders()
virtual std::string getHttpAuthType()
virtual std::string getTlsCertificates()
virtual bool hasDataForTls()
virtual bool hasDataForHttp()
Definition: Authentication.h:87
static ParamMap parseDefaultFormatAuthParams(const std::string &authParamsString)
virtual Result getAuthData(AuthenticationDataPtr &authDataContent)
Definition: Authentication.h:103
virtual const std::string getAuthMethodName() const =0
Definition: Authentication.h:441
virtual bool isExpired()=0
virtual AuthenticationDataPtr getAuthData()=0
Definition: ClientConfiguration.h:29
Definition: Authentication.h:415
virtual Oauth2TokenResultPtr authenticate()=0
virtual void initialize()=0
Definition: Authentication.h:342
int64_t getExpiresIn() const
const std::string & getAccessToken() const
Oauth2TokenResult & setRefreshToken(const std::string &refreshToken)
Oauth2TokenResult & setIdToken(const std::string &idToken)
Oauth2TokenResult & setExpiresIn(const int64_t expiresIn)
const std::string & getRefreshToken() const
const std::string & getIdToken() const
Oauth2TokenResult & setAccessToken(const std::string &accessToken)
Definition: Authentication.h:30
Result
Definition: Result.h:31