Fixed Secure Resource Mgr Policy Engine to allow for wildcard resource URIs.
authorNathan Heldt-Sheller <nathan.heldt-sheller@intel.com>
Sat, 11 Jul 2015 05:12:47 +0000 (22:12 -0700)
committerSachin Agrawal <sachin.agrawal@intel.com>
Sun, 12 Jul 2015 05:36:40 +0000 (05:36 +0000)
The Policy Engine was not checking for wilcard resource URIs in Access Control List entry (URI = "*"); this has been added per Security Spec A v0.96r3.

Change-Id: Iff6d8618cee2d177aa1b03dc3c58a78cd1fd6061
Signed-off-by: Nathan Heldt-Sheller <nathan.heldt-sheller@intel.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/1626
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: Sakthivel Samidurai <sakthivel.samidurai@intel.com>
Reviewed-by: Shilpa Sodani <shilpa.a.sodani@intel.com>
Reviewed-by: Sachin Agrawal <sachin.agrawal@intel.com>
resource/csdk/security/include/internal/srmresourcestrings.h
resource/csdk/security/src/policyengine.c
resource/csdk/security/src/srmresourcestrings.c

index 794358e..af37507 100644 (file)
@@ -79,6 +79,7 @@ extern const char * OIC_JSON_SM_NAME;
 
 extern OicUuid_t WILDCARD_SUBJECT_ID;
 extern size_t WILDCARD_SUBJECT_ID_LEN;
+extern const char * WILDCARD_RESOURCE_URI;
 
 //Ownership Transfer Methods
 extern const char * OXM_JUST_WORKS;
index 28ece4a..ef15fad 100644 (file)
@@ -196,7 +196,8 @@ exit:
  {
     for(size_t n = 0; n < acl->resourcesLen; n++)
     {
-        if(0 == strcmp(resource, acl->resources[n])) // TODO null terms?
+        if(0 == strcmp(resource, acl->resources[n]) || // TODO null terms?
+         0 == strcmp(WILDCARD_RESOURCE_URI, acl->resources[n]))
         {
             return true;
         }
index b9e1f3a..43e2c5c 100644 (file)
@@ -76,7 +76,8 @@ const char * OIC_JSON_PRIVATEDATA_NAME = "pvdata";
 const char * OIC_JSON_PERIOD_NAME = "period";
 
 OicUuid_t WILDCARD_SUBJECT_ID = {"*"};
-size_t WILDCARD_SUBJECT_ID_LEN = 1 ;
+size_t WILDCARD_SUBJECT_ID_LEN = 1;
+const char * WILDCARD_RESOURCE_URI = "*";
 
 //Ownership Transfer Methods
 const char * OXM_JUST_WORKS = "oic.sec.doxm.jw";