Change forbidden password data struct to std::set 02/61602/1
authorKyungwook Tak <k.tak@samsung.com>
Wed, 9 Mar 2016 06:20:11 +0000 (15:20 +0900)
committerKyungwook Tak <k.tak@samsung.com>
Wed, 9 Mar 2016 06:20:11 +0000 (15:20 +0900)
Change-Id: I738984b9ea76511f5a258d44755fe870b8fe666e
Signed-off-by: Kyungwook Tak <k.tak@samsung.com>
src/client/client-password-admin.cpp
src/common/include/policy.h
src/server/service/include/policy-file.h
src/server/service/policy-file.cpp

index 06f306dbbd76a1aaf64921c08d838a1386ababd0..56c7424fd14136424fb0abfa33333fcab4526b41 100644 (file)
@@ -240,7 +240,7 @@ int auth_passwd_set_forbidden_passwd(policy_h *p_policy, const char *forbidden_p
 
     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;
 }
index d15e9ad4a895ab96a0c97b952ae79a96fae1be53..10e24fc6b7fcfb70b3516f84ea97a40eb757ea61 100644 (file)
@@ -26,7 +26,7 @@
 #define _AUTH_PASSWD_POLICY_H_
 
 #include <unistd.h>
-#include <vector>
+#include <set>
 #include <string>
 #include <auth-passwd-policy-types.h>
 #include <dpl/serialization.h>
@@ -93,7 +93,7 @@ struct Policy {
     std::string pattern;
 
     // forbidden strings in password
-    std::vector<std::string> forbiddenPasswds;
+    std::set<std::string> forbiddenPasswds;
 };
 
 struct PolicySerializable : public Policy, ISerializable {
index 553bc04e07b98885f46bd57b79d66e44d900f17b..fb408b6e5dc27f72d3538ba0021f4fb96155255a 100644 (file)
@@ -25,9 +25,7 @@
 #define _PILICY_FILE_H_
 
 #include <string>
-#include <vector>
-#include <list>
-#include <memory>
+#include <set>
 
 #include <policy.h>
 
@@ -65,7 +63,7 @@ namespace AuthPasswd
         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();
index 7fa73639e6a520de7f7d7172e04717240c2f07a2..f3c38d34629f8309667b7ae18282c1aed19b027f 100644 (file)
@@ -24,7 +24,6 @@
 #include <policy-file.h>
 
 #include <fstream>
-#include <algorithm>
 #include <regex.h>
 
 #include <fcntl.h>
@@ -371,27 +370,14 @@ namespace AuthPasswd
     // 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