config_method_with_cred::make_credentials() method moved to parent class config_method for seamless EAPMsg method support
This commit is contained in:
@@ -199,6 +199,9 @@ namespace eap
|
||||
};
|
||||
|
||||
|
||||
class credentials;
|
||||
|
||||
|
||||
class config_method : public config
|
||||
{
|
||||
public:
|
||||
@@ -319,6 +322,11 @@ namespace eap
|
||||
///
|
||||
virtual const wchar_t* get_method_str() const = 0;
|
||||
|
||||
///
|
||||
/// Creates a blank set of credentials suitable for this method
|
||||
///
|
||||
virtual credentials* make_credentials() const = 0;
|
||||
|
||||
public:
|
||||
const unsigned int m_level; ///< Config level (0=outer, 1=inner, 2=inner-inner...)
|
||||
bool m_allow_save; ///< Are credentials allowed to be saved to Windows Credential Manager?
|
||||
@@ -327,9 +335,6 @@ namespace eap
|
||||
};
|
||||
|
||||
|
||||
class credentials;
|
||||
|
||||
|
||||
class config_method_with_cred : public config_method
|
||||
{
|
||||
public:
|
||||
@@ -419,11 +424,6 @@ namespace eap
|
||||
|
||||
/// @}
|
||||
|
||||
///
|
||||
/// Creates a blank set of credentials suitable for this method
|
||||
///
|
||||
virtual credentials* make_credentials() const = 0;
|
||||
|
||||
public:
|
||||
bool m_use_cred; ///< Use configured credentials
|
||||
std::unique_ptr<credentials> m_cred; ///< Configured credentials
|
||||
|
@@ -664,8 +664,7 @@ void eap::credentials_connection::load(_In_ IXMLDOMNode *pConfigRoot)
|
||||
// Matching provider found. Create matching blank credential set, then load.
|
||||
if (cfg_prov->m_methods.empty())
|
||||
throw invalid_argument(string_printf(__FUNCTION__ " %ls provider has no methods.", cfg_prov->get_id().c_str()).c_str());
|
||||
const config_method_with_cred *cfg_method = dynamic_cast<const config_method_with_cred*>(cfg_prov->m_methods.front().get());
|
||||
m_cred.reset(cfg_method->make_credentials());
|
||||
m_cred.reset(cfg_prov->m_methods.front().get()->make_credentials());
|
||||
m_cred->load(pXmlElClientSideCredential);
|
||||
break;
|
||||
}
|
||||
@@ -707,8 +706,7 @@ void eap::credentials_connection::operator>>(_Inout_ cursor_in &cursor)
|
||||
// Matching provider found. Create matching blank credential set, then read.
|
||||
if (cfg_prov->m_methods.empty())
|
||||
throw invalid_argument(string_printf(__FUNCTION__ " %ls provider has no methods.", cfg_prov->get_id().c_str()).c_str());
|
||||
const config_method_with_cred *cfg_method = dynamic_cast<const config_method_with_cred*>(cfg_prov->m_methods.front().get());
|
||||
m_cred.reset(cfg_method->make_credentials());
|
||||
m_cred.reset(cfg_prov->m_methods.front().get()->make_credentials());
|
||||
cursor >> *m_cred;
|
||||
break;
|
||||
}
|
||||
|
Reference in New Issue
Block a user