change UID to App Ower UID 61/318361/5
authorDongsun Lee <ds73.lee@samsung.com>
Thu, 16 Jan 2025 04:44:30 +0000 (13:44 +0900)
committerDongsun Lee <ds73.lee@samsung.com>
Mon, 20 Jan 2025 05:03:05 +0000 (14:03 +0900)
Change-Id: Ide3a80611ceefe6ef2f131a8b628ecb8ccf64df0

13 files changed:
packaging/auth-fw.spec
src/server/CMakeLists.txt
src/server/service/include/password-policy-manager.h [new file with mode: 0644]
src/server/service/include/password.h
src/server/service/include/policy-manager.h [deleted file]
src/server/service/password-policy-manager.cpp [new file with mode: 0644]
src/server/service/policy-manager.cpp [deleted file]
src/server/service/user-check.cpp
tests/CMakeLists.txt
tests/test-admin.cpp
tests/test-client.cpp
tests/test-util.cpp
tests/test-util.h

index aeb985bb66e7f3dc2bde0bd01669151e61cc6413..f9a0fbd8a1128f8a7c2f1d3cebb2e359e23789bd 100644 (file)
@@ -18,6 +18,7 @@ BuildRequires: pkgconfig(libtzplatform-config)
 BuildRequires: pkgconfig(cynara-client)
 BuildRequires: pkgconfig(cynara-creds-socket)
 BuildRequires: pkgconfig(cynara-session)
+BuildRequires: pkgconfig(security-manager)
 Requires: security-config
 Requires: lib%{name}-sw-backend = %{version}-%{release}
 %{?systemd_requires}
index 508be063b23d3f2885ea7b1478bf629591fb3262..828a0b428a7de29a3ab818e538ba8f4aa48ebeb8 100644 (file)
@@ -5,6 +5,7 @@ PKG_CHECK_MODULES(SERVER_DEP
     cynara-client
     cynara-creds-socket
     cynara-session
+    security-manager
     )
 
 FIND_PACKAGE(Threads REQUIRED)
@@ -28,8 +29,8 @@ SET(SERVER_SOURCES
     main/socket-manager.cpp
     service/password.cpp
     service/password-manager.cpp
+    service/password-policy-manager.cpp
     service/policy-file.cpp
-    service/policy-manager.cpp
     service/plugin-loader.cpp
     service/plugin-manager.cpp
     service/privilege-check.cpp
diff --git a/src/server/service/include/password-policy-manager.h b/src/server/service/include/password-policy-manager.h
new file mode 100644 (file)
index 0000000..a718095
--- /dev/null
@@ -0,0 +1,62 @@
+/*
+ *  Copyright (c) 2016 - 2016 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ *  Contact: Jooseong Lee <jooseong.lee@samsung.com>
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License
+ */
+/*
+ * @file        password-policy-manager.h
+ * @author      Jooseong Lee (jooseong.lee@samsung.com)
+ * @version     1.0
+ * @brief       Implementation of password management functions
+ */
+
+#ifndef _POLICYMANAGER_H_
+#define _POLICYMANAGER_H_
+
+#include <string>
+#include <map>
+
+#include <policy.h>
+
+#include <policy-file.h>
+
+namespace AuthPasswd {
+class PolicyManager {
+public:
+       typedef std::map<unsigned int, PolicyFile> PolicyFileMap;
+
+       // policy checking functions
+       int checkPolicy(unsigned int passwdType,
+                                       const std::string &currentPassword,
+                                       const std::string &newPassword,
+                                       unsigned int user);
+
+       // policy setting functions
+       int setPolicy(Policy policy);
+
+       // policy disabling functions
+       int disablePolicy(unsigned int user);
+
+private:
+       // managing functions
+       void addPolicy(unsigned int user);
+       void removePolicy(unsigned int user);
+       void existPolicy(unsigned int user);
+
+       PolicyFileMap m_policyFile;
+};
+} //namespace AuthPasswd
+
+#endif
index 4b9085d3e33bd06046fa444f38d4d064135ac79f..a00655e4f4768d733e435a5ce261ab40a2928505 100644 (file)
@@ -36,7 +36,7 @@
 #include <protocols.h>
 
 #include <password-manager.h>
-#include <policy-manager.h>
+#include <password-policy-manager.h>
 
 namespace AuthPasswd {
 class PasswordService
diff --git a/src/server/service/include/policy-manager.h b/src/server/service/include/policy-manager.h
deleted file mode 100644 (file)
index 4e81938..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- *  Copyright (c) 2016 - 2016 Samsung Electronics Co., Ltd All Rights Reserved
- *
- *  Contact: Jooseong Lee <jooseong.lee@samsung.com>
- *
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License
- */
-/*
- * @file        policy-manager.h
- * @author      Jooseong Lee (jooseong.lee@samsung.com)
- * @version     1.0
- * @brief       Implementation of password management functions
- */
-
-#ifndef _POLICYMANAGER_H_
-#define _POLICYMANAGER_H_
-
-#include <string>
-#include <map>
-
-#include <policy.h>
-
-#include <policy-file.h>
-
-namespace AuthPasswd {
-class PolicyManager {
-public:
-       typedef std::map<unsigned int, PolicyFile> PolicyFileMap;
-
-       // policy checking functions
-       int checkPolicy(unsigned int passwdType,
-                                       const std::string &currentPassword,
-                                       const std::string &newPassword,
-                                       unsigned int user);
-
-       // policy setting functions
-       int setPolicy(Policy policy);
-
-       // policy disabling functions
-       int disablePolicy(unsigned int user);
-
-private:
-       // managing functions
-       void addPolicy(unsigned int user);
-       void removePolicy(unsigned int user);
-       void existPolicy(unsigned int user);
-
-       PolicyFileMap m_policyFile;
-};
-} //namespace AuthPasswd
-
-#endif
diff --git a/src/server/service/password-policy-manager.cpp b/src/server/service/password-policy-manager.cpp
new file mode 100644 (file)
index 0000000..413b3bc
--- /dev/null
@@ -0,0 +1,283 @@
+/*
+ *  Copyright (c) 2016 - 2016 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ *  Contact: Jooseong Lee <jooseong.lee@samsung.com>
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License
+ */
+/*
+ * @file        policy-manager.cpp
+ * @author      Jooseong Lee (jooseong.lee@samsung.com)
+ * @version     1.0
+ * @brief       Implementation of password policy management functions
+ */
+
+#include <password-policy-manager.h>
+
+#include <iostream>
+#include <iterator>
+#include <algorithm>
+#include <cassert>
+#include <climits>
+
+#include <dpl/log/log.h>
+
+#include <auth-passwd-policy-types.h>
+#include <auth-passwd-error.h>
+
+namespace AuthPasswd {
+void PolicyManager::addPolicy(unsigned int user)
+{
+       m_policyFile.insert(PolicyFileMap::value_type(user, PolicyFile(user)));
+}
+
+void PolicyManager::removePolicy(unsigned int user)
+{
+       m_policyFile.erase(user);
+}
+
+void PolicyManager::existPolicy(unsigned int user)
+{
+       PolicyFileMap::iterator itPwd = m_policyFile.find(user);
+
+       if (itPwd != m_policyFile.end())
+               return;
+
+       addPolicy(user);
+       return;
+}
+
+int PolicyManager::checkPolicy(unsigned int passwdType,
+                                                          const std::string &currentPassword,
+                                                          const std::string &newPassword,
+                                                          unsigned int user)
+{
+       LogSecureDebug("Inside checkPolicy function.");
+
+       // check if passwords are correct
+       if (currentPassword.size() > MAX_PASSWORD_LEN) {
+               LogError("Current password length failed.");
+               return AUTH_PASSWD_API_ERROR_INPUT_PARAM;
+       }
+
+       if (newPassword.size() > MAX_PASSWORD_LEN) {
+               LogError("New password length failed.");
+               return AUTH_PASSWD_API_ERROR_INPUT_PARAM;
+       }
+
+       existPolicy(user);
+       PolicyFileMap::iterator itPolicy = m_policyFile.find(user);
+
+       if (!itPolicy->second.isPolicyActive() || (passwdType != AUTH_PWD_NORMAL))
+               return AUTH_PASSWD_API_SUCCESS;
+
+       if (itPolicy->second.getQualityType() == AUTH_PWD_QUALITY_UNSPECIFIED && newPassword.empty())
+               return AUTH_PASSWD_API_SUCCESS;
+
+       if (!itPolicy->second.checkMinLength(newPassword)) {
+               LogError("new passwd's minLength is invalid");
+               return AUTH_PASSWD_API_ERROR_INVALID_MIN_LENGTH;
+       }
+
+       if (!itPolicy->second.checkMinComplexCharNumber(newPassword)) {
+               LogError("new passwd's minComplexCharNumber is invalid");
+               return AUTH_PASSWD_API_ERROR_INVALID_MIN_COMPLEX_CHAR_NUM;
+       }
+
+       if (!itPolicy->second.checkMaxCharOccurrences(newPassword)) {
+               LogError("new passwd's maxCharOccurrences is invalid");
+               return AUTH_PASSWD_API_ERROR_INVALID_MAX_CHAR_OCCURENCES;
+       }
+
+       if (!itPolicy->second.checkMaxNumSeqLength(newPassword)) {
+               LogError("new passwd's maxNumSeqLength is invalid");
+               return AUTH_PASSWD_API_ERROR_INVALID_MAX_NUM_SEQ_LENGTH;
+       }
+
+       if (!itPolicy->second.checkForbiddenPasswds(newPassword)) {
+               LogError("new passwd is forbiddenPasswd");
+               return AUTH_PASSWD_API_ERROR_INVALID_FORBIDDEN_PASSWORDS;
+       }
+
+       if (!itPolicy->second.checkQualityType(newPassword)) {
+               LogError("new passwd's qualityType is invalid");
+               return AUTH_PASSWD_API_ERROR_INVALID_QUALITY_TYPE;
+       }
+
+       if (!itPolicy->second.checkPattern(newPassword)) {
+               LogError("new passwd's pattern is invalid");
+               return AUTH_PASSWD_API_ERROR_INVALID_PATTERN;
+       }
+
+       return AUTH_PASSWD_API_SUCCESS;
+}
+
+int PolicyManager::setPolicy(Policy policy)
+{
+       LogSecureDebug("Inside setPolicy function.");
+       existPolicy(policy.uid);
+       PolicyFileMap::iterator itPolicy = m_policyFile.find(policy.uid);
+
+       // check if policies are correct
+       assert(POLICY_TYPE_FIRST == POLICY_MAX_ATTEMPTS);
+       assert(POLICY_TYPE_LAST == POLICY_FORBIDDEN_PASSWDS);
+       for (int i = POLICY_TYPE_FIRST; i < POLICY_TYPE_LAST + 1; i++) {
+               if (!policy.isFlagOn(static_cast<password_policy_type>(i)))
+                       continue;
+
+               switch (i) {
+               case POLICY_MAX_ATTEMPTS:
+                       break;
+
+               case POLICY_VALID_PERIOD: {
+                       time_t curTime = time(NULL);
+
+                       if (policy.validPeriod > ((UINT_MAX - curTime) / 86400)) {
+                               LogError("Incorrect input param.");
+                               return AUTH_PASSWD_API_ERROR_INPUT_PARAM;
+                       }
+
+                       break;
+               }
+
+               case POLICY_HISTORY_SIZE:
+                       if (policy.historySize > MAX_PASSWORD_HISTORY) {
+                               LogError("Incorrect input param.");
+                               return AUTH_PASSWD_API_ERROR_INPUT_PARAM;
+                       }
+
+                       break;
+
+               case POLICY_MIN_LENGTH:
+                       if (policy.minLength > MAX_PASSWORD_LEN) {
+                               LogError("Incorrect input param.");
+                               return AUTH_PASSWD_API_ERROR_INPUT_PARAM;
+                       }
+
+                       break;
+
+               case POLICY_MIN_COMPLEX_CHAR_NUMBER:
+                       if (policy.minComplexCharNumber > MAX_PASSWORD_LEN) {
+                               LogError("Incorrect input param.");
+                               return AUTH_PASSWD_API_ERROR_INPUT_PARAM;
+                       }
+
+                       break;
+
+               case POLICY_MAX_CHAR_OCCURRENCES:
+                       if (policy.maxCharOccurrences > MAX_PASSWORD_LEN) {
+                               LogError("Incorrect input param.");
+                               return AUTH_PASSWD_API_ERROR_INPUT_PARAM;
+                       }
+
+                       break;
+
+               case POLICY_MAX_NUMERIC_SEQ_LENGTH:
+                       if (policy.maxNumSeqLength > MAX_PASSWORD_LEN) {
+                               LogError("Incorrect input param.");
+                               return AUTH_PASSWD_API_ERROR_INPUT_PARAM;
+                       }
+
+                       break;
+
+               case POLICY_QUALITY_TYPE:
+                       if (policy.qualityType > AUTH_PWD_QUALITY_LAST) {
+                               LogError("Incorrect input param.");
+                               return AUTH_PASSWD_API_ERROR_INPUT_PARAM;
+                       }
+
+                       break;
+
+               case POLICY_PATTERN:
+                       if (!itPolicy->second.isValidPattern(policy.pattern)) {
+                               LogError("Incorrect input param.");
+                               return AUTH_PASSWD_API_ERROR_INPUT_PARAM;
+                       }
+
+                       break;
+
+               default: // POLICY_FORBIDDEN_PASSWDS
+                       break;
+               }
+       }
+
+       // update policies
+       for (int i = POLICY_TYPE_FIRST; i < POLICY_TYPE_LAST + 1; i++) {
+               if (!policy.isFlagOn(static_cast<password_policy_type>(i)))
+                       continue;
+
+               switch (i) {
+               case POLICY_MAX_ATTEMPTS:
+                       LogSecureDebug("maxAttempts: " << policy.maxAttempts);
+                       break;
+
+               case POLICY_VALID_PERIOD:
+                       LogSecureDebug("validPeriod: " << policy.validPeriod);
+                       break;
+
+               case POLICY_HISTORY_SIZE:
+                       LogSecureDebug("historySize: " << policy.historySize);
+                       break;
+
+               case POLICY_MIN_LENGTH:
+                       LogSecureDebug("minLength: " << policy.minLength);
+                       itPolicy->second.setMinLength(policy.minLength);
+                       break;
+
+               case POLICY_MIN_COMPLEX_CHAR_NUMBER:
+                       LogSecureDebug("minComplexCharNumber: " << policy.minComplexCharNumber);
+                       itPolicy->second.setMinComplexCharNumber(policy.minComplexCharNumber);
+                       break;
+
+               case POLICY_MAX_CHAR_OCCURRENCES:
+                       LogSecureDebug("maxCharOccurrences: " << policy.maxCharOccurrences);
+                       itPolicy->second.setMaxCharOccurrences(policy.maxCharOccurrences);
+                       break;
+
+               case POLICY_MAX_NUMERIC_SEQ_LENGTH:
+                       LogSecureDebug("maxNumSeqLength: " << policy.maxNumSeqLength);
+                       itPolicy->second.setMaxNumSeqLength(policy.maxNumSeqLength);
+                       break;
+
+               case POLICY_QUALITY_TYPE:
+                       LogSecureDebug("qualityType: " << policy.qualityType);
+                       itPolicy->second.setQualityType(policy.qualityType);
+                       break;
+
+               case POLICY_PATTERN:
+                       LogSecureDebug("pattern: " << policy.pattern);
+                       itPolicy->second.setPattern(policy.pattern);
+                       break;
+
+               default: // POLICY_FORBIDDEN_PASSWDS
+                       LogSecureDebug("forbiddenPasswds number: " << policy.forbiddenPasswds.size());
+                       itPolicy->second.setForbiddenPasswds(policy.forbiddenPasswds);
+                       break;
+               }
+       }
+
+       itPolicy->second.enable();
+       itPolicy->second.writeMemoryToFile();
+       return AUTH_PASSWD_API_SUCCESS;
+}
+
+int PolicyManager::disablePolicy(unsigned int user)
+{
+       LogSecureDebug("Inside disablePolicy function.");
+       existPolicy(user);
+       PolicyFileMap::iterator itPolicy = m_policyFile.find(user);
+       itPolicy->second.disable();
+       itPolicy->second.writeMemoryToFile();
+       return AUTH_PASSWD_API_SUCCESS;
+}
+} //namespace AuthPasswd
diff --git a/src/server/service/policy-manager.cpp b/src/server/service/policy-manager.cpp
deleted file mode 100644 (file)
index 3f14e59..0000000
+++ /dev/null
@@ -1,283 +0,0 @@
-/*
- *  Copyright (c) 2016 - 2016 Samsung Electronics Co., Ltd All Rights Reserved
- *
- *  Contact: Jooseong Lee <jooseong.lee@samsung.com>
- *
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License
- */
-/*
- * @file        policy-manager.cpp
- * @author      Jooseong Lee (jooseong.lee@samsung.com)
- * @version     1.0
- * @brief       Implementation of password policy management functions
- */
-
-#include <policy-manager.h>
-
-#include <iostream>
-#include <iterator>
-#include <algorithm>
-#include <cassert>
-#include <climits>
-
-#include <dpl/log/log.h>
-
-#include <auth-passwd-policy-types.h>
-#include <auth-passwd-error.h>
-
-namespace AuthPasswd {
-void PolicyManager::addPolicy(unsigned int user)
-{
-       m_policyFile.insert(PolicyFileMap::value_type(user, PolicyFile(user)));
-}
-
-void PolicyManager::removePolicy(unsigned int user)
-{
-       m_policyFile.erase(user);
-}
-
-void PolicyManager::existPolicy(unsigned int user)
-{
-       PolicyFileMap::iterator itPwd = m_policyFile.find(user);
-
-       if (itPwd != m_policyFile.end())
-               return;
-
-       addPolicy(user);
-       return;
-}
-
-int PolicyManager::checkPolicy(unsigned int passwdType,
-                                                          const std::string &currentPassword,
-                                                          const std::string &newPassword,
-                                                          unsigned int user)
-{
-       LogSecureDebug("Inside checkPolicy function.");
-
-       // check if passwords are correct
-       if (currentPassword.size() > MAX_PASSWORD_LEN) {
-               LogError("Current password length failed.");
-               return AUTH_PASSWD_API_ERROR_INPUT_PARAM;
-       }
-
-       if (newPassword.size() > MAX_PASSWORD_LEN) {
-               LogError("New password length failed.");
-               return AUTH_PASSWD_API_ERROR_INPUT_PARAM;
-       }
-
-       existPolicy(user);
-       PolicyFileMap::iterator itPolicy = m_policyFile.find(user);
-
-       if (!itPolicy->second.isPolicyActive() || (passwdType != AUTH_PWD_NORMAL))
-               return AUTH_PASSWD_API_SUCCESS;
-
-       if (itPolicy->second.getQualityType() == AUTH_PWD_QUALITY_UNSPECIFIED && newPassword.empty())
-               return AUTH_PASSWD_API_SUCCESS;
-
-       if (!itPolicy->second.checkMinLength(newPassword)) {
-               LogError("new passwd's minLength is invalid");
-               return AUTH_PASSWD_API_ERROR_INVALID_MIN_LENGTH;
-       }
-
-       if (!itPolicy->second.checkMinComplexCharNumber(newPassword)) {
-               LogError("new passwd's minComplexCharNumber is invalid");
-               return AUTH_PASSWD_API_ERROR_INVALID_MIN_COMPLEX_CHAR_NUM;
-       }
-
-       if (!itPolicy->second.checkMaxCharOccurrences(newPassword)) {
-               LogError("new passwd's maxCharOccurrences is invalid");
-               return AUTH_PASSWD_API_ERROR_INVALID_MAX_CHAR_OCCURENCES;
-       }
-
-       if (!itPolicy->second.checkMaxNumSeqLength(newPassword)) {
-               LogError("new passwd's maxNumSeqLength is invalid");
-               return AUTH_PASSWD_API_ERROR_INVALID_MAX_NUM_SEQ_LENGTH;
-       }
-
-       if (!itPolicy->second.checkForbiddenPasswds(newPassword)) {
-               LogError("new passwd is forbiddenPasswd");
-               return AUTH_PASSWD_API_ERROR_INVALID_FORBIDDEN_PASSWORDS;
-       }
-
-       if (!itPolicy->second.checkQualityType(newPassword)) {
-               LogError("new passwd's qualityType is invalid");
-               return AUTH_PASSWD_API_ERROR_INVALID_QUALITY_TYPE;
-       }
-
-       if (!itPolicy->second.checkPattern(newPassword)) {
-               LogError("new passwd's pattern is invalid");
-               return AUTH_PASSWD_API_ERROR_INVALID_PATTERN;
-       }
-
-       return AUTH_PASSWD_API_SUCCESS;
-}
-
-int PolicyManager::setPolicy(Policy policy)
-{
-       LogSecureDebug("Inside setPolicy function.");
-       existPolicy(policy.uid);
-       PolicyFileMap::iterator itPolicy = m_policyFile.find(policy.uid);
-
-       // check if policies are correct
-       assert(POLICY_TYPE_FIRST == POLICY_MAX_ATTEMPTS);
-       assert(POLICY_TYPE_LAST == POLICY_FORBIDDEN_PASSWDS);
-       for (int i = POLICY_TYPE_FIRST; i < POLICY_TYPE_LAST + 1; i++) {
-               if (!policy.isFlagOn(static_cast<password_policy_type>(i)))
-                       continue;
-
-               switch (i) {
-               case POLICY_MAX_ATTEMPTS:
-                       break;
-
-               case POLICY_VALID_PERIOD: {
-                       time_t curTime = time(NULL);
-
-                       if (policy.validPeriod > ((UINT_MAX - curTime) / 86400)) {
-                               LogError("Incorrect input param.");
-                               return AUTH_PASSWD_API_ERROR_INPUT_PARAM;
-                       }
-
-                       break;
-               }
-
-               case POLICY_HISTORY_SIZE:
-                       if (policy.historySize > MAX_PASSWORD_HISTORY) {
-                               LogError("Incorrect input param.");
-                               return AUTH_PASSWD_API_ERROR_INPUT_PARAM;
-                       }
-
-                       break;
-
-               case POLICY_MIN_LENGTH:
-                       if (policy.minLength > MAX_PASSWORD_LEN) {
-                               LogError("Incorrect input param.");
-                               return AUTH_PASSWD_API_ERROR_INPUT_PARAM;
-                       }
-
-                       break;
-
-               case POLICY_MIN_COMPLEX_CHAR_NUMBER:
-                       if (policy.minComplexCharNumber > MAX_PASSWORD_LEN) {
-                               LogError("Incorrect input param.");
-                               return AUTH_PASSWD_API_ERROR_INPUT_PARAM;
-                       }
-
-                       break;
-
-               case POLICY_MAX_CHAR_OCCURRENCES:
-                       if (policy.maxCharOccurrences > MAX_PASSWORD_LEN) {
-                               LogError("Incorrect input param.");
-                               return AUTH_PASSWD_API_ERROR_INPUT_PARAM;
-                       }
-
-                       break;
-
-               case POLICY_MAX_NUMERIC_SEQ_LENGTH:
-                       if (policy.maxNumSeqLength > MAX_PASSWORD_LEN) {
-                               LogError("Incorrect input param.");
-                               return AUTH_PASSWD_API_ERROR_INPUT_PARAM;
-                       }
-
-                       break;
-
-               case POLICY_QUALITY_TYPE:
-                       if (policy.qualityType > AUTH_PWD_QUALITY_LAST) {
-                               LogError("Incorrect input param.");
-                               return AUTH_PASSWD_API_ERROR_INPUT_PARAM;
-                       }
-
-                       break;
-
-               case POLICY_PATTERN:
-                       if (!itPolicy->second.isValidPattern(policy.pattern)) {
-                               LogError("Incorrect input param.");
-                               return AUTH_PASSWD_API_ERROR_INPUT_PARAM;
-                       }
-
-                       break;
-
-               default: // POLICY_FORBIDDEN_PASSWDS
-                       break;
-               }
-       }
-
-       // update policies
-       for (int i = POLICY_TYPE_FIRST; i < POLICY_TYPE_LAST + 1; i++) {
-               if (!policy.isFlagOn(static_cast<password_policy_type>(i)))
-                       continue;
-
-               switch (i) {
-               case POLICY_MAX_ATTEMPTS:
-                       LogSecureDebug("maxAttempts: " << policy.maxAttempts);
-                       break;
-
-               case POLICY_VALID_PERIOD:
-                       LogSecureDebug("validPeriod: " << policy.validPeriod);
-                       break;
-
-               case POLICY_HISTORY_SIZE:
-                       LogSecureDebug("historySize: " << policy.historySize);
-                       break;
-
-               case POLICY_MIN_LENGTH:
-                       LogSecureDebug("minLength: " << policy.minLength);
-                       itPolicy->second.setMinLength(policy.minLength);
-                       break;
-
-               case POLICY_MIN_COMPLEX_CHAR_NUMBER:
-                       LogSecureDebug("minComplexCharNumber: " << policy.minComplexCharNumber);
-                       itPolicy->second.setMinComplexCharNumber(policy.minComplexCharNumber);
-                       break;
-
-               case POLICY_MAX_CHAR_OCCURRENCES:
-                       LogSecureDebug("maxCharOccurrences: " << policy.maxCharOccurrences);
-                       itPolicy->second.setMaxCharOccurrences(policy.maxCharOccurrences);
-                       break;
-
-               case POLICY_MAX_NUMERIC_SEQ_LENGTH:
-                       LogSecureDebug("maxNumSeqLength: " << policy.maxNumSeqLength);
-                       itPolicy->second.setMaxNumSeqLength(policy.maxNumSeqLength);
-                       break;
-
-               case POLICY_QUALITY_TYPE:
-                       LogSecureDebug("qualityType: " << policy.qualityType);
-                       itPolicy->second.setQualityType(policy.qualityType);
-                       break;
-
-               case POLICY_PATTERN:
-                       LogSecureDebug("pattern: " << policy.pattern);
-                       itPolicy->second.setPattern(policy.pattern);
-                       break;
-
-               default: // POLICY_FORBIDDEN_PASSWDS
-                       LogSecureDebug("forbiddenPasswds number: " << policy.forbiddenPasswds.size());
-                       itPolicy->second.setForbiddenPasswds(policy.forbiddenPasswds);
-                       break;
-               }
-       }
-
-       itPolicy->second.enable();
-       itPolicy->second.writeMemoryToFile();
-       return AUTH_PASSWD_API_SUCCESS;
-}
-
-int PolicyManager::disablePolicy(unsigned int user)
-{
-       LogSecureDebug("Inside disablePolicy function.");
-       existPolicy(user);
-       PolicyFileMap::iterator itPolicy = m_policyFile.find(user);
-       itPolicy->second.disable();
-       itPolicy->second.writeMemoryToFile();
-       return AUTH_PASSWD_API_SUCCESS;
-}
-} //namespace AuthPasswd
index 779864bbfeb3a7a8e1a154d2d2aa0eec1aeae245..867045c5a98b9d28eadccd8349612a96c46b9540 100644 (file)
@@ -25,6 +25,7 @@
 #include <sys/un.h>
 
 #include <dpl/log/log.h>
+#include <app-runtime.h>
 
 namespace AuthPasswd {
 
@@ -38,7 +39,24 @@ int socket_get_user(int sockfd, unsigned int &user)
                return 1;
        }
 
-       user = cr.uid;
+       bool is_app = false;
+       int ret = security_manager_is_app_from_pid(cr.pid, &is_app);
+       if (ret != SECURITY_MANAGER_SUCCESS) {
+               LogError("security_manager_is_app_from_pid() failed. ret=" << ret);
+               return 1;
+       }
+
+       if (is_app) {
+               // The client is an application. So we need to get app ower id.
+               ret = security_manager_get_app_owner_uid(cr.pid, &user);
+               if (ret != SECURITY_MANAGER_SUCCESS) {
+                       LogError("security_manager_get_app_owner_uid() failed. ret=" << ret);
+                       return 1;
+               }
+       } else {
+               user = cr.uid;
+       }
+
        return 0;
 }
 
index f5ffc096120250774f2e3c09ad3a525221e5eedc..11249d071073bdd37bb02a6bc8d45b1da0f2b236 100644 (file)
@@ -25,7 +25,7 @@ SET(TEST_SRCS main.cpp
                          ${SERVER_PATH}/service/plugin-loader.cpp
                          ${SERVER_PATH}/service/plugin-manager.cpp)
 
-PKG_CHECK_MODULES(${TARGET_TEST}_DEP REQUIRED klay security-manager)
+PKG_CHECK_MODULES(${TARGET_TEST}_DEP REQUIRED klay security-manager libtzplatform-config)
 
 INCLUDE_DIRECTORIES(SYSTEM ${${TARGET_TEST}_DEP_INCLUDE_DIRS}
                                                   ${INCLUDE_PATH}
index efe275eb9154cc38c2d4c3c7d1dff353769a65c2..0157e98afc9543c29c5c714a624762aa7ce5400e 100644 (file)
@@ -40,7 +40,7 @@ TESTCASE(T00200_init)
 {
        int ret = auth_passwd_reset_passwd(
                        AUTH_PWD_NORMAL,
-                       getuid(),
+                       test::get_test_uid(false),
                        default_pass);
 
        TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
@@ -52,7 +52,7 @@ TESTCASE(T00201_set_policy_params)
        policy_h *policy = sp.get();
        TEST_EXPECT(true, policy != nullptr);
 
-       int ret = auth_passwd_set_user(policy, getuid());
+       int ret = auth_passwd_set_user(policy, test::get_test_uid(false));
        TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
 
        ret = auth_passwd_set_max_attempts(policy, 10);
@@ -89,7 +89,7 @@ TESTCASE(T00201_set_policy_params)
 
 TESTCASE(T00202_disable_policy)
 {
-       int ret = auth_passwd_disable_policy(getuid());
+       int ret = auth_passwd_disable_policy(test::get_test_uid(false));
        TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
 }
 
@@ -99,7 +99,7 @@ TESTCASE(T00203_password_qaulity)
        policy_h *policy = sp.get();
        TEST_EXPECT(true, policy != nullptr);
 
-       int ret = auth_passwd_set_user(policy, getuid());
+       int ret = auth_passwd_set_user(policy, test::get_test_uid(false));
        TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
 
        // ===============================
@@ -110,7 +110,7 @@ TESTCASE(T00203_password_qaulity)
        TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
        sleep(1);
 
-       ret = auth_passwd_reset_passwd(AUTH_PWD_NORMAL, getuid(), default_pass);
+       ret = auth_passwd_reset_passwd(AUTH_PWD_NORMAL, test::get_test_uid(false), default_pass);
        TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
        sleep(1);
 
@@ -129,7 +129,7 @@ TESTCASE(T00203_password_qaulity)
        TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
        sleep(1);
 
-       ret = auth_passwd_reset_passwd(AUTH_PWD_NORMAL, getuid(), default_pass);
+       ret = auth_passwd_reset_passwd(AUTH_PWD_NORMAL, test::get_test_uid(false), default_pass);
        TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
        sleep(1);
 
@@ -141,7 +141,7 @@ TESTCASE(T00203_password_qaulity)
        TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
        sleep(1);
 
-       ret = auth_passwd_reset_passwd(AUTH_PWD_NORMAL, getuid(), default_pass);
+       ret = auth_passwd_reset_passwd(AUTH_PWD_NORMAL, test::get_test_uid(false), default_pass);
        TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
        sleep(1);
 
@@ -149,7 +149,7 @@ TESTCASE(T00203_password_qaulity)
        TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
        sleep(1);
 
-       ret = auth_passwd_reset_passwd(AUTH_PWD_NORMAL, getuid(), default_pass);
+       ret = auth_passwd_reset_passwd(AUTH_PWD_NORMAL, test::get_test_uid(false), default_pass);
        TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
        sleep(1);
 
@@ -164,7 +164,7 @@ TESTCASE(T00203_password_qaulity)
        TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
        sleep(1);
 
-       ret = auth_passwd_reset_passwd(AUTH_PWD_NORMAL, getuid(), default_pass);
+       ret = auth_passwd_reset_passwd(AUTH_PWD_NORMAL, test::get_test_uid(false), default_pass);
        TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
        sleep(1);
 
@@ -183,7 +183,7 @@ TESTCASE(T00203_password_qaulity)
        TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
        sleep(1);
 
-       ret = auth_passwd_reset_passwd(AUTH_PWD_NORMAL, getuid(), default_pass);
+       ret = auth_passwd_reset_passwd(AUTH_PWD_NORMAL, test::get_test_uid(false), default_pass);
        TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
        sleep(1);
 
@@ -207,7 +207,7 @@ TESTCASE(T00203_password_qaulity)
        TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
        sleep(1);
 
-       ret = auth_passwd_reset_passwd(AUTH_PWD_NORMAL, getuid(), default_pass);
+       ret = auth_passwd_reset_passwd(AUTH_PWD_NORMAL, test::get_test_uid(false), default_pass);
        TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
        sleep(1);
 
@@ -215,7 +215,7 @@ TESTCASE(T00203_password_qaulity)
        TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
        sleep(1);
 
-       ret = auth_passwd_reset_passwd(AUTH_PWD_NORMAL, getuid(), default_pass);
+       ret = auth_passwd_reset_passwd(AUTH_PWD_NORMAL, test::get_test_uid(false), default_pass);
        TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
        sleep(1);
 
@@ -223,7 +223,7 @@ TESTCASE(T00203_password_qaulity)
        TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
        sleep(1);
 
-       ret = auth_passwd_reset_passwd(AUTH_PWD_NORMAL, getuid(), default_pass);
+       ret = auth_passwd_reset_passwd(AUTH_PWD_NORMAL, test::get_test_uid(false), default_pass);
        TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
        sleep(1);
 
@@ -238,7 +238,7 @@ TESTCASE(T00204_min_complex_char)
        policy_h *policy = sp.get();
        TEST_EXPECT(true, policy != nullptr);
 
-       int ret = auth_passwd_set_user(policy, getuid());
+       int ret = auth_passwd_set_user(policy, test::get_test_uid(false));
        TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
 
        ret = auth_passwd_set_history_size(policy, 0);
@@ -258,7 +258,7 @@ TESTCASE(T00204_min_complex_char)
        TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
        sleep(1);
 
-       ret = auth_passwd_reset_passwd(AUTH_PWD_NORMAL, getuid(), default_pass);
+       ret = auth_passwd_reset_passwd(AUTH_PWD_NORMAL, test::get_test_uid(false), default_pass);
        TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
        sleep(1);
 
@@ -266,7 +266,7 @@ TESTCASE(T00204_min_complex_char)
        TEST_EXPECT(AUTH_PASSWD_API_ERROR_INVALID_MIN_COMPLEX_CHAR_NUM, ret);
        sleep(1);
 
-       ret = auth_passwd_reset_passwd(AUTH_PWD_NORMAL, getuid(), default_pass);
+       ret = auth_passwd_reset_passwd(AUTH_PWD_NORMAL, test::get_test_uid(false), default_pass);
        TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
        sleep(1);
 
@@ -274,7 +274,7 @@ TESTCASE(T00204_min_complex_char)
        TEST_EXPECT(AUTH_PASSWD_API_ERROR_INVALID_MIN_COMPLEX_CHAR_NUM, ret);
        sleep(1);
 
-       ret = auth_passwd_reset_passwd(AUTH_PWD_NORMAL, getuid(), default_pass);
+       ret = auth_passwd_reset_passwd(AUTH_PWD_NORMAL, test::get_test_uid(false), default_pass);
        TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
        sleep(1);
 
@@ -289,7 +289,7 @@ TESTCASE(T00204_min_complex_char)
        TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
        sleep(1);
 
-       ret = auth_passwd_reset_passwd(AUTH_PWD_NORMAL, getuid(), default_pass);
+       ret = auth_passwd_reset_passwd(AUTH_PWD_NORMAL, test::get_test_uid(false), default_pass);
        TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
        sleep(1);
 
@@ -316,7 +316,7 @@ TESTCASE(T00204_min_complex_char)
        TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
        sleep(1);
 
-       ret = auth_passwd_reset_passwd(AUTH_PWD_NORMAL, getuid(), default_pass);
+       ret = auth_passwd_reset_passwd(AUTH_PWD_NORMAL, test::get_test_uid(false), default_pass);
        TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
        sleep(1);
 
@@ -342,7 +342,7 @@ TESTCASE(T00204_min_complex_char)
        TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
        sleep(1);
 
-       ret = auth_passwd_reset_passwd(AUTH_PWD_NORMAL, getuid(), default_pass);
+       ret = auth_passwd_reset_passwd(AUTH_PWD_NORMAL, test::get_test_uid(false), default_pass);
        TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
        sleep(1);
 
@@ -381,7 +381,7 @@ TESTCASE(T00204_min_complex_char)
        TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
        sleep(1);
 
-       ret = auth_passwd_reset_passwd(AUTH_PWD_NORMAL, getuid(), default_pass);
+       ret = auth_passwd_reset_passwd(AUTH_PWD_NORMAL, test::get_test_uid(false), default_pass);
        TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
        sleep(1);
 
@@ -389,7 +389,7 @@ TESTCASE(T00204_min_complex_char)
        TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
        sleep(1);
 
-       ret = auth_passwd_reset_passwd(AUTH_PWD_NORMAL, getuid(), default_pass);
+       ret = auth_passwd_reset_passwd(AUTH_PWD_NORMAL, test::get_test_uid(false), default_pass);
        TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
        sleep(1);
 
@@ -397,7 +397,7 @@ TESTCASE(T00204_min_complex_char)
        TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
        sleep(1);
 
-       ret = auth_passwd_reset_passwd(AUTH_PWD_NORMAL, getuid(), default_pass);
+       ret = auth_passwd_reset_passwd(AUTH_PWD_NORMAL, test::get_test_uid(false), default_pass);
        TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
        sleep(1);
 
@@ -415,7 +415,7 @@ TESTCASE(T00205_pattern)
        policy_h *policy = sp.get();
        TEST_EXPECT(true, policy != nullptr);
 
-       int ret = auth_passwd_set_user(policy, getuid());
+       int ret = auth_passwd_set_user(policy, test::get_test_uid(false));
        TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
 
        ret = auth_passwd_set_history_size(policy, 0);
@@ -432,7 +432,7 @@ TESTCASE(T00205_pattern)
        TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
        sleep(1);
 
-       ret = auth_passwd_reset_passwd(AUTH_PWD_NORMAL, getuid(), default_pass);
+       ret = auth_passwd_reset_passwd(AUTH_PWD_NORMAL, test::get_test_uid(false), default_pass);
        TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
        sleep(1);
 
@@ -462,7 +462,7 @@ TESTCASE(T00206_max_num_seq)
        policy_h *policy = sp.get();
        TEST_EXPECT(true, policy != nullptr);
 
-       int ret = auth_passwd_set_user(policy, getuid());
+       int ret = auth_passwd_set_user(policy, test::get_test_uid(false));
        TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
 
        ret = auth_passwd_set_max_num_seq_len(policy, max_num_seq);
@@ -471,7 +471,7 @@ TESTCASE(T00206_max_num_seq)
        ret = auth_passwd_set_policy(policy);
        TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
 
-       ret = auth_passwd_reset_passwd(AUTH_PWD_NORMAL, getuid(), default_pass);
+       ret = auth_passwd_reset_passwd(AUTH_PWD_NORMAL, test::get_test_uid(false), default_pass);
        TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
        sleep(1);
 
@@ -486,14 +486,14 @@ TESTCASE(T00206_max_num_seq)
        ret = auth_passwd_set_passwd(AUTH_PWD_NORMAL, default_pass, allowed_pass);
        TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
 
-       ret = auth_passwd_disable_policy(getuid());
+       ret = auth_passwd_disable_policy(test::get_test_uid(false));
        TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
 }
 
 TESTCASE(T00207_reset_passwd_privilege)
 {
        auto reset_passwd_function = [] () -> int {
-               return auth_passwd_reset_passwd(AUTH_PWD_NORMAL, getuid(), default_pass);
+               return auth_passwd_reset_passwd(AUTH_PWD_NORMAL, test::get_test_uid(false), default_pass);
        };
 
        TEST_EXPECT(true, test::run_in_process(SM_PROCESS_TYPE_APP, "org.tizen.settings.main",
@@ -515,7 +515,7 @@ TESTCASE(T00208_set_policy_privilege)
                test::ScopedPolicy sp(test::create_policy_h(), auth_passwd_free_policy);
                policy_h *policy = sp.get();
 
-               int ret = auth_passwd_set_user(policy, getuid());
+               int ret = auth_passwd_set_user(policy, test::get_test_uid(false));
                if (ret != AUTH_PASSWD_API_SUCCESS)
                        return ret;
                ret = auth_passwd_set_max_attempts(policy, 10);
@@ -528,18 +528,12 @@ TESTCASE(T00208_set_policy_privilege)
        TEST_EXPECT(true, test::run_in_process(SM_PROCESS_TYPE_APP, "org.tizen.settings.main",
                AUTH_PASSWD_API_ERROR_ACCESS_DENIED, set_policy_function));
 
-       int ret = auth_passwd_reset_passwd(AUTH_PWD_NORMAL, getuid(), default_pass);
-       TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
        TEST_EXPECT(true, test::run_in_process(SM_PROCESS_TYPE_APP, "org.tizen.Apps",
                AUTH_PASSWD_API_SUCCESS, set_policy_function));
 
-       ret = auth_passwd_reset_passwd(AUTH_PWD_NORMAL, getuid(), default_pass);
-       TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
        TEST_EXPECT(true, test::run_in_process(SM_PROCESS_TYPE_SYSTEM, "",
                AUTH_PASSWD_API_SUCCESS, set_policy_function));
 
-       ret = auth_passwd_reset_passwd(AUTH_PWD_NORMAL, getuid(), default_pass);
-       TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
        TEST_EXPECT(true, test::run_in_process(SM_PROCESS_TYPE_SYSTEM_PRIVILEGED, "",
                AUTH_PASSWD_API_SUCCESS, set_policy_function));
 }
index e9e3637f83438cbec263e008cc20068a6e5f57be..ec4bcd876f3e47ab8a982793827b6b35d739be2c 100644 (file)
@@ -97,11 +97,11 @@ int set_relative_date(int days)
 
 TESTCASE(T0010_init)
 {
-       int ret = auth_passwd_reset_passwd(AUTH_PWD_NORMAL, getuid(), default_pass);
+       int ret = auth_passwd_reset_passwd(AUTH_PWD_NORMAL, test::get_test_uid(false), default_pass);
 
        TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
 
-       auth_passwd_disable_policy(getuid());
+       auth_passwd_disable_policy(test::get_test_uid(false));
 }
 
 TESTCASE(T00111_check)
@@ -154,7 +154,7 @@ TESTCASE(T00115_check_passwd_available)
        policy_h *policy = sp.get();
        TEST_EXPECT(true, policy != nullptr);
 
-       int ret = auth_passwd_set_user(policy, getuid());
+       int ret = auth_passwd_set_user(policy, test::get_test_uid(false));
        TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
 
        ret = auth_passwd_set_quality(policy, AUTH_PWD_QUALITY_ALPHABETIC);
@@ -186,7 +186,7 @@ TESTCASE(T00116_remove_password_with_empty_policy)
        policy_h *policy = sp.get();
        TEST_EXPECT(true, policy != nullptr);
 
-       int ret = auth_passwd_set_user(policy, getuid());
+       int ret = auth_passwd_set_user(policy, test::get_test_uid(false));
        TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
 
        ret = auth_passwd_set_policy(policy);
@@ -198,7 +198,7 @@ TESTCASE(T00116_remove_password_with_empty_policy)
        TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
 
        /* restore */
-       ret = auth_passwd_disable_policy(getuid());
+       ret = auth_passwd_disable_policy(test::get_test_uid(false));
        TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
 
        sleep_for_retry_timeout();
@@ -213,7 +213,7 @@ TESTCASE(T00117_remove_password_with_min_length_policy)
        policy_h *policy = sp.get();
        TEST_EXPECT(true, policy != nullptr);
 
-       int ret = auth_passwd_set_user(policy, getuid());
+       int ret = auth_passwd_set_user(policy, test::get_test_uid(false));
        TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
 
        ret = auth_passwd_set_min_length(policy, 4);
@@ -228,7 +228,7 @@ TESTCASE(T00117_remove_password_with_min_length_policy)
        TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
 
        /* restore */
-       ret = auth_passwd_disable_policy(getuid());
+       ret = auth_passwd_disable_policy(test::get_test_uid(false));
        TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
 
        sleep_for_retry_timeout();
@@ -243,7 +243,7 @@ TESTCASE(T00118_remove_password_with_min_complex_char_policy)
        policy_h *policy = sp.get();
        TEST_EXPECT(true, policy != nullptr);
 
-       int ret = auth_passwd_set_user(policy, getuid());
+       int ret = auth_passwd_set_user(policy, test::get_test_uid(false));
        TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
 
        ret = auth_passwd_set_min_complex_char_num(policy, AUTH_PWD_COMPLEX_CHAR_GROUP_1);
@@ -258,7 +258,7 @@ TESTCASE(T00118_remove_password_with_min_complex_char_policy)
        TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
 
        /* restore */
-       ret = auth_passwd_disable_policy(getuid());
+       ret = auth_passwd_disable_policy(test::get_test_uid(false));
        TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
 
        sleep_for_retry_timeout();
@@ -273,7 +273,7 @@ TESTCASE(T00119_check_expire_policy)
        policy_h *policy = sp.get();
        TEST_EXPECT(true, policy != nullptr);
 
-       int ret = auth_passwd_set_user(policy, getuid());
+       int ret = auth_passwd_set_user(policy, test::get_test_uid(false));
        TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
 
        ret = auth_passwd_set_validity(policy, 1);
@@ -302,7 +302,7 @@ TESTCASE(T00119_check_expire_policy)
        ret = set_relative_date(-2);
        TEST_EXPECT(true, ret == 0);
 
-       ret = auth_passwd_disable_policy(getuid());
+       ret = auth_passwd_disable_policy(test::get_test_uid(false));
        TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
 }
 
@@ -313,10 +313,14 @@ TESTCASE(T00120_check_passwd_privilege)
                return check_passwd(AUTH_PWD_NORMAL, default_pass);
        };
 
-       int ret = auth_passwd_reset_passwd(AUTH_PWD_NORMAL, getuid(), default_pass);
+       int ret = auth_passwd_reset_passwd(AUTH_PWD_NORMAL, test::get_test_uid(false), default_pass);
+       TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
+       ret = auth_passwd_reset_passwd(AUTH_PWD_NORMAL, test::get_test_uid(true), default_pass);
        TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
 
-       ret = auth_passwd_disable_policy(getuid());
+       ret = auth_passwd_disable_policy(test::get_test_uid(false));
+       TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
+       ret = auth_passwd_disable_policy(test::get_test_uid(true));
        TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
 
        TEST_EXPECT(true, test::run_in_process(SM_PROCESS_TYPE_APP, "org.tizen.settings.main",
@@ -339,22 +343,22 @@ TESTCASE(T00121_set_passwd_privilege)
                return auth_passwd_set_passwd(AUTH_PWD_NORMAL, default_pass, NULL);
        };
 
-       int ret = auth_passwd_reset_passwd(AUTH_PWD_NORMAL, getuid(), default_pass);
+       int ret = auth_passwd_reset_passwd(AUTH_PWD_NORMAL, test::get_test_uid(true), default_pass);
        TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
        TEST_EXPECT(true, test::run_in_process(SM_PROCESS_TYPE_APP, "org.tizen.settings.main",
                AUTH_PASSWD_API_ERROR_ACCESS_DENIED, set_passwd_function));
 
-       ret = auth_passwd_reset_passwd(AUTH_PWD_NORMAL, getuid(), default_pass);
+       ret = auth_passwd_reset_passwd(AUTH_PWD_NORMAL, test::get_test_uid(true), default_pass);
        TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
        TEST_EXPECT(true, test::run_in_process(SM_PROCESS_TYPE_APP, "org.tizen.Apps",
                AUTH_PASSWD_API_SUCCESS, set_passwd_function));
 
-       ret = auth_passwd_reset_passwd(AUTH_PWD_NORMAL, getuid(), default_pass);
+       ret = auth_passwd_reset_passwd(AUTH_PWD_NORMAL, test::get_test_uid(false), default_pass);
        TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
        TEST_EXPECT(true, test::run_in_process(SM_PROCESS_TYPE_SYSTEM, "",
                AUTH_PASSWD_API_SUCCESS, set_passwd_function));
 
-       ret = auth_passwd_reset_passwd(AUTH_PWD_NORMAL, getuid(), default_pass);
+       ret = auth_passwd_reset_passwd(AUTH_PWD_NORMAL, test::get_test_uid(false), default_pass);
        TEST_EXPECT(AUTH_PASSWD_API_SUCCESS, ret);
        TEST_EXPECT(true, test::run_in_process(SM_PROCESS_TYPE_SYSTEM_PRIVILEGED, "",
                AUTH_PASSWD_API_SUCCESS, set_passwd_function));
index 9acf98ff6b93b7878baab5f6672cb7481586f2ad..bf4e485f6a27487a04a058f1d0cbe8b23a6ec14c 100644 (file)
@@ -19,6 +19,9 @@
  * @version     1.0
  * @brief
  */
+
+#include <tzplatform_config.h>
+
 #include "test-util.h"
 
 namespace test {
@@ -34,4 +37,13 @@ policy_h *create_policy_h()
        return handle;
 }
 
+uid_t get_test_uid(bool app)
+{
+       static uid_t APP_OWNER = tzplatform_getuid(TZ_SYS_DEFAULT_USER);
+       if (app)
+               return APP_OWNER;
+       else
+               return 0;
+}
+
 } // namespace test
index c195cd01c4b10776656e400dce58267eeda1b603..ef6fe1704883f59c3255d035e450e984e4ffe700 100644 (file)
@@ -35,6 +35,7 @@
 namespace test {
 
 policy_h *create_policy_h();
+uid_t get_test_uid(bool app);
 
 using ScopedPolicy = std::unique_ptr<policy_h, decltype(&auth_passwd_free_policy)>;