Add ACLs to java SimpleService so examples run when SECURED=1
authorGeorge Nash <george.nash@intel.com>
Fri, 13 Jan 2017 00:54:58 +0000 (16:54 -0800)
committerRick Bell <richard.s.bell@intel.com>
Fri, 20 Jan 2017 17:26:11 +0000 (17:26 +0000)
The ModeType in SimpleClient is changed to CLIENT_SERVER
This is a work around for IOT-693

the ioc_svr_db_server ACL file is a copy of the ACL file from
resource/examples.

The example will run against the simpleservice simpleclient in
resource.

Build:
scons BUILD_JAVA=1

Run examples:
export LD_LIBRARY_PATH=<iotivity>/out/linux/x86_64/release/

java -cp java/examples-java/simpleserver/build/libs/simpleserver.jar:\
java/iotivity-linux/build/libs/iotivity-linux.jar \
org.iotivity.base.examples.SimpleServer

java -cp java/examples-java/simpleclient/build/libs/simpleclient.jar:\
java/iotivity-linux/build/libiotivity-linux.jar \
org.iotivity.base.examples.SimpleClient

Change-Id: I56b627a5edfac823934b5966a06e4bbd8ac561e2
Signed-off-by: George Nash <george.nash@intel.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/16363
Reviewed-by: Phil Coval <philippe.coval@osg.samsung.com>
Tested-by: jenkins-iotivity <jenkins@iotivity.org>
Reviewed-by: Larry Sachs <larry.j.sachs@intel.com>
Reviewed-by: Rick Bell <richard.s.bell@intel.com>
java/SConscript
java/examples-java/simpleclient/src/main/java/org/iotivity/base/examples/SimpleClient.java
java/examples-java/simpleserver/src/main/assets/oic_svr_db_server.dat [new file with mode: 0644]
java/examples-java/simpleserver/src/main/assets/oic_svr_db_server.json [changed mode: 0755->0644]
java/examples-java/simpleserver/src/main/java/org/iotivity/base/examples/SimpleServer.java

index dae4979..45d9e5c 100644 (file)
@@ -101,5 +101,9 @@ jdk_env['BUILDERS']['Gradle'] = Builder(action = env.get('ANDROID_GRADLE') + ' b
 #cmdBuildExamples=jdk_env.Gradle(target="../examples-%s/devicediscoveryclient/apk" % (examples_target, ), source="examples-%s/devicediscoveryclient/src/main/java/org/iotivity/base/examples/DeviceDiscoveryClient.java" % (examples_target, ))
 cmdBuildExamples=jdk_env.Gradle(target="examples-%s/simpleclient/jar" % (examples_target, ), source="examples-%s/simpleclient/src/main/java/org/iotivity/base/examples/SimpleClient.java" % (examples_target, ))
 
+exampleAclFiles = jdk_env.Install('#java/examples-java/simpleserver/build/libs/', 'examples-java/simpleserver/src/main/assets/oic_svr_db_server.dat')
+
+Depends(cmdBuildExamples, exampleAclFiles)
 Depends(cmdBuildExamples, cmdBuildApi)
+
 env.AppendUnique(baseAAR = cmdBuildApi)
index 6a7cc1f..ef94e9b 100644 (file)
@@ -66,7 +66,7 @@ public class SimpleClient implements
 
         PlatformConfig platformConfig = new PlatformConfig(
                 ServiceType.IN_PROC,
-                ModeType.CLIENT,
+                ModeType.CLIENT_SERVER,
                 "0.0.0.0", // By setting to "0.0.0.0", it binds to all available interfaces
                 0,         // Uses randomly available port
                 QualityOfService.LOW
diff --git a/java/examples-java/simpleserver/src/main/assets/oic_svr_db_server.dat b/java/examples-java/simpleserver/src/main/assets/oic_svr_db_server.dat
new file mode 100644 (file)
index 0000000..9e4d7fa
Binary files /dev/null and b/java/examples-java/simpleserver/src/main/assets/oic_svr_db_server.dat differ
old mode 100755 (executable)
new mode 100644 (file)
index 729138c..f6d3dca
-{
-    "acl": [
-        {
-            "sub": "Kg==",
-            "rsrc": [
-                "/oic/res",
-                "/oic/d",
-                "/oic/p",
-                "/oic/res/types/d",
-                "/oic/ad",
-                "/oic/sec/acl"
-                       ],
-                       "perms": 2,
-                       "ownrs" : ["MTExMTExMTExMTExMTExMQ=="]
-               },
-        {
-            "sub": "Kg==",
-            "rsrc": [
-                "/oic/sec/doxm",
-                "/oic/sec/pstat"
-             ],
-             "perms": 2,
-             "ownrs" : ["MTExMTExMTExMTExMTExMQ=="]
-        },
-        {
-            "sub": "Kg==",
-            "rsrc": ["/light0", "/light1", "/a/light"],
-            "perms": 6,
-            "ownrs" : ["MjIyMjIyMjIyMjIyMjIyMg=="]
-        }
-       ],
-       "pstat":        {
-               "isop": true,
-               "deviceid":     "ZGV2aWNlaWQAAAAAABhanw==",
-               "ch": 0,
-               "cm":   0,
-               "tm":   0,
-               "om":   3,
-               "sm":   [3]
-       },
-       "doxm": {
-               "oxm":  [0],
-               "oxmsel": 0,
-               "sct": 1,
-               "owned": true,
-               "deviceid":     "MTExMTExMTExMTExMTExMQ==",
-               "ownr": "MjIyMjIyMjIyMjIyMjIyMg=="
-       },
-    "cred":    [{
-               "credid": 1,
-               "sub": "MjIyMjIyMjIyMjIyMjIyMg==",
-               "credtyp": 1,
-               "pvdata": "QUFBQUFBQUFBQUFBQUFBQQ==",
-        "ownrs" : ["MjIyMjIyMjIyMjIyMjIyMg=="]
-       }]
-}
+{\r
+    "acl": {\r
+        "aclist": {\r
+            "aces": [\r
+                {\r
+                    "subjectuuid": "*",\r
+                    "resources": [\r
+                        {\r
+                            "href": "/oic/res",\r
+                            "rel": "",\r
+                            "rt": ["oic.wk.res"],\r
+                            "if": ["oic.if.ll"]\r
+                        },\r
+                        {\r
+                            "href": "/oic/d",\r
+                            "rel": "",\r
+                            "rt": ["oic.wk.d"],\r
+                            "if": ["oic.if.baseline", "oic.if.r"]\r
+                        },\r
+                        {\r
+                            "href": "/oic/p",\r
+                            "rel": "",\r
+                            "rt": ["oic.wk.p"],\r
+                            "if": ["oic.if.baseline", "oic.if.r"]\r
+                        },\r
+                        {\r
+                            "href": "/oic/sec/acl",\r
+                            "rel": "",\r
+                            "rt": ["oic.r.acl"],\r
+                            "if": ["oic.if.baseline"]\r
+                        }\r
+                    ],\r
+                    "permission": 2\r
+                },\r
+                {\r
+                    "subjectuuid": "*",\r
+                    "resources": [\r
+                        {\r
+                            "href": "/oic/sec/doxm",\r
+                            "rel": "",\r
+                            "rt": ["oic.r.doxm"],\r
+                            "if": ["oic.if.baseline"]\r
+                        },\r
+                        {\r
+                            "href": "/oic/sec/pstat",\r
+                            "rel": "",\r
+                            "rt": ["oic.r.pstat"],\r
+                            "if": ["oic.if.baseline"]\r
+                        }\r
+                    ],\r
+                    "permission": 2\r
+                },\r
+                {\r
+                    "subjectuuid": "*",\r
+                    "resources": [\r
+                        {\r
+                            "href": "/a/light",\r
+                            "rel": "",\r
+                            "rt": ["oic.core"],\r
+                            "if": ["oic.if.baseline"]\r
+                        }\r
+                    ],\r
+                    "permission": 7\r
+                }\r
+            ]\r
+        },\r
+        "rowneruuid" : "31313131-3131-3131-3131-313131313131"\r
+    },\r
+    "pstat": {\r
+        "isop": true,\r
+        "deviceuuid": "31313131-3131-3131-3131-313131313131",\r
+        "rowneruuid": "31313131-3131-3131-3131-313131313131",\r
+        "cm": 0,\r
+        "tm": 0,\r
+        "om": 4,\r
+        "sm": 4\r
+        },\r
+    "doxm": {\r
+        "oxms": [0],\r
+        "oxmsel": 0,\r
+        "sct": 1,\r
+        "owned": true,\r
+        "deviceuuid": "31313131-3131-3131-3131-313131313131",\r
+        "devowneruuid": "32323232-3232-3232-3232-323232323232",\r
+        "rowneruuid": "31313131-3131-3131-3131-313131313131"\r
+    },\r
+    "cred": {\r
+        "creds": [\r
+            {\r
+                "credid": 1,\r
+                "subjectuuid": "32323232-3232-3232-3232-323232323232",\r
+                "credtype": 1,\r
+                "privatedata": {\r
+                    "data": "AAAAAAAAAAAAAAAA",\r
+                    "encoding": "oic.sec.encoding.raw"\r
+                }\r
+            }\r
+        ],\r
+        "rowneruuid": "31313131-3131-3131-3131-313131313131"\r
+    }\r
+}
\ No newline at end of file
index 446fb8a..e84d678 100644 (file)
@@ -29,6 +29,7 @@ import org.iotivity.base.PlatformConfig;
 import org.iotivity.base.QualityOfService;
 import org.iotivity.base.ServiceType;
 
+import java.net.URISyntaxException;
 import java.util.LinkedList;
 import java.util.List;
 
@@ -47,13 +48,22 @@ public class SimpleServer {
      * A local method to configure and initialize platform, and then create a light resource.
      */
     private static void startSimpleServer() {
+        String path = "";
+        // This assumes the oic_svr_db_server.dat file is in the same location as the SimpleServer.jar file
+        try {
+            path = SimpleServer.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath();
+            path = path.substring(0, path.lastIndexOf('/'));
+        } catch (URISyntaxException e) {
+            msg(e.getMessage() + " unable to find local file path.");
+        }
 
         PlatformConfig platformConfig = new PlatformConfig(
                 ServiceType.IN_PROC,
                 ModeType.SERVER,
                 "0.0.0.0", // By setting to "0.0.0.0", it binds to all available interfaces
                 0,         // Uses randomly available port
-                QualityOfService.LOW
+                QualityOfService.LOW,
+                path + "/oic_svr_db_server.dat"
         );
 
         msg("Configuring platform.");