bool GenerateConnectAuthToken()

in src/authentication/authentication_provider.cc [219:240]


bool GenerateConnectAuthToken(char* token, unsigned int max_size, const char* db_hostname, const char* db_region, unsigned port, const char* db_user, FederatedAuthType type, FederatedAuthConfig config) {
    std::lock_guard<std::mutex> global_lock(global_auth_mutex);
    if (1 == ++sdk_ref_count) {
        std::lock_guard<std::mutex> lock(sdk_mutex);
        Aws::InitAPI(sdk_opts);
    }

    LOG(INFO) << "Generating token for " << federated_auth_type_str[type];

    Aws::RDS::RDSClient* client = CreateRDSClient(type, config);
    if (!client) {
        FreeAwsResource(nullptr);
        return false;
    }

    Aws::String new_token = client->GenerateConnectAuthToken(db_hostname, db_region, port, db_user);
    FreeAwsResource(client);

    int token_size = new_token.size();
    LOG(INFO) << "RDS Client generated token length is " << token_size;
    return UpdateTokenValue(token, max_size, new_token.c_str());
}