26#ifndef HYRAX_CREDENTIALSMANAGER_H
27#define HYRAX_CREDENTIALSMANAGER_H
35#include "AccessCredentials.h"
38#define CATALOG_MANAGER_CREDENTIALS "CredentialsManager.config"
42class CredentialsManager {
44 static const char *ENV_ID_KEY;
45 static const char *ENV_ACCESS_KEY;
46 static const char *ENV_REGION_KEY;
47 static const char *ENV_URL_KEY;
48 static const char *USE_ENV_CREDS_KEY_VALUE;
51 std::recursive_mutex d_lock_mutex{};
53 bool ngaps3CredentialsLoaded =
false;
54 std::map<std::string, AccessCredentials *> creds;
56 CredentialsManager() =
default;
59 static void initialize_instance();
60 static void delete_instance();
62 void load_credentials();
65 friend class CredentialsManagerTest;
66 friend class CurlUtilsTest;
71 ~CredentialsManager();
73 static CredentialsManager *
theCM();
79 ngaps3CredentialsLoaded =
false;
89 bool hasNgapS3Credentials()
const {
90 return ngaps3CredentialsLoaded;
static CredentialsManager * theCM()
Returns the singleton instance of the CredentialsManager.
AccessCredentials * get(const std::shared_ptr< http::url > &url)
void add(const std::string &url, AccessCredentials *ac)
static CredentialsManager * theMngr
Our singleton instance.
Parse a URL into the protocol, host, path and query parts.
utility class for the HTTP catalog module