From: saurabh.s9 Date: Sat, 20 May 2017 09:15:43 +0000 (+0530) Subject: [IOT-2133] Adding missing updateIndividualAcl API X-Git-Tag: 1.3.0~59 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=bb8ded783f9e987d1e97b51ad9fe839c949803f1;p=platform%2Fupstream%2Fiotivity.git [IOT-2133] Adding missing updateIndividualAcl API Change-Id: I0b2f2db077a77b586e0799ec4d2ea3551fc363ca Signed-off-by: saurabh.s9 Reviewed-on: https://gerrit.iotivity.org/gerrit/19897 Tested-by: jenkins-iotivity Reviewed-by: dongik Lee Reviewed-by: Randeep Singh --- diff --git a/java/common/src/main/java/org/iotivity/base/OcCloudProvisioning.java b/java/common/src/main/java/org/iotivity/base/OcCloudProvisioning.java index eff499b01..cbe9938b2 100644 --- a/java/common/src/main/java/org/iotivity/base/OcCloudProvisioning.java +++ b/java/common/src/main/java/org/iotivity/base/OcCloudProvisioning.java @@ -86,6 +86,10 @@ public class OcCloudProvisioning { public void postCRLListener(int result); } + public interface UpdateIndividualACLListener { + public void updateIndividualACLListener(int result); + } + /** * Method to Request a certificate from the cloud * @param certificateIssueRequestListener function called by the stack on completion of request. @@ -126,6 +130,24 @@ public class OcCloudProvisioning { public native void getIndividualAclInfo(String aclId, GetIndividualAclInfoListener cloudAclIndividualGetInfoHandler) throws OcException; + /** + * Method to update Individual ACL info + * @param aclId ACL ID + * @param cloudAces List of cloud Aces for updation. + * @param updateIndividualACLHandler function called by the stack on completion of request. + * @throws OcException Indicates failure to get ACL information. + * Use OcException.GetErrorCode() for more details. + */ + public void updateIndividualACL(String aclId, List cloudAces, + UpdateIndividualACLListener updateIndividualACLHandler) throws OcException + { + this.updateIndividualACL0(aclId, + cloudAces.toArray(new OicSecCloudAce[cloudAces.size()]), updateIndividualACLHandler); + } + + public native void updateIndividualACL0(String aclId, OicSecCloudAce[] aces, + UpdateIndividualACLListener updateIndividualACLHandler) throws OcException; + /** * Method to get certificate revocation list * @param cloudGetCRLHandler function called by the stack on completion of request. diff --git a/java/common/src/main/java/org/iotivity/base/OicSecCloudAce.java b/java/common/src/main/java/org/iotivity/base/OicSecCloudAce.java new file mode 100644 index 000000000..dd13ff199 --- /dev/null +++ b/java/common/src/main/java/org/iotivity/base/OicSecCloudAce.java @@ -0,0 +1,98 @@ +/* + ******************************************************************* + * + * Copyright 2017 Samsung Electronics All Rights Reserved. + * + *-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + *-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= + */ + +package org.iotivity.base; + +import java.util.List; +public class OicSecCloudAce { + private String aclID; + private String subjectID; + private int stype; + private int permission; + private List resources; + private List validities; + + public OicSecCloudAce(String aclID, String subjectID, int stype, int permission, + List resources, List validities) { + super(); + this.subjectID = subjectID; + this.permission = permission; + this.resources = resources; + this.validities = validities; + } + + public String getAclID() { + return aclID; + } + + public String getSubjectID() { + return subjectID; + } + + public void setAclID(String aclID) { + this.aclID = aclID; + } + + public void setSubjectID(String subjectID) { + this.subjectID = subjectID; + } + + public int getStype() { + return stype; + } + + public void setStype(int stype) { + this.stype = stype; + } + + + public int getPermission() { + return permission; + } + + public void setPermission(int permission) { + this.permission = permission; + } + + public List getResourcesList() { + return resources; + } + + public OicSecResr[] getResources() { + return resources.toArray(new OicSecResr[resources.size()]); + } + public void setResources(List resources) { + this.resources = resources; + } + + public List getValiditiesList() { + return validities; + } + + public OicSecValidity[] getValidities() { + return validities.toArray(new OicSecValidity[validities.size()]); + } + + public void setValidities(List validities) { + this.validities = validities; + } +} diff --git a/java/examples-android/cloudprovisioningclient/src/main/java/org/iotivity/base/examples/cloudprovisioningclient/CloudProvisioningClient.java b/java/examples-android/cloudprovisioningclient/src/main/java/org/iotivity/base/examples/cloudprovisioningclient/CloudProvisioningClient.java index dcff8f76f..a5ebb9c2d 100644 --- a/java/examples-android/cloudprovisioningclient/src/main/java/org/iotivity/base/examples/cloudprovisioningclient/CloudProvisioningClient.java +++ b/java/examples-android/cloudprovisioningclient/src/main/java/org/iotivity/base/examples/cloudprovisioningclient/CloudProvisioningClient.java @@ -54,7 +54,7 @@ import org.iotivity.base.PlatformConfig; import org.iotivity.base.QualityOfService; import org.iotivity.base.ServiceType; import org.iotivity.base.examples.cloudprovisioningclient.R; - +import org.iotivity.base.*; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; @@ -68,6 +68,51 @@ import java.util.List; public class CloudProvisioningClient extends Activity implements OcAccountManager.OnPostListener { private static final String TAG = "Cloud Provisioning Client: "; + private List generateAce(String aclid) + { + String type1 = "type1"; + String type2 = "type2"; + int typeLen = 2; + String interface1 = "interface1"; + String interface2 = "interface2"; + int interfaceLen = 2; + + + ArrayList types = new ArrayList(); + types.add(type1); + types.add(type2); + + ArrayList interfaces = new ArrayList(); + interfaces.add(interface1); + interfaces.add(interface2); + OicSecResr res = new OicSecResr("/oic/a", "testrel", types, typeLen,interfaces, 2); + OicSecResr res1 = new OicSecResr("/oic/b", "testrel", types, typeLen,interfaces, 2); + List resources = new ArrayList(); + resources.add(res); + resources.add(res1); + + List recurrences = new ArrayList(); + recurrences.add("1"); + recurrences.add("2"); + OicSecValidity validity1 = new OicSecValidity("1", recurrences,2); + OicSecValidity validity2 = new OicSecValidity("2", recurrences,2); + List validities = new ArrayList(); + validities.add(validity1); + validities.add(validity2); + + OicSecCloudAce ace1 = new OicSecCloudAce(aclid,"72616E64-5069-6E44-6576-557569643030", 0, + 31,resources, validities); + OicSecCloudAce ace2 = new OicSecCloudAce(aclid, "72616E64-5069-6E44-6576-557569643030", 0, + 8, resources, validities); + + List aces = new ArrayList(); + aces.add(ace1); + aces.add(ace2); + logMessage("out--generate ace"); + return aces; + } + + OcAccountManager.OnPostListener onSignUp = new OcAccountManager.OnPostListener() { @Override public synchronized void onPostCompleted(List list, @@ -229,14 +274,14 @@ public class CloudProvisioningClient extends Activity implements OcAccountManage }; private static final int BUFFER_SIZE = 1024; private final int REQUEST_LOGIN = 1; - Button signUp, signIn, signOut, getAclId, getAclInfo, requestCert, postCrl, getCrl; + Button signUp, signIn, signOut, getAclId, getAclInfo, requestCert, postCrl, getCrl, updateAce; TextView userid; LinearLayout lyt1, lyt2, signupLyt, signinLyt; // private TextView eventView; SharedPreferences settingPreference; OcCloudProvisioning ocCloudProvisioning; - String acl_Id; String createacl_Id = null; + String acl_Id = null; OcCloudProvisioning.GetAclIdByDeviceListener getAclIdByDeviceListener = new OcCloudProvisioning.GetAclIdByDeviceListener() { @Override @@ -258,16 +303,28 @@ public class CloudProvisioningClient extends Activity implements OcAccountManage Log.d(TAG, "Inside createAclIdListener "); if (result == 0) { createacl_Id = aclId; + acl_Id = aclId; logMessage("Acl Id by create aclid !!" + createacl_Id); } else { logMessage("Error: Acl Id by create aclid failed !!"); } } }; + OcCloudProvisioning.UpdateIndividualACLListener updateIndividualACLListener = + new OcCloudProvisioning.UpdateIndividualACLListener(){ + public void updateIndividualACLListener(int result) + { + Log.d(TAG, "Inside UpdateIndividualACLListener "); + if (result == 4) { + logMessage("Success UpdateIndividualACLListener"); + } else { + logMessage("Error:UpdateIndividualACLListener = "+result); + } + } + }; private OcAccountManager mAccountManager; private String filePath = ""; private TextView mEventsTextView; - @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -282,6 +339,7 @@ public class CloudProvisioningClient extends Activity implements OcAccountManage postCrl = (Button) findViewById(R.id.postCRL); getCrl = (Button) findViewById(R.id.getCRL); + updateAce = (Button) findViewById(R.id.updateAce); lyt1 = (LinearLayout) findViewById(R.id.lyt1); lyt2 = (LinearLayout) findViewById(R.id.lyt2); signupLyt = (LinearLayout) findViewById(R.id.signupLyt); @@ -375,6 +433,12 @@ public class CloudProvisioningClient extends Activity implements OcAccountManage getCrl(); } }); + updateAce.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + updateAces(); + } + }); } @@ -434,6 +498,7 @@ public class CloudProvisioningClient extends Activity implements OcAccountManage private void getAclId() { try { + logMessage("getAclId"); if(createacl_Id == null) { ocCloudProvisioning.createAclId(settingPreference.getString("OWNERID", ""), @@ -451,7 +516,6 @@ public class CloudProvisioningClient extends Activity implements OcAccountManage private void getAclInfo() { try { logMessage("getAclInfo"); - logMessage("\taclid="+acl_Id); ocCloudProvisioning.getIndividualAclInfo(acl_Id, getIndividualAclInfoListener); } catch (OcException e) { @@ -477,7 +541,8 @@ public class CloudProvisioningClient extends Activity implements OcAccountManage ArrayList arrayList = new ArrayList<>(); arrayList.add(settingPreference.getString("SERIALNUMBER", "1234")); - ocCloudProvisioning.postCRL("20160727000000", "20161027000000", null, arrayList, postCRLListener); + ocCloudProvisioning.postCRL("20160727000000", "20161027000000", null, + arrayList, postCRLListener); } catch (OcException e) { e.printStackTrace(); @@ -494,6 +559,17 @@ public class CloudProvisioningClient extends Activity implements OcAccountManage } } + private void updateAces() + { + try { + logMessage("updateAce"); + ocCloudProvisioning.updateIndividualACL(acl_Id, generateAce(acl_Id), + updateIndividualACLListener); + + } catch (OcException e) { + e.printStackTrace(); + } + } private void signUp() { try { mAccountManager = OcPlatform.constructAccountManagerObject( @@ -636,7 +712,6 @@ public class CloudProvisioningClient extends Activity implements OcAccountManage sendBroadcast(intent); } - private void setDefualtSettings() { View setingLayout = getLayoutInflater().inflate(R.layout.setting_layout, null); diff --git a/java/examples-android/cloudprovisioningclient/src/main/res/layout/main_activity.xml b/java/examples-android/cloudprovisioningclient/src/main/res/layout/main_activity.xml old mode 100755 new mode 100644 index 3ce36d264..915e7a538 --- a/java/examples-android/cloudprovisioningclient/src/main/res/layout/main_activity.xml +++ b/java/examples-android/cloudprovisioningclient/src/main/res/layout/main_activity.xml @@ -131,7 +131,18 @@ android:text="Get CRL" /> - + + +