RANGER-3325: Roles information not present in the Excel and CSV files which are downloaded from Reports page
diff --git a/security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java b/security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java
index 50ab32f..a888d91 100644
--- a/security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java
+++ b/security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java
@@ -4044,7 +4044,7 @@
response.setContentType("text/csv");
final String LINE_SEPARATOR = "\n";
- final String FILE_HEADER = "ID|Name|Resources|Groups|Users|Accesses|Service Type|Status|Policy Type|Delegate Admin|isRecursive|"
+ final String FILE_HEADER = "ID|Name|Resources|Roles|Groups|Users|Accesses|Service Type|Status|Policy Type|Delegate Admin|isRecursive|"
+ "isExcludes|Service Name|Description|isAuditEnabled|Policy Conditions|Policy Condition Type|Masking Options|Row Filter Expr|Policy Label Name";
StringBuilder csvBuffer = new StringBuilder();
csvBuffer.append(FILE_HEADER);
@@ -4139,8 +4139,10 @@
}
final String COMMA_DELIMITER = "|";
final String LINE_SEPARATOR = "\n";
+ List<String> roles = new ArrayList<String>();
List<String> groups = new ArrayList<String>();
List<String> users = new ArrayList<String>();
+ String roleNames = "";
String groupNames = "";
String userNames = "";
String policyLabelName = "";
@@ -4205,6 +4207,7 @@
resourceKeyVal = resourceKeyVal.substring(1);
if (policyItem != null && dataMaskPolicyItem == null
&& rowFilterPolicyItem == null) {
+ roles = policyItem.getRoles();
groups = policyItem.getGroups();
users = policyItem.getUsers();
accesses = policyItem.getAccesses();
@@ -4212,6 +4215,7 @@
conditionsList = policyItem.getConditions();
} else if (dataMaskPolicyItem != null && policyItem == null
&& rowFilterPolicyItem == null) {
+ roles = dataMaskPolicyItem.getRoles();
groups = dataMaskPolicyItem.getGroups();
users = dataMaskPolicyItem.getUsers();
accesses = dataMaskPolicyItem.getAccesses();
@@ -4229,6 +4233,7 @@
}
} else if (rowFilterPolicyItem != null && policyItem == null
&& dataMaskPolicyItem == null) {
+ roles = rowFilterPolicyItem.getRoles();
groups = rowFilterPolicyItem.getGroups();
users = rowFilterPolicyItem.getUsers();
accesses = rowFilterPolicyItem.getAccesses();
@@ -4246,6 +4251,14 @@
accessType = accessType.substring(0,
accessType.lastIndexOf("#"));
}
+ if (CollectionUtils.isNotEmpty(roles)) {
+ for (String role : roles) {
+ role = role.replace("|", "");
+ role = role.replace("#", "");
+ roleNames = roleNames + role + "#";
+ }
+ roleNames = roleNames.substring(0, roleNames.lastIndexOf("#"));
+ }
if (CollectionUtils.isNotEmpty(groups)) {
for (String group : groups) {
group = group.replace("|", "");
@@ -4322,6 +4335,8 @@
csvBuffer.append(COMMA_DELIMITER);
csvBuffer.append(resourceKeyVal);
csvBuffer.append(COMMA_DELIMITER);
+ csvBuffer.append(roleNames);
+ csvBuffer.append(COMMA_DELIMITER);
csvBuffer.append(groupNames);
csvBuffer.append(COMMA_DELIMITER);
csvBuffer.append(userNames);
@@ -4470,6 +4485,8 @@
}
List<String> groups = new ArrayList<String>();
List<String> users = new ArrayList<String>();
+ List<String> roles = new ArrayList<String>();
+ String roleNames = "";
String groupNames = "";
String policyConditionTypeValue = "";
String userNames = "";
@@ -4525,12 +4542,14 @@
resourceKeyVal = resourceKeyVal.substring(1);
cell.setCellValue(resourceKeyVal);
if (policyItem != null && dataMaskPolicyItem == null && rowFilterPolicyItem == null) {
+ roles = policyItem.getRoles();
groups = policyItem.getGroups();
users = policyItem.getUsers();
accesses = policyItem.getAccesses();
delegateAdmin = policyItem.getDelegateAdmin();
conditionsList = policyItem.getConditions();
} else if (dataMaskPolicyItem != null && policyItem == null && rowFilterPolicyItem == null) {
+ roles = dataMaskPolicyItem.getRoles();
groups = dataMaskPolicyItem.getGroups();
users = dataMaskPolicyItem.getUsers();
accesses = dataMaskPolicyItem.getAccesses();
@@ -4544,9 +4563,10 @@
if (conditionExpr != null && !conditionExpr.isEmpty() && valueExpr != null && !valueExpr.isEmpty()) {
maskingInfo = maskingInfo + "; conditionExpr=[" + conditionExpr + "]";
}
- cell = row.createCell(17);
+ cell = row.createCell(18);
cell.setCellValue(maskingInfo);
} else if (rowFilterPolicyItem != null && policyItem == null && dataMaskPolicyItem == null) {
+ roles = rowFilterPolicyItem.getRoles();
groups = rowFilterPolicyItem.getGroups();
users = rowFilterPolicyItem.getUsers();
accesses = rowFilterPolicyItem.getAccesses();
@@ -4554,7 +4574,7 @@
conditionsList = rowFilterPolicyItem.getConditions();
filterInfo = rowFilterPolicyItem.getRowFilterInfo();
String filterExpr = filterInfo.getFilterExpr();
- cell = row.createCell(18);
+ cell = row.createCell(19);
cell.setCellValue(filterExpr);
}
if (CollectionUtils.isNotEmpty(accesses)) {
@@ -4564,6 +4584,13 @@
}
accessType = accessType.substring(0, accessType.lastIndexOf(","));
}
+ if (CollectionUtils.isNotEmpty(roles)) {
+ roleNames = roleNames + roles.toString();
+ StringTokenizer roleToken = new StringTokenizer(roleNames, "[]");
+ while(roleToken.hasMoreTokens()) {
+ roleNames = roleToken.nextToken().toString();
+ }
+ }
if (CollectionUtils.isNotEmpty(groups)) {
groupNames = groupNames + groups.toString();
StringTokenizer groupToken = new StringTokenizer(groupNames, "[]");
@@ -4586,12 +4613,14 @@
conditionKeyValue = conditionType + "=" + conditionValue;
}
cell = row.createCell(3);
- cell.setCellValue(groupNames);
+ cell.setCellValue(roleNames);
cell = row.createCell(4);
- cell.setCellValue(userNames);
+ cell.setCellValue(groupNames);
cell = row.createCell(5);
- cell.setCellValue(accessType.trim());
+ cell.setCellValue(userNames);
cell = row.createCell(6);
+ cell.setCellValue(accessType.trim());
+ cell = row.createCell(7);
XXService xxservice = daoMgr.getXXService().findByName(policy.getService());
String ServiceType = "";
if (xxservice != null) {
@@ -4611,7 +4640,7 @@
}
cell.setCellValue(ServiceType);
- cell = row.createCell(7);
+ cell = row.createCell(8);
}
if (policy.getIsEnabled()) {
@@ -4628,7 +4657,7 @@
}
}
cell.setCellValue(policyStatus);
- cell = row.createCell(8);
+ cell = row.createCell(9);
int policyTypeInt = policy.getPolicyType();
switch (policyTypeInt) {
case RangerPolicy.POLICY_TYPE_ACCESS:
@@ -4644,25 +4673,25 @@
break;
}
cell.setCellValue(policyType);
- cell = row.createCell(9);
- cell.setCellValue(delegateAdmin.toString().toUpperCase());
cell = row.createCell(10);
- cell.setCellValue(isRecursiveValue);
+ cell.setCellValue(delegateAdmin.toString().toUpperCase());
cell = row.createCell(11);
- cell.setCellValue(isExcludesValue);
+ cell.setCellValue(isRecursiveValue);
cell = row.createCell(12);
+ cell.setCellValue(isExcludesValue);
+ cell = row.createCell(13);
serviceName = policy.getService();
cell.setCellValue(serviceName);
- cell = row.createCell(13);
+ cell = row.createCell(14);
description = policy.getDescription();
cell.setCellValue(description);
- cell = row.createCell(14);
- cell.setCellValue(isAuditEnabled.toString().toUpperCase());
cell = row.createCell(15);
- cell.setCellValue(conditionKeyValue.trim());
+ cell.setCellValue(isAuditEnabled.toString().toUpperCase());
cell = row.createCell(16);
+ cell.setCellValue(conditionKeyValue.trim());
+ cell = row.createCell(17);
cell.setCellValue(policyConditionTypeValue);
- cell = row.createCell(19);
+ cell = row.createCell(20);
cell.setCellValue(policyLabelNames);
}
@@ -4687,71 +4716,75 @@
cellResources.setCellStyle(cellStyle);
cellResources.setCellValue("Resources");
- Cell cellGroups = row.createCell(3);
+ Cell cellRoles = row.createCell(3);
+ cellRoles.setCellStyle(cellStyle);
+ cellRoles.setCellValue("Roles");
+
+ Cell cellGroups = row.createCell(4);
cellGroups.setCellStyle(cellStyle);
cellGroups.setCellValue("Groups");
- Cell cellUsers = row.createCell(4);
+ Cell cellUsers = row.createCell(5);
cellUsers.setCellStyle(cellStyle);
cellUsers.setCellValue("Users");
- Cell cellAccesses = row.createCell(5);
+ Cell cellAccesses = row.createCell(6);
cellAccesses.setCellStyle(cellStyle);
cellAccesses.setCellValue("Accesses");
- Cell cellServiceType = row.createCell(6);
+ Cell cellServiceType = row.createCell(7);
cellServiceType.setCellStyle(cellStyle);
cellServiceType.setCellValue("Service Type");
- Cell cellStatus = row.createCell(7);
+ Cell cellStatus = row.createCell(8);
cellStatus.setCellStyle(cellStyle);
cellStatus.setCellValue("Status");
- Cell cellPolicyType = row.createCell(8);
+ Cell cellPolicyType = row.createCell(9);
cellPolicyType.setCellStyle(cellStyle);
cellPolicyType.setCellValue("Policy Type");
- Cell cellDelegateAdmin = row.createCell(9);
+ Cell cellDelegateAdmin = row.createCell(10);
cellDelegateAdmin.setCellStyle(cellStyle);
cellDelegateAdmin.setCellValue("Delegate Admin");
- Cell cellIsRecursive = row.createCell(10);
+ Cell cellIsRecursive = row.createCell(11);
cellIsRecursive.setCellStyle(cellStyle);
cellIsRecursive.setCellValue("isRecursive");
- Cell cellIsExcludes = row.createCell(11);
+ Cell cellIsExcludes = row.createCell(12);
cellIsExcludes.setCellStyle(cellStyle);
cellIsExcludes.setCellValue("isExcludes");
- Cell cellServiceName = row.createCell(12);
+ Cell cellServiceName = row.createCell(13);
cellServiceName.setCellStyle(cellStyle);
cellServiceName.setCellValue("Service Name");
- Cell cellDescription = row.createCell(13);
+ Cell cellDescription = row.createCell(14);
cellDescription.setCellStyle(cellStyle);
cellDescription.setCellValue("Description");
- Cell cellisAuditEnabled = row.createCell(14);
+ Cell cellisAuditEnabled = row.createCell(15);
cellisAuditEnabled.setCellStyle(cellStyle);
cellisAuditEnabled.setCellValue("isAuditEnabled");
- Cell cellPolicyConditions = row.createCell(15);
+ Cell cellPolicyConditions = row.createCell(16);
cellPolicyConditions.setCellStyle(cellStyle);
cellPolicyConditions.setCellValue("Policy Conditions");
- Cell cellPolicyConditionType = row.createCell(16);
+ Cell cellPolicyConditionType = row.createCell(17);
cellPolicyConditionType.setCellStyle(cellStyle);
cellPolicyConditionType.setCellValue("Policy Condition Type");
- Cell cellMaskingOptions = row.createCell(17);
+ Cell cellMaskingOptions = row.createCell(18);
cellMaskingOptions.setCellStyle(cellStyle);
cellMaskingOptions.setCellValue("Masking Options");
- Cell cellRowFilterExpr = row.createCell(18);
+ Cell cellRowFilterExpr = row.createCell(19);
cellRowFilterExpr.setCellStyle(cellStyle);
cellRowFilterExpr.setCellValue("Row Filter Expr");
- Cell cellPolicyLabelName = row.createCell(19);
+ Cell cellPolicyLabelName = row.createCell(20);
cellPolicyLabelName.setCellStyle(cellStyle);
cellPolicyLabelName.setCellValue("Policy Labels Name");
}