# Build simpleclient sample
simpleclient_classes = jdk_env.Java(target='classes', source=['src/main/java'])
example_jar = jdk_env.Jar(target='simpleclient.jar', source=[simpleclient_classes, 'MANIFEST.MF'])
-jdk_env.Install("../..", example_jar)
\ No newline at end of file
+jdk_env.Install("../..", example_jar)
+if jdk_env.get('SECURED') == '1':
+ jdk_env.Install(target="../..", source=['src/main/assets/oic_svr_db_client.dat'])
{
- "acl": [
- {
- "sub": "Kg==",
- "rsrc": [
- "/oic/res",
- "/oic/d",
- "/oic/p",
- "/oic/res/types/d",
- "/oic/ad",
- "/oic/sec/acl"
- ],
- "perms": 2,
- "ownrs" : ["MjIyMjIyMjIyMjIyMjIyMg=="]
- },
- {
- "sub": "Kg==",
- "rsrc": [
- "/oic/sec/doxm",
- "/oic/sec/pstat"
- ],
- "perms": 2,
- "ownrs" : ["MjIyMjIyMjIyMjIyMjIyMg=="]
- }
- ],
- "pstat": {
- "dos": {"s": 3, "p": false},
- "isop": true,
- "deviceid": "ZGV2aWNlaWQAAAAAABhanw==",
- "ch": 0,
- "cm": 0,
- "tm": 0,
- "om": 3,
- "sm": [3]
- },
- "doxm": {
- "oxm": [0],
- "oxmsel": 0,
- "sct": 9,
- "owned": true,
- "deviceid": "MjIyMjIyMjIyMjIyMjIyMg==",
- "ownr": "MjIyMjIyMjIyMjIyMjIyMg=="
- },
- "cred": [{
- "credid": 1,
- "sub": "MTExMTExMTExMTExMTExMQ==",
- "credtyp": 1,
- "pvdata": "QUFBQUFBQUFBQUFBQUFBQQ==",
- "ownrs" : ["MjIyMjIyMjIyMjIyMjIyMg=="]
- }]
+ "acl": {
+ "aclist2": [
+ {
+ "aceid": 1,
+ "subject": { "conntype": "anon-clear" },
+ "resources": [
+ { "href": "/oic/res" },
+ { "href": "/oic/d" },
+ { "href": "/oic/p" },
+ { "href": "/oic/sec/doxm" }
+ ],
+ "permission": 2
+ },
+ {
+ "aceid": 2,
+ "subject": { "conntype": "auth-crypt" },
+ "resources": [
+ { "href": "/oic/res" },
+ { "href": "/oic/d" },
+ { "href": "/oic/p" },
+ { "href": "/oic/sec/doxm" }
+ ],
+ "permission": 2
+ }
+ ],
+ "rowneruuid" : "32323232-3232-3232-3232-323232323232"
+ },
+ "pstat": {
+ "dos": {"s": 3, "p": false},
+ "isop": true,
+ "rowneruuid": "32323232-3232-3232-3232-323232323232",
+ "cm": 0,
+ "tm": 0,
+ "om": 4,
+ "sm": 4
+ },
+ "doxm": {
+ "oxms": [0],
+ "oxmsel": 0,
+ "sct": 9,
+ "owned": true,
+ "deviceuuid": "32323232-3232-3232-3232-323232323232",
+ "devowneruuid": "32323232-3232-3232-3232-323232323232",
+ "rowneruuid": "32323232-3232-3232-3232-323232323232"
+ },
+ "cred": {
+ "creds": [
+ {
+ "credid": 1,
+ "subjectuuid": "31313131-3131-3131-3131-313131313131",
+ "credtype": 1,
+ "privatedata": {
+ "data": "AAAAAAAAAAAAAAAA",
+ "encoding": "oic.sec.encoding.raw"
+ }
+ }
+ ],
+ "rowneruuid": "32323232-3232-3232-3232-323232323232"
+ }
}
import org.iotivity.base.QualityOfService;
import org.iotivity.base.ServiceType;
+import java.net.URISyntaxException;
import java.util.EnumSet;
import java.util.HashMap;
import java.util.List;
* A local method to configure and initialize platform, and then search for the light resources.
*/
private static void startSimpleClient() {
+ String path = "";
+ // This assumes the oic_svr_db_server.dat file is in the same location as the SimpleServer.jar file
+ try {
+ path = SimpleClient.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.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
+ QualityOfService.LOW,
+ path + "/oic_svr_db_client.dat"
);
msg("Configuring platform.");
OcPlatform.Configure(platformConfig);
for (String resourceInterface : ocResource.getResourceInterfaces()) {
msg("\t\t" + resourceInterface);
}
+ // Get Resource current host
+ msg("\tHost of resource: ");
+ msg("\t\t" + hostAddress);
+ // Get Resource Endpoint Infomation
+ msg("\tList of resource endpoints: ");
+ for(String resourceEndpoint : ocResource.getAllHosts())
+ {
+ msg("\t\t" + resourceEndpoint);
+ }
+
+ OcConnectivityType TRANSPORT_TYPE_TO_USE = OcConnectivityType.CT_ADAPTER_IP;
+
+ // If resource is found from ip based adapter.
+ if (hostAddress.contains("coap://") ||
+ hostAddress.contains("coaps://") ||
+ hostAddress.contains("coap+tcp://") ||
+ hostAddress.contains("coaps+tcp://"))
+ {
+ for(String resourceEndpoint : ocResource.getAllHosts())
+ {
+ if (!resourceEndpoint.equals(hostAddress) &&
+ !resourceEndpoint.contains("coap+rfcomm"))
+ {
+ String newHost = resourceEndpoint;
+ if (newHost.contains("tcp"))
+ {
+ TRANSPORT_TYPE_TO_USE = OcConnectivityType.CT_ADAPTER_TCP;
+ }
+ else
+ {
+ TRANSPORT_TYPE_TO_USE = OcConnectivityType.CT_ADAPTER_IP;
+ }
+ // Change Resource host if another host exists
+ msg("\tChange host of resource endpoints");
+ msg("\t\t" + "Current host is " + ocResource.setHost(newHost));
+ break;
+ }
+ }
+ }
msg("\tList of resource connectivity types:");
for (OcConnectivityType connectivityType : ocResource.getConnectivityTypeSet()) {
msg("\t\t" + connectivityType);
try {
// Invoke resource's "get" API with a OcResource.OnGetListener event
// listener implementation
+ msg("calling get on server with ID: " + mFoundLightResource.getServerId());
sleep(1);
mFoundLightResource.get(queryParams, this);
} catch (OcException e) {
example_jar = jdk_env.Jar(target='simpleserver.jar',
source=['classes', 'MANIFEST.MF'],
JARCHDIR='$SOURCE')
-jdk_env.Install("../..", example_jar)
\ No newline at end of file
+jdk_env.Install("../..", example_jar)
+if jdk_env.get('SECURED') == '1':
+ jdk_env.Install(target="../..", source=['src/main/assets/oic_svr_db_server.dat'])
-{\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
- "dos": {"s": 3, "p": false},\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": 9,\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
+{
+ "acl": {
+ "aclist2": [
+ {
+ "aceid": 1,
+ "subject": { "conntype": "anon-clear" },
+ "resources": [
+ { "href": "/oic/res" },
+ { "href": "/oic/d" },
+ { "href": "/oic/p" },
+ { "href": "/oic/sec/doxm" }
+ ],
+ "permission": 2
+ },
+ {
+ "aceid": 2,
+ "subject": { "conntype": "auth-crypt" },
+ "resources": [
+ { "href": "/oic/res" },
+ { "href": "/oic/d" },
+ { "href": "/oic/p" },
+ { "href": "/oic/sec/doxm" }
+ ],
+ "permission": 2
+ },
+ {
+ "aceid": 3,
+ "subject": { "uuid": "32323232-3232-3232-3232-323232323232" },
+ "resources": [{ "wc": "*" }],
+ "permission": 7
+ },
+ {
+ "aceid": 4,
+ "subject": { "uuid": "31393139-3139-3139-3139-313931393139" },
+ "resources": [{ "href": "/a/light" }],
+ "permission": 7
+ }
+ ],
+ "rowneruuid" : "31313131-3131-3131-3131-313131313131"
+ },
+ "pstat": {
+ "dos": {"s": 3, "p": false},
+ "isop": true,
+ "rowneruuid": "31313131-3131-3131-3131-313131313131",
+ "cm": 0,
+ "tm": 0,
+ "om": 4,
+ "sm": 4
+ },
+ "doxm": {
+ "oxms": [0],
+ "oxmsel": 0,
+ "sct": 9,
+ "owned": true,
+ "deviceuuid": "31313131-3131-3131-3131-313131313131",
+ "devowneruuid": "32323232-3232-3232-3232-323232323232",
+ "rowneruuid": "31313131-3131-3131-3131-313131313131"
+ },
+ "cred": {
+ "creds": [
+ {
+ "credid": 1,
+ "subjectuuid": "32323232-3232-3232-3232-323232323232",
+ "credtype": 1,
+ "period": "20150630T060000/20990920T220000",
+ "privatedata": {
+ "data": "AAAAAAAAAAAAAAAA",
+ "encoding": "oic.sec.encoding.raw"
+ }
+ },
+ {
+ "credid": 2,
+ "subjectuuid": "31393139-3139-3139-3139-313931393139",
+ "credtype": 1,
+ "period": "20150630T060000/20990920T220000",
+ "privatedata": {
+ "data": "BBBBBBBBBBBBBBBB",
+ "encoding": "oic.sec.encoding.raw"
+ }
+ }
+ ],
+ "rowneruuid": "32323232-3232-3232-3232-323232323232"
+ }
+}
mResourceTypeName,
mResourceInterface,
this,
- EnumSet.of(ResourceProperty.DISCOVERABLE, ResourceProperty.OBSERVABLE)
+ EnumSet.of(ResourceProperty.DISCOVERABLE, ResourceProperty.OBSERVABLE, ResourceProperty.SECURE)
);
}
}