Change to use cynara api instead of direct access to check privilege 58/317658/4
authorSukhyungKang <shine.kang@samsung.com>
Mon, 6 Jan 2025 08:41:46 +0000 (17:41 +0900)
committerSukhyungKang <shine.kang@samsung.com>
Mon, 6 Jan 2025 22:38:23 +0000 (07:38 +0900)
Change-Id: I290831491bb2a28d7f77903755a13cf051a86c67
Signed-off-by: SukhyungKang <shine.kang@samsung.com>
CMakeLists.txt
packaging/libwidget_service.spec
src/CMakeLists.txt
src/widget_service.c
src/widget_service_manager.cc
unittest/mock/cynara_mock.cc
unittest/mock/cynara_mock.h
unittest/src/test_widget_service.cc

index 50051b2ae8307f99544503da07d9fd408ce17608..56c01bed953576dd5dde25b9dd83c4c1945cd4bb 100644 (file)
@@ -50,6 +50,7 @@ PKG_CHECK_MODULES(AUL_DEPS REQUIRED aul)
 PKG_CHECK_MODULES(PLATFORM_CONFIG_DEPS REQUIRED libtzplatform-config)
 PKG_CHECK_MODULES(UUID_DEPS REQUIRED uuid)
 PKG_CHECK_MODULES(CYNARA_CLIENT_DEPS REQUIRED cynara-client)
+PKG_CHECK_MODULES(CYNARA_CREDS_SELF_DEPS REQUIRED cynara-creds-self)
 PKG_CHECK_MODULES(INIPARSER_DEPS REQUIRED iniparser)
 PKG_CHECK_MODULES(SMACK_DEPS REQUIRED libsmack)
 PKG_CHECK_MODULES(XML_DEPS REQUIRED libxml-2.0)
index 7042b9384e5e2a5a407b9a27a85b9cd2c86e2518..339fdffb177eff14168e664aadd0ebfa5d8467bd 100644 (file)
@@ -25,6 +25,7 @@ BuildRequires: pkgconfig(libtzplatform-config)
 BuildRequires: pkgconfig(libxml-2.0)
 BuildRequires: pkgconfig(aul)
 BuildRequires: pkgconfig(cynara-client)
+BuildRequires: pkgconfig(cynara-creds-self)
 BuildRequires: pkgconfig(pkgmgr-installer)
 BuildRequires: pkgconfig(iniparser)
 BuildRequires: pkgconfig(libsmack)
index d830c6e14b4f8e3d4c2d1a2a9f9d92821b4057fb..3569d7fc630204310e06e0091e8e3153a55af2fd 100644 (file)
@@ -38,6 +38,7 @@ APPLY_PKG_CONFIG(${TARGET_WIDGET_SERVICE} PUBLIC
   PLATFORM_CONFIG_DEPS
   UUID_DEPS
   CYNARA_CLIENT_DEPS
+  CYNARA_CREDS_SELF_DEPS
   INIPARSER_DEPS
   SMACK_DEPS
   DATABASE_DEPS
index 9bf6bfca50cfacf1a6b90e9696a0a945ebb2a26f..34f161b5ce0e07a6504d778b556e34ba002d8171 100644 (file)
@@ -36,6 +36,7 @@
 #include <system_info.h>
 #include <dlog.h>
 #include <cynara-client.h>
+#include <cynara-creds-self.h>
 #include <stdio.h>
 #include <fcntl.h>
 #include <pwd.h>
@@ -157,11 +158,8 @@ static inline bool _is_widget_feature_enabled(void)
 static int check_privilege(const char *privilege)
 {
        cynara *p_cynara = NULL;
-
-       int fd = 0;
        int ret = 0;
-
-       char subject_label[SMACK_LABEL_LEN + 1] = "";
+       char *cynara_client = NULL;
        char uid[10] = {0,};
        char *client_session = "";
 
@@ -172,29 +170,17 @@ static int check_privilege(const char *privilege)
                goto out;
        }
 
-       fd = open("/proc/self/attr/current", O_RDONLY);
-       if (fd < 0) {
-/* LCOV_EXCL_START */
-               LOGE("open [%d] failed!", errno);
-               ret = -1;
-/* LCOV_EXCL_STOP */
-               goto out;
-       }
+       ret = cynara_creds_self_get_client(CLIENT_METHOD_DEFAULT, &cynara_client);
+       if (ret != CYNARA_API_SUCCESS) {
+               LOGD("failed to get cynara client : %d", ret);
 
-       ret = read(fd, subject_label, SMACK_LABEL_LEN);
-       if (ret < 0) {
-/* LCOV_EXCL_START */
-               LOGE("read [%d] failed!", errno);
-               close(fd);
                ret = -1;
                goto out;
-/* LCOV_EXCL_STOP */
        }
-       close(fd);
 
        snprintf(uid, 10, "%d", getuid());
 
-       ret = cynara_check(p_cynara, subject_label, client_session, uid,
+       ret = cynara_check(p_cynara, cynara_client, client_session, uid,
                                privilege);
        if (ret != CYNARA_API_ACCESS_ALLOWED) {
                LOGE("cynara access check [%d] failed!", ret);
@@ -207,6 +193,9 @@ out:
        if (p_cynara)
                cynara_finish(p_cynara);
 
+       if (cynara_client)
+               free(cynara_client);
+
        return ret;
 }
 
index b9616b050105b30513d7876a617064f3e8a92aff..265ce7dacc5be7a27560e64dbbc452fc07f39e60 100644 (file)
@@ -26,6 +26,7 @@
 
 #include <dlog.h>
 #include <cynara-client.h>
+#include <cynara-creds-self.h>
 #include <system_info.h>
 #include <vconf.h>
 #include <vconf-keys.h>
@@ -260,11 +261,9 @@ std::string WidgetServiceManager::GetLangPath() {
 }
 
 int WidgetServiceManager::CheckPrivilege(std::string privilege) {
-  int fd = 0;
   int ret = 0;
   cynara* p_cynara = nullptr;
-
-  char subject_label[SMACK_LABEL_LEN + 1] = "";
+  char* cynara_client = nullptr;
   char uid[10] = {0,};
   std::string client_session = "";
 
@@ -274,33 +273,27 @@ int WidgetServiceManager::CheckPrivilege(std::string privilege) {
     return -1;
   }
 
-  fd = open("/proc/self/attr/current", O_RDONLY);
-  if (fd < 0) {
-    LOGE("open [%d] failed!", errno);
-    cynara_finish(p_cynara);
-    return -1;
-  }
+  ret = cynara_creds_self_get_client(CLIENT_METHOD_DEFAULT, &cynara_client);
+  if (ret != CYNARA_API_SUCCESS) {
+    LOGD("failed to get cynara client : %d", ret);
 
-  ret = read(fd, subject_label, SMACK_LABEL_LEN);
-  if (ret < 0) {
-    LOGE("read [%d] failed!", errno);
-    close(fd);
     cynara_finish(p_cynara);
     return -1;
   }
-  close(fd);
 
   snprintf(uid, 10, "%d", getuid());
 
-  ret = cynara_check(p_cynara, subject_label, client_session.c_str(), uid,
+  ret = cynara_check(p_cynara, cynara_client, client_session.c_str(), uid,
         privilege.c_str());
   if (ret != CYNARA_API_ACCESS_ALLOWED) {
     LOGE("cynara access check [%d] failed!", ret);
     cynara_finish(p_cynara);
+    free(cynara_client);
     return -1;
   }
 
   cynara_finish(p_cynara);
+  free(cynara_client);
 
   return 0;
 }
index 7dc3e0843f6b6252be0ca4eb9508e08c55383ed2..c150dda7c20454c51fdc654b52dda2eb923d295c 100644 (file)
@@ -30,4 +30,8 @@ extern "C" int cynara_finish(cynara* arg1) {
 extern "C" int cynara_check(cynara* arg1, const char* arg2, const char* arg3,
     const char* arg4, const char* arg5) {
   return MOCK_HOOK_P5(CynaraMock, cynara_check, arg1, arg2, arg3, arg4, arg5);
-}
\ No newline at end of file
+}
+
+extern "C" int cynara_creds_self_get_client(enum cynara_client_creds arg1, char **arg2) {
+  return MOCK_HOOK_P2(CynaraMock, cynara_creds_self_get_client, arg1, arg2);
+}
index cdcc962cb636f67f260579c63982fd6c5f4b0599..b90be37dfdd73a60982587773a510276b18615c9 100644 (file)
@@ -19,6 +19,7 @@
 
 #include <gmock/gmock.h>
 #include <cynara-client.h>
+#include <cynara-creds-self.h>
 
 #include "module_mock.h"
 
@@ -30,6 +31,7 @@ class CynaraMock : public virtual ModuleMock {
   MOCK_METHOD1(cynara_finish, int (cynara*));
   MOCK_METHOD5(cynara_check,
       int (cynara*, const char*, const char*, const char*, const char*));
+  MOCK_METHOD2(cynara_creds_self_get_client, int (enum cynara_client_creds, char**));
 };
 
 #endif  // UNIT_TESTS_MOCK_CYNARA_MOCK_H_
\ No newline at end of file
index 8e718d1fe155b5723d63225e02ceb9f39de74e6b..79a6838cc8e2bf2048988a37f8eac637504d1418 100644 (file)
@@ -58,6 +58,10 @@ int __fake_cynara_initialize(cynara** cyn, const cynara_configuration* conf) {
   return CYNARA_API_SUCCESS;
 }
 
+int __fake_cynara_creds_self_get_client(enum cynara_client_creds method, char **client) {
+    return CYNARA_API_SUCCESS;
+}
+
 int __fake_cynara_check(cynara* cyn, const char* client, const char* client_session,
     const char* user, const char* privilege) {
   return CYNARA_API_ACCESS_ALLOWED;
@@ -247,6 +251,8 @@ TEST_F(WidgetServiceTest, GetDisabled) {
       .WillRepeatedly(Invoke(__fake_system_info_get_platform_bool));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_initialize(_, _))
       .WillRepeatedly(Invoke(__fake_cynara_initialize));
+  EXPECT_CALL(GetMock<CynaraMock>(), cynara_creds_self_get_client(_, _))
+      .WillRepeatedly(Invoke(__fake_cynara_creds_self_get_client));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_check(_, _, _, _, _))
       .WillRepeatedly(Invoke(__fake_cynara_check));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_finish(_))
@@ -287,6 +293,8 @@ TEST_F(WidgetServiceTest, SetDisabledEventCallback) {
       .WillRepeatedly(Invoke(__fake_system_info_get_platform_bool));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_initialize(_, _))
       .WillRepeatedly(Invoke(__fake_cynara_initialize));
+  EXPECT_CALL(GetMock<CynaraMock>(), cynara_creds_self_get_client(_, _))
+      .WillRepeatedly(Invoke(__fake_cynara_creds_self_get_client));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_check(_, _, _, _, _))
       .WillRepeatedly(Invoke(__fake_cynara_check));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_finish(_))
@@ -304,6 +312,8 @@ TEST_F(WidgetServiceTest, UnsetDisabledEventCallback) {
       .WillRepeatedly(Invoke(__fake_system_info_get_platform_bool));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_initialize(_, _))
       .WillRepeatedly(Invoke(__fake_cynara_initialize));
+  EXPECT_CALL(GetMock<CynaraMock>(), cynara_creds_self_get_client(_, _))
+      .WillRepeatedly(Invoke(__fake_cynara_creds_self_get_client));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_check(_, _, _, _, _))
       .WillRepeatedly(Invoke(__fake_cynara_check));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_finish(_))
@@ -360,6 +370,8 @@ TEST_F(WidgetServiceTest, GetNeedOfMouseEvent) {
       .WillRepeatedly(Invoke(__fake_system_info_get_platform_bool));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_initialize(_, _))
       .WillRepeatedly(Invoke(__fake_cynara_initialize));
+  EXPECT_CALL(GetMock<CynaraMock>(), cynara_creds_self_get_client(_, _))
+      .WillRepeatedly(Invoke(__fake_cynara_creds_self_get_client));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_check(_, _, _, _, _))
       .WillRepeatedly(Invoke(__fake_cynara_check));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_finish(_))
@@ -378,6 +390,8 @@ TEST_F(WidgetServiceTest, GetNeedOfTouchEffect) {
       .WillRepeatedly(Invoke(__fake_system_info_get_platform_bool));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_initialize(_, _))
       .WillRepeatedly(Invoke(__fake_cynara_initialize));
+  EXPECT_CALL(GetMock<CynaraMock>(), cynara_creds_self_get_client(_, _))
+      .WillRepeatedly(Invoke(__fake_cynara_creds_self_get_client));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_check(_, _, _, _, _))
       .WillRepeatedly(Invoke(__fake_cynara_check));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_finish(_))
@@ -396,6 +410,8 @@ TEST_F(WidgetServiceTest, GetNeedOfFrame) {
       .WillRepeatedly(Invoke(__fake_system_info_get_platform_bool));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_initialize(_, _))
       .WillRepeatedly(Invoke(__fake_cynara_initialize));
+  EXPECT_CALL(GetMock<CynaraMock>(), cynara_creds_self_get_client(_, _))
+      .WillRepeatedly(Invoke(__fake_cynara_creds_self_get_client));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_check(_, _, _, _, _))
       .WillRepeatedly(Invoke(__fake_cynara_check));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_finish(_))
@@ -414,6 +430,8 @@ TEST_F(WidgetServiceTest, TriggerUpdate) {
       .WillRepeatedly(Invoke(__fake_system_info_get_platform_bool));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_initialize(_, _))
       .WillRepeatedly(Invoke(__fake_cynara_initialize));
+  EXPECT_CALL(GetMock<CynaraMock>(), cynara_creds_self_get_client(_, _))
+      .WillRepeatedly(Invoke(__fake_cynara_creds_self_get_client));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_check(_, _, _, _, _))
       .WillRepeatedly(Invoke(__fake_cynara_check));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_finish(_))
@@ -472,6 +490,8 @@ TEST_F(WidgetServiceTest, GetWidgetList) {
       .WillRepeatedly(Invoke(__fake_system_info_get_platform_bool));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_initialize(_, _))
       .WillRepeatedly(Invoke(__fake_cynara_initialize));
+  EXPECT_CALL(GetMock<CynaraMock>(), cynara_creds_self_get_client(_, _))
+      .WillRepeatedly(Invoke(__fake_cynara_creds_self_get_client));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_check(_, _, _, _, _))
       .WillRepeatedly(Invoke(__fake_cynara_check));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_finish(_))
@@ -512,6 +532,8 @@ TEST_F(WidgetServiceTest, GetMainAppId) {
       .WillRepeatedly(Invoke(__fake_system_info_get_platform_bool));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_initialize(_, _))
       .WillRepeatedly(Invoke(__fake_cynara_initialize));
+  EXPECT_CALL(GetMock<CynaraMock>(), cynara_creds_self_get_client(_, _))
+      .WillRepeatedly(Invoke(__fake_cynara_creds_self_get_client));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_check(_, _, _, _, _))
       .WillRepeatedly(Invoke(__fake_cynara_check));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_finish(_))
@@ -557,6 +579,8 @@ TEST_F(WidgetServiceTest, GetWidgetListByPkgId) {
       .WillRepeatedly(Invoke(__fake_system_info_get_platform_bool));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_initialize(_, _))
       .WillRepeatedly(Invoke(__fake_cynara_initialize));
+  EXPECT_CALL(GetMock<CynaraMock>(), cynara_creds_self_get_client(_, _))
+      .WillRepeatedly(Invoke(__fake_cynara_creds_self_get_client));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_check(_, _, _, _, _))
       .WillRepeatedly(Invoke(__fake_cynara_check));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_finish(_))
@@ -585,6 +609,8 @@ TEST_F(WidgetServiceTest, GetWidgetId) {
       .WillRepeatedly(Invoke(__fake_system_info_get_platform_bool));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_initialize(_, _))
       .WillRepeatedly(Invoke(__fake_cynara_initialize));
+  EXPECT_CALL(GetMock<CynaraMock>(), cynara_creds_self_get_client(_, _))
+      .WillRepeatedly(Invoke(__fake_cynara_creds_self_get_client));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_check(_, _, _, _, _))
       .WillRepeatedly(Invoke(__fake_cynara_check));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_finish(_))
@@ -612,6 +638,8 @@ TEST_F(WidgetServiceTest, GetWidgetId_N) {
       .Times(2)
       .WillOnce(Invoke(__fake_cynara_initialize))
       .WillOnce(Return(1));
+  EXPECT_CALL(GetMock<CynaraMock>(), cynara_creds_self_get_client(_, _))
+      .WillRepeatedly(Invoke(__fake_cynara_creds_self_get_client));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_check(_, _, _, _, _))
       .WillRepeatedly(Invoke(__fake_cynara_check));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_finish(_))
@@ -649,6 +677,8 @@ TEST_F(WidgetServiceTest, GetAppIdOfSetupApp) {
       .WillRepeatedly(Invoke(__fake_system_info_get_platform_bool));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_initialize(_, _))
       .WillRepeatedly(Invoke(__fake_cynara_initialize));
+  EXPECT_CALL(GetMock<CynaraMock>(), cynara_creds_self_get_client(_, _))
+      .WillRepeatedly(Invoke(__fake_cynara_creds_self_get_client));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_check(_, _, _, _, _))
       .WillRepeatedly(Invoke(__fake_cynara_check));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_finish(_))
@@ -670,6 +700,8 @@ TEST_F(WidgetServiceTest, GetAppIdOfSetupApp_N) {
       .Times(2)
       .WillOnce(Invoke(__fake_cynara_initialize))
       .WillOnce(Return(1));
+  EXPECT_CALL(GetMock<CynaraMock>(), cynara_creds_self_get_client(_, _))
+      .WillRepeatedly(Invoke(__fake_cynara_creds_self_get_client));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_check(_, _, _, _, _))
       .WillRepeatedly(Invoke(__fake_cynara_check));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_finish(_))
@@ -696,6 +728,8 @@ TEST_F(WidgetServiceTest, GetPackageId) {
       .Times(2)
       .WillOnce(Invoke(__fake_cynara_initialize))
       .WillOnce(Return(1));
+  EXPECT_CALL(GetMock<CynaraMock>(), cynara_creds_self_get_client(_, _))
+      .WillRepeatedly(Invoke(__fake_cynara_creds_self_get_client));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_check(_, _, _, _, _))
       .WillRepeatedly(Invoke(__fake_cynara_check));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_finish(_))
@@ -724,6 +758,8 @@ TEST_F(WidgetServiceTest, GetName) {
       .Times(2)
       .WillOnce(Invoke(__fake_cynara_initialize))
       .WillOnce(Return(1));
+  EXPECT_CALL(GetMock<CynaraMock>(), cynara_creds_self_get_client(_, _))
+      .WillRepeatedly(Invoke(__fake_cynara_creds_self_get_client));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_check(_, _, _, _, _))
       .WillRepeatedly(Invoke(__fake_cynara_check));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_finish(_))
@@ -750,6 +786,8 @@ TEST_F(WidgetServiceTest, GetName2) {
       .WillRepeatedly(Invoke(__fake_system_info_get_platform_bool));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_initialize(_, _))
       .WillRepeatedly(Invoke(__fake_cynara_initialize));
+  EXPECT_CALL(GetMock<CynaraMock>(), cynara_creds_self_get_client(_, _))
+      .WillRepeatedly(Invoke(__fake_cynara_creds_self_get_client));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_check(_, _, _, _, _))
       .WillRepeatedly(Invoke(__fake_cynara_check));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_finish(_))
@@ -774,6 +812,8 @@ TEST_F(WidgetServiceTest, GetPreviewImagePath) {
       .Times(2)
       .WillOnce(Invoke(__fake_cynara_initialize))
       .WillOnce(Return(1));
+  EXPECT_CALL(GetMock<CynaraMock>(), cynara_creds_self_get_client(_, _))
+      .WillRepeatedly(Invoke(__fake_cynara_creds_self_get_client));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_check(_, _, _, _, _))
       .WillRepeatedly(Invoke(__fake_cynara_check));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_finish(_))
@@ -808,6 +848,8 @@ TEST_F(WidgetServiceTest, GetIcon) {
       .Times(2)
       .WillOnce(Invoke(__fake_cynara_initialize))
       .WillOnce(Return(1));
+  EXPECT_CALL(GetMock<CynaraMock>(), cynara_creds_self_get_client(_, _))
+      .WillRepeatedly(Invoke(__fake_cynara_creds_self_get_client));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_check(_, _, _, _, _))
       .WillRepeatedly(Invoke(__fake_cynara_check));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_finish(_))
@@ -836,6 +878,8 @@ TEST_F(WidgetServiceTest, GetNodisplay) {
       .Times(2)
       .WillOnce(Invoke(__fake_cynara_initialize))
       .WillOnce(Return(1));
+  EXPECT_CALL(GetMock<CynaraMock>(), cynara_creds_self_get_client(_, _))
+      .WillRepeatedly(Invoke(__fake_cynara_creds_self_get_client));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_check(_, _, _, _, _))
       .WillRepeatedly(Invoke(__fake_cynara_check));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_finish(_))
@@ -861,6 +905,8 @@ TEST_F(WidgetServiceTest, GetSupportedSizes) {
       .WillRepeatedly(Invoke(__fake_system_info_get_platform_bool));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_initialize(_, _))
       .WillRepeatedly(Invoke(__fake_cynara_initialize));
+  EXPECT_CALL(GetMock<CynaraMock>(), cynara_creds_self_get_client(_, _))
+      .WillRepeatedly(Invoke(__fake_cynara_creds_self_get_client));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_check(_, _, _, _, _))
       .WillRepeatedly(Invoke(__fake_cynara_check));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_finish(_))
@@ -884,6 +930,8 @@ TEST_F(WidgetServiceTest, GetSupportedSizes_N) {
       .WillRepeatedly(Invoke(__fake_system_info_get_platform_bool));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_initialize(_, _))
       .WillRepeatedly(Invoke(__fake_cynara_initialize));
+  EXPECT_CALL(GetMock<CynaraMock>(), cynara_creds_self_get_client(_, _))
+      .WillRepeatedly(Invoke(__fake_cynara_creds_self_get_client));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_check(_, _, _, _, _))
       .WillRepeatedly(Invoke(__fake_cynara_check));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_finish(_))
@@ -905,6 +953,8 @@ TEST_F(WidgetServiceTest, GetSupportedSizeTypes) {
       .WillRepeatedly(Invoke(__fake_system_info_get_platform_bool));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_initialize(_, _))
       .WillRepeatedly(Invoke(__fake_cynara_initialize));
+  EXPECT_CALL(GetMock<CynaraMock>(), cynara_creds_self_get_client(_, _))
+      .WillRepeatedly(Invoke(__fake_cynara_creds_self_get_client));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_check(_, _, _, _, _))
       .WillRepeatedly(Invoke(__fake_cynara_check));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_finish(_))
@@ -926,6 +976,8 @@ TEST_F(WidgetServiceTest, GetSupportedSizeTypes_N1) {
       .WillRepeatedly(Invoke(__fake_system_info_get_platform_bool));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_initialize(_, _))
       .WillRepeatedly(Invoke(__fake_cynara_initialize));
+  EXPECT_CALL(GetMock<CynaraMock>(), cynara_creds_self_get_client(_, _))
+      .WillRepeatedly(Invoke(__fake_cynara_creds_self_get_client));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_check(_, _, _, _, _))
       .WillRepeatedly(Invoke(__fake_cynara_check));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_finish(_))
@@ -958,6 +1010,8 @@ TEST_F(WidgetServiceTest, GetInstanceList) {
       .WillRepeatedly(Invoke(__fake_system_info_get_platform_bool));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_initialize(_, _))
       .WillRepeatedly(Invoke(__fake_cynara_initialize));
+  EXPECT_CALL(GetMock<CynaraMock>(), cynara_creds_self_get_client(_, _))
+      .WillRepeatedly(Invoke(__fake_cynara_creds_self_get_client));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_check(_, _, _, _, _))
       .WillRepeatedly(Invoke(__fake_cynara_check));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_finish(_))
@@ -1036,6 +1090,8 @@ TEST_F(WidgetServiceTest, GetWidgetMaxCount) {
       .WillRepeatedly(Invoke(__fake_system_info_get_platform_bool));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_initialize(_, _))
       .WillRepeatedly(Invoke(__fake_cynara_initialize));
+  EXPECT_CALL(GetMock<CynaraMock>(), cynara_creds_self_get_client(_, _))
+      .WillRepeatedly(Invoke(__fake_cynara_creds_self_get_client));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_check(_, _, _, _, _))
       .WillRepeatedly(Invoke(__fake_cynara_check));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_finish(_))
@@ -1055,6 +1111,8 @@ TEST_F(WidgetServiceTest, GetInstanceCount) {
       .WillRepeatedly(Invoke(__fake_system_info_get_platform_bool));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_initialize(_, _))
       .WillRepeatedly(Invoke(__fake_cynara_initialize));
+  EXPECT_CALL(GetMock<CynaraMock>(), cynara_creds_self_get_client(_, _))
+      .WillRepeatedly(Invoke(__fake_cynara_creds_self_get_client));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_check(_, _, _, _, _))
       .WillRepeatedly(Invoke(__fake_cynara_check));
   EXPECT_CALL(GetMock<CynaraMock>(), cynara_finish(_))