Skip to content

Commit cb65abc

Browse files
committed
RANGER-4274: updated security-zones to support admin-roles and audit-roles: fix unit test failures - #2
1 parent 04cb1dc commit cb65abc

File tree

3 files changed

+43
-15
lines changed

3 files changed

+43
-15
lines changed

agents-common/src/main/java/org/apache/ranger/plugin/model/RangerSecurityZone.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ public RangerSecurityZone() {
5555
}
5656

5757
public RangerSecurityZone(String name, Map<String, RangerSecurityZoneService> services,List<String> tagServices, List<String> adminUsers, List<String> adminUserGroups, List<String> auditUsers, List<String> auditUserGroups, String description) {
58-
this(name, services, tagServices, adminUsers, adminUserGroups, null, adminUsers, adminUserGroups, null, description);
58+
this(name, services, tagServices, adminUsers, adminUserGroups, null, auditUsers, auditUserGroups, null, description);
5959
}
6060

6161
public RangerSecurityZone(String name, Map<String, RangerSecurityZoneService> services,List<String> tagServices, List<String> adminUsers, List<String> adminUserGroups, List<String> adminRoles, List<String> auditUsers, List<String> auditUserGroups, List<String> auditRoles, String description) {

agents-common/src/test/java/org/apache/ranger/plugin/model/validation/RangerSecurityZoneValidatorTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ public void testValidateSecurityZoneWitoutServicesAdminUserAdminUserGroupAuditUs
163163
} catch (Exception ex) {
164164
Assert.assertEquals(
165165
ex.getMessage(),
166-
"(0) Validation failure: error code[3044], reason[No services specified for security-zone:[MyZone]], field[services], subfield[null], type[missing] (1) Validation failure: error code[3038], reason[both users and user-groups collections for the security zone were null/empty], field[security zone admin users/user-groups], subfield[null], type[missing] (2) Validation failure: error code[3038], reason[both users and user-groups collections for the security zone were null/empty], field[security zone audit users/user-groups], subfield[null], type[missing] ");
166+
"(0) Validation failure: error code[3044], reason[No services specified for security-zone:[MyZone]], field[services], subfield[null], type[missing] (1) Validation failure: error code[3038], reason[users, user-groups and roles collections for the security zone were null/empty], field[security zone admin users/user-groups/roles], subfield[null], type[missing] (2) Validation failure: error code[3038], reason[users, user-groups and roles collections for the security zone were null/empty], field[security zone audit users/user-groups/roles], subfield[null], type[missing] ");
167167
}
168168
}
169169

security-admin/src/test/java/org/apache/ranger/biz/TestRoleDBStore.java

Lines changed: 41 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
import org.apache.ranger.db.XXPolicyRefRoleDao;
3636
import org.apache.ranger.db.XXRoleDao;
3737
import org.apache.ranger.db.XXRoleRefRoleDao;
38+
import org.apache.ranger.db.XXSecurityZoneRefRoleDao;
3839
import org.apache.ranger.db.XXServiceDefDao;
3940
import org.apache.ranger.entity.XXPortalUser;
4041
import org.apache.ranger.entity.XXRole;
@@ -356,19 +357,22 @@ public void testDeleteRoleByInValidRoleName() throws Exception {
356357

357358
@Test
358359
public void testDeleteRoleByValidRoleName() throws Exception {
359-
XXRoleDao xxRoleDao = Mockito.mock(XXRoleDao.class);
360-
XXPolicyRefRoleDao xxPolicyRefRoleDao = Mockito.mock(XXPolicyRefRoleDao.class);
361-
XXRoleRefRoleDao xxRoleRefRoleDao = Mockito.mock(XXRoleRefRoleDao.class);
362-
XXTrxLog xTrxLog = new XXTrxLog() {{ setAction("delete"); }};
363-
List<XXTrxLog> trxLogList = Collections.singletonList(xTrxLog);
364-
XXRole xxRole = getTestRole();
365-
RangerRole rangerRole = getRangerRole();
360+
XXRoleDao xxRoleDao = Mockito.mock(XXRoleDao.class);
361+
XXPolicyRefRoleDao xxPolicyRefRoleDao = Mockito.mock(XXPolicyRefRoleDao.class);
362+
XXRoleRefRoleDao xxRoleRefRoleDao = Mockito.mock(XXRoleRefRoleDao.class);
363+
XXSecurityZoneRefRoleDao xxSzRefRoleDao = Mockito.mock(XXSecurityZoneRefRoleDao.class);
364+
XXTrxLog xTrxLog = new XXTrxLog() {{ setAction("delete"); }};
365+
List<XXTrxLog> trxLogList = Collections.singletonList(xTrxLog);
366+
XXRole xxRole = getTestRole();
367+
RangerRole rangerRole = getRangerRole();
366368

367369
Mockito.when(daoMgr.getXXRole()).thenReturn(xxRoleDao);
368370
Mockito.when(daoMgr.getXXPolicyRefRole()).thenReturn(xxPolicyRefRoleDao);
371+
Mockito.when(daoMgr.getXXSecurityZoneRefRole()).thenReturn(xxSzRefRoleDao);
369372
Mockito.when(xxPolicyRefRoleDao.findRoleRefPolicyCount(roleName)).thenReturn(0L);
370373
Mockito.when(daoMgr.getXXRoleRefRole()).thenReturn(xxRoleRefRoleDao);
371374
Mockito.when(xxRoleRefRoleDao.findRoleRefRoleCount(roleName)).thenReturn(0L);
375+
Mockito.when(xxSzRefRoleDao.findRoleRefZoneCount(roleName)).thenReturn(0L);
372376
Mockito.when(roleService.read(xxRole.getId())).thenReturn(rangerRole);
373377
Mockito.when(xxRoleDao.findByRoleName(roleName)).thenReturn(xxRole);
374378
Mockito.doNothing().when(transactionSynchronizationAdapter).executeOnTransactionCommit(Mockito.any());
@@ -450,16 +454,19 @@ public void testUpdateRole() throws Exception {
450454

451455
@Test
452456
public void testDeleteRoleByRoleId() throws Exception {
453-
RangerRole rangerRole = getRangerRole();
454-
XXPolicyRefRoleDao xxPolicyRefRoleDao = Mockito.mock(XXPolicyRefRoleDao.class);
455-
XXRoleRefRoleDao xxRoleRefRoleDao = Mockito.mock(XXRoleRefRoleDao.class);
456-
XXTrxLog xTrxLog = new XXTrxLog() {{ setAction("delete"); }};
457-
List<XXTrxLog> trxLogList = Collections.singletonList(xTrxLog);
458-
XXRole xxRole = getTestRole();
457+
RangerRole rangerRole = getRangerRole();
458+
XXPolicyRefRoleDao xxPolicyRefRoleDao = Mockito.mock(XXPolicyRefRoleDao.class);
459+
XXRoleRefRoleDao xxRoleRefRoleDao = Mockito.mock(XXRoleRefRoleDao.class);
460+
XXSecurityZoneRefRoleDao xxSzRefRoleDao = Mockito.mock(XXSecurityZoneRefRoleDao.class);
461+
XXTrxLog xTrxLog = new XXTrxLog() {{ setAction("delete"); }};
462+
List<XXTrxLog> trxLogList = Collections.singletonList(xTrxLog);
463+
XXRole xxRole = getTestRole();
459464

460465
Mockito.when(roleService.read(roleId)).thenReturn(rangerRole);
461466
Mockito.when(daoMgr.getXXPolicyRefRole()).thenReturn(xxPolicyRefRoleDao);
467+
Mockito.when(daoMgr.getXXSecurityZoneRefRole()).thenReturn(xxSzRefRoleDao);
462468
Mockito.when(xxPolicyRefRoleDao.findRoleRefPolicyCount(rangerRole.getName())).thenReturn(0L);
469+
Mockito.when(xxSzRefRoleDao.findRoleRefZoneCount(rangerRole.getName())).thenReturn(0L);
463470
Mockito.when(daoMgr.getXXRoleRefRole()).thenReturn(xxRoleRefRoleDao);
464471
Mockito.when(xxRoleRefRoleDao.findRoleRefRoleCount(rangerRole.getName())).thenReturn(0L);
465472
Mockito.when(roleService.read(xxRole.getId())).thenReturn(rangerRole);
@@ -506,6 +513,27 @@ public void testDeleteRoleByValidRoleNameWhenRoleIsAssociatedWithOneOrMoreRoles(
506513
roleDBStore.deleteRole(roleName);
507514
}
508515

516+
@Test
517+
public void testDeleteRoleByValidRoleNameWhenRoleIsAssociatedWithOneOrMoreSecurityZones() throws Exception {
518+
XXRole xxRole = getTestRole();
519+
XXRoleDao xxRoleDao = Mockito.mock(XXRoleDao.class);
520+
XXPolicyRefRoleDao xxPolicyRefRoleDao = Mockito.mock(XXPolicyRefRoleDao.class);
521+
XXRoleRefRoleDao xxRoleRefRoleDao = Mockito.mock(XXRoleRefRoleDao.class);
522+
XXSecurityZoneRefRoleDao xxSzRefRoleDao = Mockito.mock(XXSecurityZoneRefRoleDao.class);
523+
524+
Mockito.when(daoMgr.getXXRole()).thenReturn(xxRoleDao);
525+
Mockito.when(xxRoleDao.findByRoleName(roleName)).thenReturn(xxRole);
526+
Mockito.when(daoMgr.getXXPolicyRefRole()).thenReturn(xxPolicyRefRoleDao);
527+
Mockito.when(xxPolicyRefRoleDao.findRoleRefPolicyCount(roleName)).thenReturn(0L);
528+
Mockito.when(daoMgr.getXXRoleRefRole()).thenReturn(xxRoleRefRoleDao);
529+
Mockito.when(xxRoleRefRoleDao.findRoleRefRoleCount(roleName)).thenReturn(0L);
530+
Mockito.when(daoMgr.getXXSecurityZoneRefRole()).thenReturn(xxSzRefRoleDao);
531+
Mockito.when(xxSzRefRoleDao.findRoleRefZoneCount(roleName)).thenReturn(1L);
532+
thrown.expect(Exception.class);
533+
534+
roleDBStore.deleteRole(roleName);
535+
}
536+
509537
private XXRole getTestRole() {
510538
return new XXRole() {{
511539
setId(TestRoleDBStore.roleId);

0 commit comments

Comments
 (0)