auto policy = reinterpret_cast<AuthPasswd::Policy *>(p_policy);
policy->setFlag(POLICY_FORBIDDEN_PASSWDS);
- policy->forbiddenPasswds.push_back(forbidden_passwd);
+ policy->forbiddenPasswds.insert(forbidden_passwd);
return AUTH_PASSWD_API_SUCCESS;
}
#define _AUTH_PASSWD_POLICY_H_
#include <unistd.h>
-#include <vector>
+#include <set>
#include <string>
#include <auth-passwd-policy-types.h>
#include <dpl/serialization.h>
std::string pattern;
// forbidden strings in password
- std::vector<std::string> forbiddenPasswds;
+ std::set<std::string> forbiddenPasswds;
};
struct PolicySerializable : public Policy, ISerializable {
#define _PILICY_FILE_H_
#include <string>
-#include <vector>
-#include <list>
-#include <memory>
+#include <set>
#include <policy.h>
void setPattern(const std::string &pattern);
bool checkForbiddenPasswds(const std::string &password) const;
- void setForbiddenPasswds(std::vector<std::string> forbiddenPasswds);
+ void setForbiddenPasswds(std::set<std::string> forbiddenPasswds);
private:
void loadMemoryFromFile();
#include <policy-file.h>
#include <fstream>
-#include <algorithm>
#include <regex.h>
#include <fcntl.h>
// policy forbiddenPasswds
bool PolicyFile::checkForbiddenPasswds(const std::string &password) const
{
- if (password.empty())
- return true;
-
- return (std::find(m_policy.forbiddenPasswds.begin(), m_policy.forbiddenPasswds.end(), password)
- == m_policy.forbiddenPasswds.end());
+ return password.empty() || m_policy.forbiddenPasswds.count(password) == 0;
}
- void PolicyFile::setForbiddenPasswds(std::vector<std::string> forbiddenPasswds)
+ void PolicyFile::setForbiddenPasswds(std::set<std::string> forbiddenPasswds)
{
- for (std::vector<std::string>::iterator it = forbiddenPasswds.begin() ;
- it != forbiddenPasswds.end() ; ++it) {
-
- std::string forbiddenPasswd = *it;
- LogError("forbiddenPasswd : " << forbiddenPasswd);
-
- if (forbiddenPasswd.empty())
- m_policy.forbiddenPasswds.clear();
- else
- if (std::find(m_policy.forbiddenPasswds.begin(), m_policy.forbiddenPasswds.end(), forbiddenPasswd)
- == m_policy.forbiddenPasswds.end())
- m_policy.forbiddenPasswds.push_back(forbiddenPasswd);
+ for (auto &passwd : forbiddenPasswds) {
+ if (!passwd.empty())
+ m_policy.forbiddenPasswds.insert(passwd);
}
}
} //namespace AuthPasswd