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_;
301 explicit AuthBasic(AuthenticationDataPtr&);
310 static AuthenticationPtr
create(ParamMap& params);
317 static AuthenticationPtr
create(
const std::string& authParamsString);
322 static AuthenticationPtr
create(
const std::string& username,
const std::string& password);
327 static AuthenticationPtr
create(
const std::string& username,
const std::string& password,
328 const std::string& method);
345 AuthenticationDataPtr authDataBasic_;
365 static AuthenticationPtr
create(ParamMap& params);
372 static AuthenticationPtr
create(
const std::string& authParamsString);
389 AuthenticationDataPtr authDataAthenz_;
398 undefined_expiration = -1
456 std::string accessToken_;
458 std::string idToken_;
460 std::string refreshToken_;
465typedef std::shared_ptr<Oauth2TokenResult> Oauth2TokenResultPtr;
491typedef std::shared_ptr<Oauth2Flow> FlowPtr;
513typedef std::shared_ptr<CachedToken> CachedTokenPtr;
540 static AuthenticationPtr
create(ParamMap& params);
547 static AuthenticationPtr
create(
const std::string& authParamsString);
565 CachedTokenPtr cachedTokenPtr_;
Definition: Authentication.h:351
Result getAuthData(AuthenticationDataPtr &authDataAthenz)
const std::string getAuthMethodName() const
static AuthenticationPtr create(ParamMap ¶ms)
static AuthenticationPtr create(const std::string &authParamsString)
Definition: Authentication.h:299
Result getAuthData(AuthenticationDataPtr &authDataBasic) override
static AuthenticationPtr create(const std::string &username, const std::string &password)
static AuthenticationPtr create(const std::string &username, const std::string &password, const std::string &method)
static AuthenticationPtr create(const std::string &authParamsString)
const std::string getAuthMethodName() const override
static AuthenticationPtr create(ParamMap ¶ms)
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:527
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:493
virtual bool isExpired()=0
virtual AuthenticationDataPtr getAuthData()=0
Definition: ClientConfiguration.h:29
Definition: Authentication.h:467
virtual Oauth2TokenResultPtr authenticate()=0
virtual void initialize()=0
Definition: Authentication.h:394
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
@ ResultOk
An internal error code used for retry.
Definition: Result.h:33