diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn index 43b9f9fd087f420df57cf9f45ab50088191acfb4..b273af75e3b61458dafd52d429f5386302bfbf90 100644 --- a/LibOneM2M/OneM2M_Functions.ttcn +++ b/LibOneM2M/OneM2M_Functions.ttcn @@ -7,7 +7,7 @@ * * @author ETSI * @version $URL: https://forge.etsi.org/svn/oneM2M/trunk/ttcn/LibOneM2M/OneM2M_Functions.ttcn $ - * $Id: OneM2M_Functions.ttcn 163 2016-11-10 08:50:50Z carres $ + * $Id: OneM2M_Functions.ttcn 164 2016-11-17 13:54:53Z carres $ * @desc Module containing functions for oneM2M * */ @@ -919,18 +919,18 @@ module OneM2M_Functions { alt { [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; - setverdict(pass, testcasename() & ": Attribute of resource type int2 (Ae) updated successfuly"); + setverdict(pass, testcasename() & ": Attribute of resource updated successfuly"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; - setverdict(fail, testcasename() & ": Error while updating resource type int2 (Ae)"); + setverdict(fail, testcasename() & ": Error while updating resource"); } [] mcaPort.receive{ tc_ac.stop; setverdict(fail, testcasename() & ": Error, unexpected message received"); } [] tc_ac.timeout { - setverdict(inconc, testcasename() & ": No answer while updating resource type int2 (Ae) or None notification received"); + setverdict(inconc, testcasename() & ": No answer while updating resource"); } } }// end f_update_attribute_request diff --git a/LibOneM2M/OneM2M_Templates.ttcn b/LibOneM2M/OneM2M_Templates.ttcn index 87522339f66574487b9054f388dc34ca9685b34d..a7e46358b2155e825242e0945fa86b7286fce5a6 100644 --- a/LibOneM2M/OneM2M_Templates.ttcn +++ b/LibOneM2M/OneM2M_Templates.ttcn @@ -7,7 +7,7 @@ * * @author ETSI * @version $URL: https://forge.etsi.org/svn/oneM2M/trunk/ttcn/LibOneM2M/OneM2M_Templates.ttcn $ - * $Id: OneM2M_Templates.ttcn 162 2016-11-09 09:09:44Z carres $ + * $Id: OneM2M_Templates.ttcn 164 2016-11-17 13:54:53Z carres $ * @desc Module containing templates for oneM2M * */ @@ -269,6 +269,14 @@ module OneM2M_Templates { } }; + template (value) RequestPrimitive m_updateAcpPrivileges(in template(omit) SetOfAcrs p_privileges := omit, in template(omit) SetOfAcrs p_selfPrivileges := omit) modifies m_update := { + from_ := PX_AE_ID_STEM, + requestIdentifier := "m_updateAcp" & f_rnd(1, 1000000), + primitiveContent:= { + any_1 := {{AccessControlPolicy_optional := m_contentUpdateAcpPrivileges(p_privileges, p_selfPrivileges)}} + } + }; + /** * @desc Base UPDATE request primitive for Group resource */ @@ -825,27 +833,20 @@ module OneM2M_Templates { announceTo := omit,//O announcedAttribute := omit,//O privileges := { - accessControlRule_list := { - { - accessControlOriginators := p_acor,//{"*"},//{PX_AE_ID_STEM}, //{"admin:admin"}, - accessControlOperations := p_allowedOperations, - accessControlContexts_list := omit, - accessControlAuthenticationFlag := omit - } - } + accessControlRule_list := {valueof(m_createAcr(p_acor, p_allowedOperations))} },//M selfPrivileges := { - accessControlRule_list := { - { - accessControlOriginators := p_acor, //{"*"},//{PX_AE_ID_STEM}, //{"admin:admin"}, - accessControlOperations := int63, - accessControlContexts_list := omit, - accessControlAuthenticationFlag := omit - } - } + accessControlRule_list := {valueof(m_createAcr(p_acor, int63))} },//M choice := omit //NP }; + + template (value) AccessControlRule m_createAcr (in template (value) ListOfURIs p_acor, in template (value) AccessControlOperations p_allowedOperations) := { + accessControlOriginators := p_acor,//{"*"},//{PX_AE_ID_STEM}, //{"admin:admin"}, + accessControlOperations := p_allowedOperations, + accessControlContexts_list := omit, + accessControlAuthenticationFlag := omit + } //added by @Naum template (value) CSEBase_optional m_contentCreateCSEBase (in ServiceSubscribedAppRule p_serviceSubscribedAppRule) := { @@ -1192,6 +1193,22 @@ module OneM2M_Templates { selfPrivileges := omit,//O choice := omit //NP }; + + template (value) AccessControlPolicy_optional m_contentUpdateAcpPrivileges(in template(omit) SetOfAcrs p_privileges, in template(omit) SetOfAcrs p_selfPrivileges) := { + resourceName := omit,//NP + resourceType := omit,//NP + resourceID := omit,//NP + parentID := omit,//NP + creationTime := omit,//NP + lastModifiedTime := omit,//NP + labels := omit,//O + expirationTime := omit,//O + announceTo := omit,//O + announcedAttribute := omit,//O + privileges := p_privileges,//O + selfPrivileges := p_selfPrivileges,//O + choice := omit //NP + }; /** * @desc Base primitiveContent for UPDATE operation for Group resource diff --git a/OneM2M_Testcases.ttcn b/OneM2M_Testcases.ttcn index 3a0e6a781742a6117ad9892141fb172f535af9b5..604928c7cf8dc5214e66db0d0838f0a355f62c5d 100644 --- a/OneM2M_Testcases.ttcn +++ b/OneM2M_Testcases.ttcn @@ -7,7 +7,7 @@ * * @author ETSI * @version $URL: https://forge.etsi.org/svn/oneM2M/trunk/ttcn/OneM2M_Testcases.ttcn $ - * $Id: OneM2M_Testcases.ttcn 163 2016-11-10 08:50:50Z carres $ + * $Id: OneM2M_Testcases.ttcn 164 2016-11-17 13:54:53Z carres $ * @desc Module containing test cases for oneM2M * */ @@ -2630,7 +2630,7 @@ module OneM2M_Testcases { //Check attribute 1 if(ispresent(v_responsePrimitive.primitiveContent)) { if(ischosen(v_responsePrimitive.primitiveContent.any_1[0].AccessControlPolicy)) { - if(v_responsePrimitive.primitiveContent.any_1[0].AccessControlPolicy.labels != v_labels_2){ + if(v_responsePrimitive.primitiveContent.any_1[0].AccessControlPolicy_optional.labels != v_labels_2){ setverdict(fail, testcasename() & ": Error: Labels attribute not updated correctly") } } @@ -4000,6 +4000,71 @@ module OneM2M_Testcases { } // end g_CSE_DMR_UPD_BO_008 + group g_CSE_DMR_UPD_BV_009{ + + testcase TC_CSE_DMR_UPD_BV_009() runs on CseTester system CseSystem { + var MsgIn v_response; + var integer v_aeIndex := -1; + var integer v_containerIndex := -1; + var RequestPrimitive v_updateRequest := m_updateContainerBase; + var Labels v_labels_1:= {"VALUE_1"}; + v_updateRequest.primitiveContent.any_1[0].Container_optional.labels := v_labels_1; + + // Test control + + // Test component configuration + f_cf01Up(); + + // Test adapter configuration + + // Preamble + v_aeIndex := f_cse_preamble_registerAe();//c_CRUDNDi); + + v_containerIndex := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); + + // Test Body + if(ispresent(vc_resourcesList[v_containerIndex].resource.any_1[0].Container_optional.stateTag)) { + + v_updateRequest := f_getUpdateRequestPrimitive(int3, v_containerIndex, v_updateRequest); + f_update_attribute_request(v_updateRequest); + + mcaPort.send(m_request(m_retrieveResource(f_getResourceAddress(v_containerIndex), f_getOriginator(v_containerIndex)))); + + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { + tc_ac.stop; + if(v_response.primitive.responsePrimitive.primitiveContent.any_1[0].Container_optional.stateTag == 1) { //(Create and Delete) + setverdict(pass, testcasename() & ": The stateTag attribute is incremented"); + } + else{ + setverdict(fail, testcasename() & ": Error the stateTag attribute is not incremented"); + } + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) { + tc_ac.stop; + setverdict(fail, testcasename() & ": Error while retrieving resource attributes"); + } + [] tc_ac.timeout { + setverdict(inconc, testcasename() & ": No answer while retrieving resource attributes"); + } + } + + }//end if + else{ + setverdict(fail, testcasename() & ": Error the stateTag attribute is empty"); + } + + // Postamble + f_cse_postamble_deleteResources(); + + // Tear down + f_cf01Down(); + + }//end TC_CSE_DMR_UPD_BV_009 + + } // end group g_CSE_DMR_UPD_BV_009 + }//end group Update group Delete { @@ -4143,25 +4208,15 @@ module OneM2M_Testcases { // Local variables var MsgIn v_response; var RequestPrimitive v_request; - var RequestPrimitive v_updateRequest := valueof(m_updateAcpBase); + var RequestPrimitive v_updateRequest; var integer v_acpAuxIndex := -1; var integer v_aeIndex := -1; var integer v_resourceIndex := -1; var CseTester v_notifyHandler; var integer v_ae2Index := -1; - - var AccessControlRule v_accessControlRule_1 := { - accessControlOriginators := {PX_SUPER_USER}, - accessControlOperations := int63, - accessControlContexts_list := omit, - accessControlAuthenticationFlag := omit - }; - var AccessControlRule v_accessControlRule_2 := { - accessControlOriginators := {"wait"}, - accessControlOperations := int55, - accessControlContexts_list := omit, - accessControlAuthenticationFlag := omit - }; + var AccessControlRule v_accessControlRule_1 := valueof(m_createAcr({PX_SUPER_USER}, int63)); + var AccessControlRule v_accessControlRule_2; + var SetOfAcrs v_setOfArcs; // Test control if(not(PICS_ACP_SUPPORT)) { @@ -4177,17 +4232,17 @@ module OneM2M_Testcases { // Preamble v_acpAuxIndex := f_cse_preamble_createAcpAux(-,-);//c_CRDNDi); v_aeIndex := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[v_acpAuxIndex].resource)}, -);//c_CRUNDi); + v_accessControlRule_2 := valueof(m_createAcr({f_getOriginator(v_aeIndex)}, int55)); f_cse_preamble_subscriptionVerification(v_notifyHandler, v_aeIndex, v_ae2Index, p_createRequestPrimitive, p_resourceType); if (p_resourceType == int1){ p_createRequestPrimitive.primitiveContent.any_1[0].AccessControlPolicy_optional.selfPrivileges.accessControlRule_list := {v_accessControlRule_1,v_accessControlRule_2}; - p_createRequestPrimitive.primitiveContent.any_1[0].AccessControlPolicy_optional.selfPrivileges.accessControlRule_list[1].accessControlOriginators := {f_getResourceAddress(v_aeIndex)}; } else{ f_setAcpId(p_createRequestPrimitive, {f_getResourceId(vc_resourcesList[v_acpAuxIndex].resource)}); - v_updateRequest.primitiveContent.any_1[0].AccessControlPolicy_optional.privileges.accessControlRule_list := {v_accessControlRule_1,v_accessControlRule_2};// Super User can delete the resource but not the AE - v_updateRequest.primitiveContent.any_1[0].AccessControlPolicy_optional.privileges.accessControlRule_list[1].accessControlOriginators := {f_getOriginator(v_aeIndex)}; + v_setOfArcs.accessControlRule_list := {v_accessControlRule_1, v_accessControlRule_2}; + v_updateRequest := m_updateAcpPrivileges(v_setOfArcs, -); v_updateRequest := f_getUpdateRequestPrimitive(int1, vc_acpAuxIndex, v_updateRequest); mcaPort.send(m_request(v_updateRequest)); @@ -4195,14 +4250,14 @@ module OneM2M_Testcases { alt { [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { tc_ac.stop; - setverdict(pass, testcasename() & ": Attribute of resource type " & int2str(enum2int(p_resourceType)) & " updated successfuly"); + setverdict(pass, testcasename() & ": Attribute of resource type int1 (Acp) updated successfuly"); } [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { tc_ac.stop; - setverdict(fail, testcasename() & ": Error while updating resource type " & int2str(enum2int(p_resourceType))); + setverdict(fail, testcasename() & ": Error while updating resource type int1 (Acp)"); } [] tc_ac.timeout { - setverdict(inconc, testcasename() & ": No answer while updating resource type " & int2str(enum2int(p_resourceType))); + setverdict(inconc, testcasename() & ": No answer while updating resource type int1 (Acp)"); } } } @@ -8516,6 +8571,807 @@ module OneM2M_Testcases { }//end group Subscription_And_Notification + group Security { + + group Access_Control_Policy { + + group g_CSE_SEC_ACP_BV_001 { + + testcase TC_CSE_SEC_ACP_BV_001() runs on CseTester system CseSystem { + // Local variables + var MsgIn v_response; + var integer v_aeIndex := -1; + var integer v_acpIndex := -1; + var template PrimitiveContent v_contentResponse; + var RequestPrimitive v_createRequest := valueof(m_createAcpBase); + var AccessControlRule v_accessControlRule_1 := valueof(m_createAcr({PX_SUPER_USER}, int63)); + var AccessControlRule v_accessControlRule_2 := valueof(m_createAcr({"wait"}, int55)); + // Test control + + // Test component configuration + f_cf01Up(); + + // Test adapter configuration + + // Preamble + v_aeIndex := f_cse_preamble_registerAe(-, -); // Only use for setting the ACR_2's accessControlOriginators attribute to AE_ID + + v_createRequest.primitiveContent.any_1[0].AccessControlPolicy_optional.privileges.accessControlRule_list := {v_accessControlRule_1,v_accessControlRule_2}; + v_createRequest.primitiveContent.any_1[0].AccessControlPolicy_optional.privileges.accessControlRule_list[1].accessControlOriginators := {f_getOriginator(v_aeIndex)}; + + v_contentResponse.any_1[0].AccessControlPolicy_optional := mw_contentAcp_rc1; + v_contentResponse.any_1[0].AccessControlPolicy_optional.privileges.accessControlRule_list := {v_accessControlRule_1,v_accessControlRule_2}; + v_contentResponse.any_1[0].AccessControlPolicy_optional.privileges.accessControlRule_list[1].accessControlOriginators := {f_getOriginator(v_aeIndex)}; + + // Test Body + v_acpIndex := f_cse_createResource(int1, v_createRequest); // CSE child resource + vc_resourcesIndexToBeDeleted := vc_resourcesIndexToBeDeleted & {v_acpIndex}; + + mcaPort.send(m_request(m_retrieveResource(f_getResourceAddress(v_acpIndex), f_getOriginator(v_acpIndex)))); + + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK(v_contentResponse))) -> value v_response { + tc_ac.stop; + setverdict(pass, testcasename() & ": Response OK for retrieving"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { + tc_ac.stop; + setverdict(fail, testcasename() & ": Error, resource elements provided not matching expected resource elements"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { + tc_ac.stop; + setverdict(fail, testcasename() & ": Error while retrieving resource"); + } + [] tc_ac.timeout { + setverdict(inconc, testcasename() & ": No answer while retrieving resource"); + } + } + + //Postamble + f_cse_postamble_deleteResources(); + + //Tear down + f_cf01Down(); + + }//end TC_CSE_SEC_ACP_BV_001 + + }//end g_CSE_SEC_ACP_BV_001 + + group g_CSE_SEC_ACP_BV_002 { + + testcase TC_CSE_SEC_ACP_BV_002() runs on CseTester system CseSystem { + // Local variables + var MsgIn v_response; + var integer v_aeIndex := -1; + var integer v_acpIndex := -1; + var template PrimitiveContent v_contentResponse; + var RequestPrimitive v_createRequest := valueof(m_createAcpBase); + var AccessControlRule v_accessControlRule_1 := valueof(m_createAcr({PX_SUPER_USER}, int63)); + var AccessControlRule v_accessControlRule_2 := valueof(m_createAcr({"wait"}, int55)); + // Test control + + // Test component configuration + f_cf01Up(); + + // Test adapter configuration + + // Preamble + v_aeIndex := f_cse_preamble_registerAe(-, -); // Only use for setting the ACR_2's accessControlOriginators attribute to AE_ID + + v_createRequest.primitiveContent.any_1[0].AccessControlPolicy_optional.selfPrivileges.accessControlRule_list := {v_accessControlRule_1,v_accessControlRule_2}; + v_createRequest.primitiveContent.any_1[0].AccessControlPolicy_optional.selfPrivileges.accessControlRule_list[1].accessControlOriginators := {f_getOriginator(v_aeIndex)}; + + v_contentResponse.any_1[0].AccessControlPolicy_optional := mw_contentAcp_rc1; + v_contentResponse.any_1[0].AccessControlPolicy_optional.selfPrivileges.accessControlRule_list := {v_accessControlRule_1,v_accessControlRule_2}; + v_contentResponse.any_1[0].AccessControlPolicy_optional.selfPrivileges.accessControlRule_list[1].accessControlOriginators := {f_getOriginator(v_aeIndex)}; + + // Test Body + v_acpIndex := f_cse_createResource(int1, v_createRequest); // CSE child resource + vc_resourcesIndexToBeDeleted := vc_resourcesIndexToBeDeleted & {v_acpIndex}; + + mcaPort.send(m_request(m_retrieveResource(f_getResourceAddress(v_acpIndex), f_getOriginator(v_acpIndex)))); + + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK(v_contentResponse))) -> value v_response { + tc_ac.stop; + setverdict(pass, testcasename() & ": Response OK for retrieving"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { + tc_ac.stop; + setverdict(fail, testcasename() & ": Error, resource elements provided not matching expected resource elements"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { + tc_ac.stop; + setverdict(fail, testcasename() & ": Error while retrieving resource"); + } + [] tc_ac.timeout { + setverdict(inconc, testcasename() & ": No answer while retrieving resource"); + } + } + + //Postamble + f_cse_postamble_deleteResources(); + + //Tear down + f_cf01Down(); + + }//end TC_CSE_SEC_ACP_BV_002 + + }//end g_CSE_SEC_ACP_BV_002 + + group g_CSE_SEC_ACP_BV_003 { + + testcase TC_CSE_SEC_ACP_BV_003_01() runs on CseTester system CseSystem { //Create + f_CSE_SEC_ACP_BV_003(m_createContainerBase); + }//end TC_CSE_SEC_ACP_BV_003_01 + + testcase TC_CSE_SEC_ACP_BV_003_02() runs on CseTester system CseSystem { //Update + var template RequestPrimitive v_updateRequest := m_updateAeBase; + var Labels v_labels_1:= {"VALUE_1"}; + v_updateRequest.primitiveContent.any_1[0].AE_optional.labels := v_labels_1; + f_CSE_SEC_ACP_BV_003(v_updateRequest); + }//end TC_CSE_SEC_ACP_BV_003_02 + + testcase TC_CSE_SEC_ACP_BV_003_03() runs on CseTester system CseSystem { //Retrieve + f_CSE_SEC_ACP_BV_003(m_retrieveResource("Temporary", "Temporary")); + }//end TC_CSE_SEC_ACP_BV_003_03 + + testcase TC_CSE_SEC_ACP_BV_003_04() runs on CseTester system CseSystem { //Delete + f_CSE_SEC_ACP_BV_003(m_deleteRequest("Temporary")); + }//end TC_CSE_SEC_ACP_BV_003_04 + + function f_CSE_SEC_ACP_BV_003(template RequestPrimitive p_requestPrimitive) runs on CseTester{ + // Local variables + var MsgIn v_response; + var integer v_aeIndex := -1; + var integer v_acpIndex := -1; + var RequestPrimitive v_createRequest; + var AccessControlRule v_accessControlRule_1; + var RequestPrimitive v_updateRequest; + var SetOfAcrs v_setOfArcs; + + // Test control + + // Test component configuration + f_cf01Up(); + + // Test adapter configuration + + // Preamble + v_createRequest := m_createAcp(f_getResourceAddress(), c_defaultResourceName, {"testDomain"}); + v_acpIndex := f_cse_createResource(int1, v_createRequest); // CSE child resource + vc_resourcesIndexToBeDeleted := vc_resourcesIndexToBeDeleted & {v_acpIndex}; + + v_aeIndex := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[v_acpIndex].resource)}, -); + + // Test Body + p_requestPrimitive.to_ := f_getResourceAddress(v_aeIndex); + p_requestPrimitive.from_ := "testDomain"; + + mcaPort.send(m_request(valueof(p_requestPrimitive))); + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { + tc_ac.stop; + setverdict(pass, testcasename() & ": Successful operation on resource type int2 (Ae)"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { + tc_ac.stop; + setverdict(fail, testcasename() & ": Error while operation on resource type int2 (Ae)"); + } + [] mcaPort.receive{ + tc_ac.stop; + setverdict(fail, testcasename() & ": Error, unexpected message received"); + } + [] tc_ac.timeout { + setverdict(inconc, testcasename() & ": No answer while executing operation on resource type int2 (Ae)"); + } + } + + //Postamble + v_accessControlRule_1 := valueof(m_createAcr({"*"}, int63)); + v_setOfArcs.accessControlRule_list := {v_accessControlRule_1}; + v_updateRequest := m_updateAcpPrivileges(v_setOfArcs, v_setOfArcs); + v_updateRequest := f_getUpdateRequestPrimitive(int1, v_acpIndex, v_updateRequest); + v_updateRequest.from_ := "testDomain"; + mcaPort.send(m_request(v_updateRequest)); + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { + tc_ac.stop; + log(testcasename() & ": Attribute of resource type ACP updated successfuly"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { + tc_ac.stop; + log(testcasename() & ": Error while updating resource type ACP"); + } + [] tc_ac.timeout { + log(testcasename() & ": No answer while updating resource type ACP"); + } + } + + f_cse_postamble_deleteResources(); + + //Tear down + f_cf01Down(); + + }//end f_CSE_SEC_ACP_BV_003 + + }//end g_CSE_SEC_ACP_BV_003 + + group g_CSE_SEC_ACP_BV_004 { + + testcase TC_CSE_SEC_ACP_BV_004_01() runs on CseTester system CseSystem { //Create + f_CSE_SEC_ACP_BV_004(m_createContainerBase); + }//end TC_CSE_SEC_ACP_BV_004_01 + + testcase TC_CSE_SEC_ACP_BV_004_02() runs on CseTester system CseSystem { //Update + var template RequestPrimitive v_updateRequest := m_updateAeBase; + var Labels v_labels_1:= {"VALUE_1"}; + v_updateRequest.primitiveContent.any_1[0].AE_optional.labels := v_labels_1; + f_CSE_SEC_ACP_BV_004(v_updateRequest); + }//end TC_CSE_SEC_ACP_BV_004_02 + + testcase TC_CSE_SEC_ACP_BV_004_03() runs on CseTester system CseSystem { //Retrieve + f_CSE_SEC_ACP_BV_004(m_retrieveResource("Temporary", "Temporary")); + }//end TC_CSE_SEC_ACP_BV_004_03 + + testcase TC_CSE_SEC_ACP_BV_004_04() runs on CseTester system CseSystem { //Delete + f_CSE_SEC_ACP_BV_004(m_deleteRequest("Temporary")); + }//end TC_CSE_SEC_ACP_BV_004_04 + + function f_CSE_SEC_ACP_BV_004(template RequestPrimitive p_requestPrimitive) runs on CseTester{ + // Local variables + var MsgIn v_response; + var integer v_aeIndex := -1; + var integer v_acpIndex := -1; + var RequestPrimitive v_createRequest; + + // Test control + + // Test component configuration + f_cf01Up(); + + // Test adapter configuration + + // Preamble + v_createRequest := f_getCreateRequestPrimitive(int1, m_createAcpBase, -1); + v_acpIndex := f_cse_createResource(int1, v_createRequest); // CSE child resource + vc_resourcesIndexToBeDeleted := vc_resourcesIndexToBeDeleted & {v_acpIndex}; + + v_aeIndex := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[v_acpIndex].resource)}, -); + + // Test Body + p_requestPrimitive.to_ := f_getResourceAddress(v_aeIndex); + p_requestPrimitive.from_ := "UnknowOriginator"; + + mcaPort.send(m_request(valueof(p_requestPrimitive))); + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { + tc_ac.stop; + setverdict(pass, testcasename() & ": Successful operation on resource type int2 (Ae)"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { + tc_ac.stop; + setverdict(fail, testcasename() & ": Error while operation on resource type int2 (Ae)"); + } + [] mcaPort.receive{ + tc_ac.stop; + setverdict(fail, testcasename() & ": Error, unexpected message received"); + } + [] tc_ac.timeout { + setverdict(inconc, testcasename() & ": No answer while executing operation on resource type int2 (Ae)"); + } + } + + //Postamble + f_cse_postamble_deleteResources(); + + //Tear down + f_cf01Down(); + + }//end f_CSE_SEC_ACP_BV_004 + + }//end g_CSE_SEC_ACP_BV_004 + + group g_CSE_SEC_ACP_BV_011 { + + testcase TC_CSE_SEC_ACP_BV_011_01() runs on CseTester system CseSystem { //Create + f_CSE_SEC_ACP_BV_011(m_createContainerBase); + }//end TC_CSE_SEC_ACP_BV_011_01 + + testcase TC_CSE_SEC_ACP_BV_011_02() runs on CseTester system CseSystem { //Update + var template RequestPrimitive v_updateRequest := m_updateContainerBase; + var Labels v_labels_1:= {"VALUE_1"}; + v_updateRequest.primitiveContent.any_1[0].Container_optional.labels := v_labels_1; + f_CSE_SEC_ACP_BV_011(v_updateRequest); + }//end TC_CSE_SEC_ACP_BV_011_02 + + testcase TC_CSE_SEC_ACP_BV_011_03() runs on CseTester system CseSystem { //Retrieve + f_CSE_SEC_ACP_BV_011(m_retrieveResource("Temporary", "Temporary")); + }//end TC_CSE_SEC_ACP_BV_011_03 + + testcase TC_CSE_SEC_ACP_BV_011_04() runs on CseTester system CseSystem { //Delete + f_CSE_SEC_ACP_BV_011(m_deleteRequest("Temporary")); + }//end TC_CSE_SEC_ACP_BV_011_04 + + function f_CSE_SEC_ACP_BV_011(template RequestPrimitive p_requestPrimitive) runs on CseTester { + // Local variables + var MsgIn v_response; + var integer v_aeIndex := -1; + var integer v_containerIndex := -1; + + // Test control + + // Test component configuration + f_cf01Up(); + + // Test adapter configuration + + // Preamble + v_aeIndex := f_cse_preamble_registerAe(-, -); + v_containerIndex := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); + + // Test Body + p_requestPrimitive.to_ := f_getResourceAddress(v_containerIndex); + p_requestPrimitive.from_ := f_getOriginator(v_aeIndex); + + mcaPort.send(m_request(valueof(p_requestPrimitive))); + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { + tc_ac.stop; + setverdict(pass, testcasename() & ": Successful operation on resource type int3 (Container)"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { + tc_ac.stop; + setverdict(fail, testcasename() & ": Error while operation on resource type int3 (Container)"); + } + [] mcaPort.receive{ + tc_ac.stop; + setverdict(fail, testcasename() & ": Error, unexpected message received"); + } + [] tc_ac.timeout { + setverdict(inconc, testcasename() & ": No answer while executing operation on resource type int3 (Container)"); + } + } + + //Postamble + f_cse_postamble_deleteResources(); + + //Tear down + f_cf01Down(); + + } //end f_CSE_SEC_ACP_BV_011 + + } //end g_CSE_SEC_ACP_BV_011 + + group g_CSE_SEC_ACP_BO_012 { + + testcase TC_CSE_SEC_ACP_BO_012_01() runs on CseTester system CseSystem { //Create + f_CSE_SEC_ACP_BO_012(m_createContainerBase); + }//end TC_CSE_SEC_ACP_BO_012_01 + + testcase TC_CSE_SEC_ACP_BO_012_02() runs on CseTester system CseSystem { //Update + var template RequestPrimitive v_updateRequest := m_updateContainerBase; + var Labels v_labels_1:= {"VALUE_1"}; + v_updateRequest.primitiveContent.any_1[0].Container_optional.labels := v_labels_1; + f_CSE_SEC_ACP_BO_012(v_updateRequest); + }//end TC_CSE_SEC_ACP_BO_012_02 + + testcase TC_CSE_SEC_ACP_BO_012_03() runs on CseTester system CseSystem { //Retrieve + f_CSE_SEC_ACP_BO_012(m_retrieveResource("Temporary", "Temporary")); + }//end TC_CSE_SEC_ACP_BO_012_03 + + testcase TC_CSE_SEC_ACP_BO_012_04() runs on CseTester system CseSystem { //Delete + f_CSE_SEC_ACP_BO_012(m_deleteRequest("Temporary")); + }//end TC_CSE_SEC_ACP_BO_012_04 + + function f_CSE_SEC_ACP_BO_012(template RequestPrimitive p_requestPrimitive) runs on CseTester { + // Local variables + var MsgIn v_response; + var integer v_aeIndex := -1; + var integer v_containerIndex := -1; + var integer v_acpIndex := -1; + var RequestPrimitive v_createRequest := valueof(m_createAcpBase); + var RequestPrimitive v_updateRequest; + var AccessControlRule v_accessControlRule_1; + var SetOfAcrs v_setOfArcs; + + // Test control + + // Test component configuration + f_cf01Up(); + + // Test adapter configuration + + // Preamble + v_acpIndex := f_cse_createResource(int1, v_createRequest); // CSE child resource + vc_resourcesIndexToBeDeleted := vc_resourcesIndexToBeDeleted & {v_acpIndex}; + v_aeIndex := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[v_acpIndex].resource)}, -); + v_containerIndex := f_cse_createResource(int3, m_createContainerBase, v_aeIndex); + + v_accessControlRule_1 := valueof(m_createAcr({PX_SUPER_USER, f_getOriginator(v_aeIndex)}, int63)); + v_setOfArcs.accessControlRule_list := {v_accessControlRule_1}; + v_updateRequest := m_updateAcpPrivileges(v_setOfArcs, v_setOfArcs); + v_updateRequest := f_getUpdateRequestPrimitive(int1, v_acpIndex, v_updateRequest); + f_update_attribute_request(v_updateRequest); + + // Test Body + p_requestPrimitive.to_ := f_getResourceAddress(v_containerIndex); + p_requestPrimitive.from_ := "UnknowOriginator"; + + mcaPort.send(m_request(valueof(p_requestPrimitive))); + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int4103))) -> value v_response { + tc_ac.stop; + setverdict(pass, testcasename() & ": Operation denied because of lack of right on Container"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { + tc_ac.stop; + setverdict(fail, testcasename() & ": Error operation have been accpeted without having privileges"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { + tc_ac.stop; + setverdict(fail, testcasename() & ": Error while operation on resource type int3 (Container)"); + } + [] mcaPort.receive{ + tc_ac.stop; + setverdict(fail, testcasename() & ": Error, unexpected message received"); + } + [] tc_ac.timeout { + setverdict(inconc, testcasename() & ": No answer while executing operation on resource type int3 (Container)"); + } + } + + //Postamble + f_cse_postamble_deleteResources(); + + //Tear down + f_cf01Down(); + + } //end f_CSE_SEC_ACP_BO_012 + + } //end g_CSE_SEC_ACP_BO_012 + + group g_CSE_SEC_ACP_BO_013{ + + testcase TC_CSE_SEC_ACP_BO_013_01() runs on CseTester system CseSystem { //Create + f_CSE_SEC_ACP_BO_013(m_createContainerBase); + }//end TC_CSE_SEC_ACP_BO_013_01 + + testcase TC_CSE_SEC_ACP_BO_013_02() runs on CseTester system CseSystem { //Update + var template RequestPrimitive v_updateRequest := m_updateAeBase; + var Labels v_labels_1:= {"VALUE_1"}; + v_updateRequest.primitiveContent.any_1[0].AE_optional.labels := v_labels_1; + f_CSE_SEC_ACP_BO_013(v_updateRequest); + }//end TC_CSE_SEC_ACP_BO_013_02 + + testcase TC_CSE_SEC_ACP_BO_013_03() runs on CseTester system CseSystem { //Retrieve + f_CSE_SEC_ACP_BO_013(m_retrieveResource("Temporary", "Temporary")); + }//end TC_CSE_SEC_ACP_BO_013_03 + + testcase TC_CSE_SEC_ACP_BO_013_04() runs on CseTester system CseSystem { //Delete + f_CSE_SEC_ACP_BO_013(m_deleteRequest("Temporary")); + }//end TC_CSE_SEC_ACP_BO_013_04 + + function f_CSE_SEC_ACP_BO_013(template RequestPrimitive p_requestPrimitive) runs on CseTester { + // Local variables + var MsgIn v_response; + var integer v_aeIndex := -1; + var integer v_acpIndex := -1; + var RequestPrimitive v_createRequest := valueof(m_createAcpBase); + var RequestPrimitive v_updateRequest; + var AccessControlRule v_accessControlRule_1; + var SetOfAcrs v_setOfArcs; + + // Test control + + // Test component configuration + f_cf01Up(); + + // Test adapter configuration + + // Preamble + v_acpIndex := f_cse_createResource(int1, v_createRequest); // CSE child resource + vc_resourcesIndexToBeDeleted := vc_resourcesIndexToBeDeleted & {v_acpIndex}; + v_aeIndex := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[v_acpIndex].resource)}, -); + + v_accessControlRule_1 := valueof(m_createAcr({ f_getOriginator(v_aeIndex), PX_SUPER_USER}, int63)); + v_setOfArcs.accessControlRule_list := {v_accessControlRule_1}; + v_updateRequest := m_updateAcpPrivileges(v_setOfArcs, v_setOfArcs); + v_updateRequest := f_getUpdateRequestPrimitive(int1, v_acpIndex, v_updateRequest); + f_update_attribute_request(v_updateRequest); + + // Test Body + p_requestPrimitive.to_ := f_getResourceAddress(v_aeIndex); + p_requestPrimitive.from_ := "UnknowOriginator"; + + mcaPort.send(m_request(valueof(p_requestPrimitive))); + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int4103))) -> value v_response { + tc_ac.stop; + setverdict(pass, testcasename() & ": Operation denied because of lack of right on Container"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { + tc_ac.stop; + setverdict(fail, testcasename() & ": Error operation have been accpeted without having privileges"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { + tc_ac.stop; + setverdict(fail, testcasename() & ": Error while operation on resource type int3 (Container)"); + } + [] mcaPort.receive{ + tc_ac.stop; + setverdict(fail, testcasename() & ": Error, unexpected message received"); + } + [] tc_ac.timeout { + setverdict(inconc, testcasename() & ": No answer while executing operation on resource type int3 (Container)"); + } + } + + //Postamble + f_cse_postamble_deleteResources(); + + //Tear down + f_cf01Down(); + + } //end f_CSE_SEC_ACP_BO_013 + + } //end g_CSE_SEC_ACP_BO_013 + + group g_CSE_SEC_ACP_BV_014{ + + testcase TC_CSE_SEC_ACP_BV_014_01() runs on CseTester system CseSystem { //Create + f_CSE_SEC_ACP_BV_014(m_createContainerBase); + }//end TC_CSE_SEC_ACP_BV_014_01 + + testcase TC_CSE_SEC_ACP_BV_014_02() runs on CseTester system CseSystem { //Update + var template RequestPrimitive v_updateRequest := m_updateAeBase; + var Labels v_labels_1:= {"VALUE_1"}; + v_updateRequest.primitiveContent.any_1[0].AE_optional.labels := v_labels_1; + f_CSE_SEC_ACP_BV_014(v_updateRequest); + }//end TC_CSE_SEC_ACP_BV_014_02 + + testcase TC_CSE_SEC_ACP_BV_014_03() runs on CseTester system CseSystem { //Retrieve + f_CSE_SEC_ACP_BV_014(m_retrieveResource("Temporary", "Temporary")); + }//end TC_CSE_SEC_ACP_BV_014_03 + + testcase TC_CSE_SEC_ACP_BV_014_04() runs on CseTester system CseSystem { //Delete + f_CSE_SEC_ACP_BV_014(m_deleteRequest("Temporary")); + }//end TC_CSE_SEC_ACP_BV_014_04 + + function f_CSE_SEC_ACP_BV_014(template RequestPrimitive p_requestPrimitive) runs on CseTester { + // Local variables + var MsgIn v_response; + var integer v_aeIndex := -1; + var integer v_acpIndex1 := -1; + var integer v_acpIndex2 := -1; + var RequestPrimitive v_createRequest := valueof(m_createAcp(f_getResourceAddress(-1), omit)); + var RequestPrimitive v_updateRequest; + var AccessControlRule v_accessControlRule_1; + var SetOfAcrs v_setOfArcs; + + // Test control + + // Test component configuration + f_cf01Up(); + + // Test adapter configuration + + // Preamble + v_acpIndex1 := f_cse_createResource(int1, v_createRequest); // CSE child resource + vc_resourcesIndexToBeDeleted := vc_resourcesIndexToBeDeleted & {v_acpIndex1}; + v_acpIndex2 := f_cse_createResource(int1, v_createRequest); // CSE child resource + vc_resourcesIndexToBeDeleted := vc_resourcesIndexToBeDeleted & {v_acpIndex2}; + + v_aeIndex := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[v_acpIndex1].resource), f_getResourceId(vc_resourcesList[v_acpIndex2].resource)}, -); + + v_accessControlRule_1 := valueof(m_createAcr({f_getOriginator(v_aeIndex)}, int3)); // c_CR + v_setOfArcs.accessControlRule_list := {v_accessControlRule_1}; + v_updateRequest := m_updateAcpPrivileges(v_setOfArcs, -); + v_updateRequest := f_getUpdateRequestPrimitive(int1, v_acpIndex1, v_updateRequest); + f_update_attribute_request(v_updateRequest); + + v_accessControlRule_1 := valueof(m_createAcr({f_getOriginator(v_aeIndex)}, int60)); // c_UDNDi + v_setOfArcs.accessControlRule_list := {v_accessControlRule_1}; + v_updateRequest := m_updateAcpPrivileges(v_setOfArcs, -); + v_updateRequest := f_getUpdateRequestPrimitive(int1, v_acpIndex2, v_updateRequest); + f_update_attribute_request(v_updateRequest); + + // Test Body + p_requestPrimitive.to_ := f_getResourceAddress(v_aeIndex); + p_requestPrimitive.from_ := f_getOriginator(v_aeIndex); + + mcaPort.send(m_request(valueof(p_requestPrimitive))); + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { + tc_ac.stop; + setverdict(pass, testcasename() & ": Successful operation on resource type int2 (Ae)"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { + tc_ac.stop; + setverdict(fail, testcasename() & ": Error while operation on resource type int2 (Ae)"); + } + [] mcaPort.receive{ + tc_ac.stop; + setverdict(fail, testcasename() & ": Error, unexpected message received"); + } + [] tc_ac.timeout { + setverdict(inconc, testcasename() & ": No answer while executing operation on resource type int2 (Ae)"); + } + } + + //Postamble + f_cse_postamble_deleteResources(); + + //Tear down + f_cf01Down(); + + } //end f_CSE_SEC_ACP_BV_014 + + } //end g_CSE_SEC_ACP_BV_014 + + group g_CSE_SEC_ACP_BV_015{ + + testcase TC_CSE_SEC_ACP_BV_015() runs on CseTester system CseSystem { + // Local variables + var MsgIn v_response; + var integer v_aeIndex := -1; + var integer v_acpIndex1 := -1; + var integer v_acpIndex2 := -1; + var RequestPrimitive v_createRequest := valueof(m_createAcp(f_getResourceAddress(-1), omit)); + var RequestPrimitive v_updateRequest := m_updateAeBase; + var AccessControlRule v_accessControlRule_1; + var AccessControlRule v_accessControlRule_2; + var SetOfAcrs v_setOfArcs_1; + var SetOfAcrs v_setOfArcs_2; + + // Test control + + // Test component configuration + f_cf01Up(); + + // Test adapter configuration + + // Preamble + v_acpIndex1 := f_cse_createResource(int1, v_createRequest); // CSE child resource + vc_resourcesIndexToBeDeleted := vc_resourcesIndexToBeDeleted & {v_acpIndex1}; + + v_acpIndex2 := f_cse_createResource(int1, v_createRequest); // CSE child resource + vc_resourcesIndexToBeDeleted := vc_resourcesIndexToBeDeleted & {v_acpIndex2}; + + v_aeIndex := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[v_acpIndex1].resource)}, -); + + v_accessControlRule_1 := valueof(m_createAcr({f_getOriginator(v_aeIndex)}, int59)); // c_CRUDNDi + v_accessControlRule_2 := valueof(m_createAcr({PX_SUPER_USER, f_getOriginator(v_aeIndex)}, int63)); // c_CRDNDi + v_setOfArcs_1.accessControlRule_list := {v_accessControlRule_1}; + v_setOfArcs_2.accessControlRule_list := {v_accessControlRule_2}; + v_updateRequest := m_updateAcpPrivileges(v_setOfArcs_1, v_setOfArcs_2); + v_updateRequest := f_getUpdateRequestPrimitive(int1, v_acpIndex1, v_updateRequest); + f_update_attribute_request(v_updateRequest); + + // Test Body + v_updateRequest.primitiveContent.any_1[0].AE_optional.accessControlPolicyIDs := {f_getResourceId(vc_resourcesList[v_acpIndex2].resource)}; + v_updateRequest := f_getUpdateRequestPrimitive(int1, v_aeIndex, v_updateRequest); + + mcaPort.send(m_request(v_updateRequest)); + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { + tc_ac.stop; + setverdict(pass, testcasename() & ": Successful Update operation on resource type int2 (Ae)"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { + tc_ac.stop; + setverdict(fail, testcasename() & ": Error while Update operation on resource type int2 (Ae)"); + } + [] mcaPort.receive{ + tc_ac.stop; + setverdict(fail, testcasename() & ": Error, unexpected message received"); + } + [] tc_ac.timeout { + setverdict(inconc, testcasename() & ": No answer while executing update operation on resource type int2 (Ae)"); + } + } + + //Postamble + f_cse_postamble_deleteResources(); + + //Tear down + f_cf01Down(); + + }//end TC_CSE_SEC_ACP_BV_015 + + } //end g_CSE_SEC_ACP_BV_015 + + group g_CSE_SEC_ACP_BV_016{ + + testcase TC_CSE_SEC_ACP_BV_016() runs on CseTester system CseSystem { + // Local variables + var MsgIn v_response; + var integer v_aeIndex := -1; + var integer v_acpIndex1 := -1; + var integer v_acpIndex2 := -1; + var RequestPrimitive v_createRequest := valueof(m_createAcp(f_getResourceAddress(-1), omit)); + var RequestPrimitive v_updateRequest := m_updateAeBase; + var AccessControlRule v_accessControlRule_1; + var AccessControlRule v_accessControlRule_2; + var SetOfAcrs v_setOfArcs_1; + var SetOfAcrs v_setOfArcs_2; + + // Test control + + // Test component configuration + f_cf01Up(); + + // Test adapter configuration + + // Preamble + v_acpIndex1 := f_cse_createResource(int1, v_createRequest); // CSE child resource + vc_resourcesIndexToBeDeleted := vc_resourcesIndexToBeDeleted & {v_acpIndex1}; + + v_acpIndex2 := f_cse_createResource(int1, v_createRequest); // CSE child resource + vc_resourcesIndexToBeDeleted := vc_resourcesIndexToBeDeleted & {v_acpIndex2}; + + v_aeIndex := f_cse_preamble_registerAe({f_getResourceId(vc_resourcesList[v_acpIndex1].resource)}, -); + + v_accessControlRule_1 := valueof(m_createAcr({f_getOriginator(v_aeIndex)}, int63)); // c_CRDNDi + v_accessControlRule_2 := valueof(m_createAcr({PX_SUPER_USER, f_getOriginator(v_aeIndex)}, int59)); // c_CRUDNDi + v_setOfArcs_1.accessControlRule_list := {v_accessControlRule_1}; + v_setOfArcs_2.accessControlRule_list := {v_accessControlRule_2}; + v_updateRequest := m_updateAcpPrivileges(v_setOfArcs_1, v_setOfArcs_2); + v_updateRequest := f_getUpdateRequestPrimitive(int1, v_acpIndex1, v_updateRequest); + f_update_attribute_request(v_updateRequest); + + // Test Body + v_updateRequest.primitiveContent.any_1[0].AE_optional.accessControlPolicyIDs := {f_getResourceId(vc_resourcesList[v_acpIndex2].resource)}; + v_updateRequest := f_getUpdateRequestPrimitive(int1, v_aeIndex, v_updateRequest); + + mcaPort.send(m_request(v_updateRequest)); + tc_ac.start; + alt { + [] mcaPort.receive(mw_response(mw_responsePrimitive(int4103))) -> value v_response { + tc_ac.stop; + setverdict(pass, testcasename() & ": Operation denied because of lack of right on Container"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveOK)) -> value v_response { + tc_ac.stop; + setverdict(fail, testcasename() & ": Error operation have been accpeted without having privileges"); + } + [] mcaPort.receive(mw_response(mw_responsePrimitiveKO)) -> value v_response { + tc_ac.stop; + setverdict(fail, testcasename() & ": Error while operation on resource type int3 (Container)"); + } + [] mcaPort.receive{ + tc_ac.stop; + setverdict(fail, testcasename() & ": Error, unexpected message received"); + } + [] tc_ac.timeout { + setverdict(inconc, testcasename() & ": No answer while executing operation on resource type int3 (Container)"); + } + } + + //Postamble + f_cse_postamble_deleteResources(); + + //Tear down + f_cf01Down(); + + }//end TC_CSE_SEC_ACP_BV_016 + + } //end g_CSE_SEC_ACP_BV_016 + + }//end group AccessControlPolicy + + }//end group Security + }//end group CSE