You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by me...@apache.org on 2020/10/27 09:23:03 UTC

[ranger] 02/03: RANGER-3057: Support Audit search based on Audit ID

This is an automated email from the ASF dual-hosted git repository.

mehul pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ranger.git

commit e394f970864636a66e984e3efc56e2c1a6e1d547
Author: Kishor Gollapalliwar <ki...@gmail.com>
AuthorDate: Fri Oct 23 20:27:22 2020 +0530

    RANGER-3057: Support Audit search based on Audit ID
    
    Signed-off-by: Mehul Parikh <me...@apache.org>
---
 .../main/java/org/apache/ranger/rest/AssetREST.java  | 20 ++++++++++----------
 .../apache/ranger/solr/SolrAccessAuditsService.java  |  6 ++++++
 .../main/webapp/scripts/views/reports/AuditLayout.js |  3 ++-
 .../java/org/apache/ranger/rest/TestAssetREST.java   |  4 ++--
 4 files changed, 20 insertions(+), 13 deletions(-)

diff --git a/security-admin/src/main/java/org/apache/ranger/rest/AssetREST.java b/security-admin/src/main/java/org/apache/ranger/rest/AssetREST.java
index fd6e738..51d000e 100644
--- a/security-admin/src/main/java/org/apache/ranger/rest/AssetREST.java
+++ b/security-admin/src/main/java/org/apache/ranger/rest/AssetREST.java
@@ -641,24 +641,24 @@ public class AssetREST {
 				"Resource Type", StringUtil.VALIDATION_TEXT);
 		searchUtil.extractString(request,searchCriteria,"excludeServiceUser",
 				"Exclude Service User",StringUtil.VALIDATION_TEXT);
+
 		searchUtil.extractInt(request, searchCriteria, "auditType", "Audit Type");
-                searchUtil.extractInt(request, searchCriteria, "accessResult", "Result");
+		searchUtil.extractInt(request, searchCriteria, "accessResult", "Result");
 		searchUtil.extractInt(request, searchCriteria, "assetId", "Asset ID");
 		searchUtil.extractLong(request, searchCriteria, "policyId", "Policy ID");
-                searchUtil.extractInt(request, searchCriteria, "repoType", "Service Type");
-		
-		searchUtil.extractDate(request, searchCriteria, "startDate",
-                                "Start Date", "MM/dd/yyyy");
-                searchUtil.extractDate(request, searchCriteria, "endDate", "End Date",
-				"MM/dd/yyyy");
+		searchUtil.extractInt(request, searchCriteria, "repoType", "Service Type");
+
+		searchUtil.extractDate(request, searchCriteria, "startDate","Start Date", "MM/dd/yyyy");
+		searchUtil.extractDate(request, searchCriteria, "endDate", "End Date", "MM/dd/yyyy");
 
 		searchUtil.extractString(request, searchCriteria, "tags", "tags", null);
 		searchUtil.extractString(request, searchCriteria, "cluster", "Cluster Name", StringUtil.VALIDATION_TEXT);
-		searchUtil.extractStringList(request, searchCriteria, "zoneName", "Zone Name List", "zoneName", null,
-				                               null);
+		searchUtil.extractStringList(request, searchCriteria, "zoneName", "Zone Name List", "zoneName", null, null);
 
 		searchUtil.extractString(request, searchCriteria, "agentHost", "Agent Host Name", StringUtil.VALIDATION_TEXT);
-		
+
+		searchUtil.extractString(request, searchCriteria, "eventId", "Event Id", null);
+
 		boolean isKeyAdmin = msBizUtil.isKeyAdmin();
 		boolean isAuditKeyAdmin = msBizUtil.isAuditKeyAdmin();
 		XXServiceDef xxServiceDef = daoManager.getXXServiceDef().findByName(EmbeddedServiceDefsUtil.EMBEDDED_SERVICEDEF_KMS_NAME);
diff --git a/security-admin/src/main/java/org/apache/ranger/solr/SolrAccessAuditsService.java b/security-admin/src/main/java/org/apache/ranger/solr/SolrAccessAuditsService.java
index 4b1cf5b..0aea46d 100644
--- a/security-admin/src/main/java/org/apache/ranger/solr/SolrAccessAuditsService.java
+++ b/security-admin/src/main/java/org/apache/ranger/solr/SolrAccessAuditsService.java
@@ -75,6 +75,12 @@ public class SolrAccessAuditsService extends AccessAuditsService {
 		List<VXAccessAudit> xAccessAuditList = new ArrayList<VXAccessAudit>();
 
 		Map<String, Object> paramList = searchCriteria.getParamList();
+
+		Object eventIdObj = paramList.get("eventId");
+		if (eventIdObj != null) {
+			paramList.put("id", eventIdObj.toString());
+		}
+
 		updateUserExclusion(paramList);
 
 		QueryResponse response = solrUtil.searchResources(searchCriteria,
diff --git a/security-admin/src/main/webapp/scripts/views/reports/AuditLayout.js b/security-admin/src/main/webapp/scripts/views/reports/AuditLayout.js
index 16b70f4..a068ad8 100644
--- a/security-admin/src/main/webapp/scripts/views/reports/AuditLayout.js
+++ b/security-admin/src/main/webapp/scripts/views/reports/AuditLayout.js
@@ -431,10 +431,11 @@ define(function(require) {
                                     {text : 'Cluster Name',label : 'cluster', urlLabel : 'clusterName'},
                                     {text : 'Zone Name',label : 'zoneName', urlLabel : 'zoneName'},
                                     {text : localization.tt("lbl.agentHost"), label :"agentHost", urlLabel : 'agentHost'},
+                                    {text : 'Audit ID', label : 'eventId', urlLabel : 'eventId'}
                                    //{text : localization.tt("lbl.permission"), label :'action', urlLabel : 'permission'}
                                 ];
             var searchOpt = ['Resource Type','Start Date','End Date','Application','User','Service Name','Service Type','Resource Name','Access Type','Result','Access Enforcer',
-            'Client IP','Tags','Cluster Name', 'Zone Name', 'Exclude User', localization.tt("lbl.agentHost"), 'Policy ID'];//, localization.tt("lbl.permission")];
+            'Client IP','Tags','Cluster Name', 'Zone Name', 'Exclude User', localization.tt("lbl.agentHost"), 'Policy ID', 'Audit ID'];//, localization.tt("lbl.permission")];
                         this.clearVisualSearch(this.accessAuditList, serverAttrName);
                         this.searchInfoArr =[{text :'Access Enforcer', info :localization.tt('msg.accessEnforcer')},
                                             {text :'Access Type' 	, info :localization.tt('msg.accessTypeMsg')},
diff --git a/security-admin/src/test/java/org/apache/ranger/rest/TestAssetREST.java b/security-admin/src/test/java/org/apache/ranger/rest/TestAssetREST.java
index c4844cf..abd4b1c 100644
--- a/security-admin/src/test/java/org/apache/ranger/rest/TestAssetREST.java
+++ b/security-admin/src/test/java/org/apache/ranger/rest/TestAssetREST.java
@@ -762,7 +762,7 @@ public class TestAssetREST {
 		Mockito.verify(msBizUtil).isKeyAdmin();
 		Mockito.verify(assetMgr).getAccessLogs(searchCriteria);
 		Mockito.verify(daoManager).getXXServiceDef();
-		Mockito.verify(searchUtil, Mockito.times(13)).extractString((HttpServletRequest) Mockito.any(),
+		Mockito.verify(searchUtil, Mockito.times(14)).extractString((HttpServletRequest) Mockito.any(),
 				(SearchCriteria) Mockito.any(), Mockito.anyString(), Mockito.anyString(), Mockito.nullable(String.class));
 		Mockito.verify(searchUtil, Mockito.times(4)).extractInt((HttpServletRequest) Mockito.any(),
 				(SearchCriteria) Mockito.any(), Mockito.anyString(), Mockito.anyString());
@@ -818,7 +818,7 @@ public class TestAssetREST {
 		Mockito.verify(msBizUtil).isKeyAdmin();
 		Mockito.verify(assetMgr).getAccessLogs(searchCriteria);
 		Mockito.verify(daoManager).getXXServiceDef();
-		Mockito.verify(searchUtil, Mockito.times(13)).extractString((HttpServletRequest) Mockito.any(),
+		Mockito.verify(searchUtil, Mockito.times(14)).extractString((HttpServletRequest) Mockito.any(),
 				(SearchCriteria) Mockito.any(), Mockito.anyString(), Mockito.anyString(), Mockito.nullable(String.class));
 		Mockito.verify(searchUtil, Mockito.times(4)).extractInt((HttpServletRequest) Mockito.any(),
 				(SearchCriteria) Mockito.any(), Mockito.anyString(), Mockito.anyString());