blob: db50e1f772cb0e0c8a9ef44cae0a2c27693a2ab6 [file] [log] [blame]
/*=========================================================================
* Copyright (c) 2002-2014 Pivotal Software, Inc. All Rights Reserved.
* This product is protected by U.S. and international copyright
* and intellectual property laws. Pivotal products are covered by
* more patents listed at http://www.pivotal.io/patents.
*=========================================================================
*/
#include "CredentialGenerator.hpp"
#include "DummyCredentialGenerator.hpp"
#include "DummyCredentialGenerator2.hpp"
#include "DummyCredentialGenerator3.hpp"
#include "LdapUserCredentialGenerator.hpp"
#include "PkcsCredentialGenerator.hpp"
#include "NoopCredentialGenerator.hpp"
using namespace gemfire::testframework::security;
CredentialGenerator::registeredClassMap * CredentialGenerator::generatormap = NULL;
CredentialGeneratorPtr CredentialGenerator::create(std::string scheme)
{
if( generators().find(scheme) != generators().end() ) {
return generators()[scheme];
//first call to create, nothing will be registered until now.
} else if( generators().size() == 0 ) {
registerScheme(CredentialGeneratorPtr(new CredentialGenerator()));
registerScheme(CredentialGeneratorPtr(new DummyCredentialGenerator()));
registerScheme(CredentialGeneratorPtr(new DummyCredentialGenerator2()));
registerScheme(CredentialGeneratorPtr(new DummyCredentialGenerator3()));
registerScheme(CredentialGeneratorPtr(new LdapUserCredentialGenerator()));
registerScheme(CredentialGeneratorPtr(new PKCSCredentialGenerator()));
registerScheme(CredentialGeneratorPtr(new NoopCredentialGenerator()));
return create(scheme);
} else {
return CredentialGeneratorPtr(new CredentialGenerator());
}
}