Change to get smack label via cynara API 20/324920/1 accepted/tizen_unified accepted/tizen_unified_x tizen accepted/tizen/unified/20250602.182617 accepted/tizen/unified/x/20250604.024137
authorShivam Verma <s01.verma@samsung.com>
Wed, 28 May 2025 14:49:16 +0000 (20:19 +0530)
committerShivam Verma <s01.verma@samsung.com>
Wed, 28 May 2025 14:49:16 +0000 (20:19 +0530)
Change-Id: Ibe89e915a17a6114b4212ff0c317c760f629e3c7

packaging/oauth2.spec
src/CMakeLists.txt
src/oauth2_manager.c

index bd78cb941cafa39ac014031189e95786d9d5d97f..bcb2df90d30f5d02679ca88d1462962a233f142e 100644 (file)
@@ -1,6 +1,6 @@
 Name:       oauth2
 Summary:    Tizen oauth 2.0 Framework
-Version:    0.0.8
+Version:    0.0.9
 Release:    1
 Group:      Social & Content/API
 License:    Apache-2.0
@@ -22,6 +22,7 @@ BuildRequires:  pkgconfig(json-glib-1.0)
 BuildRequires:  pkgconfig(elementary)
 BuildRequires:  pkgconfig(cynara-client)
 BuildRequires:  pkgconfig(capi-system-info)
+BuildRequires:  pkgconfig(cynara-creds-self)
 
 Requires(post): /sbin/ldconfig
 Requires(postun): /sbin/ldconfig
index 4390bbcfff09122b71d9f48eb64b887c0f20a70c..cc7e3ae9a98bead50b42216493b99fbd88d867c6 100644 (file)
@@ -24,9 +24,9 @@ endif()
 
 if(USE_CHROMIUM_EFL)
        add_definitions(-DWITH_CHROMIUM)
-       pkg_check_modules(clientpkgs REQUIRED dlog glib-2.0 gio-2.0 gio-unix-2.0 capi-base-common libcurl efl-extension ecore evas chromium-efl json-glib-1.0 elementary cynara-client capi-system-info)
+       pkg_check_modules(clientpkgs REQUIRED dlog glib-2.0 gio-2.0 gio-unix-2.0 capi-base-common libcurl efl-extension ecore evas chromium-efl json-glib-1.0 elementary cynara-client capi-system-info cynara-creds-self)
 else()
-       pkg_check_modules(clientpkgs REQUIRED dlog glib-2.0 gio-2.0 gio-unix-2.0 capi-base-common libcurl efl-extension ecore evas ewebkit2 json-glib-1.0 elementary cynara-client capi-system-info)
+       pkg_check_modules(clientpkgs REQUIRED dlog glib-2.0 gio-2.0 gio-unix-2.0 capi-base-common libcurl efl-extension ecore evas ewebkit2 json-glib-1.0 elementary cynara-client capi-system-info cynara-creds-self)
 endif()
 
 FOREACH(flag ${clientpkgs_CFLAGS})
index 9617cfc0213555f32099af16766f5e0b6fdc41cc..1d8e13760452d5823ecd30a9b01bae8762ef6887 100755 (executable)
@@ -18,6 +18,7 @@
 #include <efl_extension.h>
 #include <cynara-client.h>
 #include <cynara-error.h>
+#include <cynara-creds-self.h>
 #include <system_info.h>
 
 #include "oauth2_manager.h"
@@ -97,9 +98,8 @@ __check_permission(void)
 
        if (-1 == has_internet_permission) {
                int ret;
-               char smack_label[SMACK_LABEL_LEN + 1] = {0};
+               char *smack_label = NULL;
                char uid[10];
-               FILE *fd;
                cynara *cynara_h = NULL;
 
                ret = cynara_initialize(&cynara_h, NULL);
@@ -108,19 +108,13 @@ __check_permission(void)
                         return false;
                }
 
-               fd = fopen("/proc/self/attr/current", "r");
-               if (NULL == fd) {
-                        OAUTH2_LOG_E("fopen() Fail(%d)", errno);
-                        return false;
-               }
+               snprintf(uid, sizeof(uid), "%d", getuid());
 
-               ret = fread(smack_label, sizeof(smack_label), 1, fd);
-               fclose(fd);
-               if (ret < 0) {
-                        OAUTH2_LOG_E("fread() Fail(%d)", ret);
-                        return 0;
+               ret = cynara_creds_self_get_client(CLIENT_METHOD_DEFAULT, &smack_label);
+               if (ret != CYNARA_API_SUCCESS) {
+                       OAUTH2_LOG_E("failed to get smack label");
+                       return false;
                }
-               snprintf(uid, sizeof(uid), "%d", getuid());
 
                ret = cynara_check(cynara_h, smack_label, "", uid, INTERNET_PRIVILEGE);
                if (CYNARA_API_ACCESS_ALLOWED == ret)
@@ -128,6 +122,9 @@ __check_permission(void)
                else
                        has_internet_permission = 0;
 
+               if (smack_label)
+                       free(smack_label);
+
                cynara_finish(cynara_h);
        }