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

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


The following commit(s) were added to refs/heads/master by this push:
     new d1eb5aff9 RANGER-4652: Value for datasets and projects field in the 
access audits must be JSON serializable
d1eb5aff9 is described below

commit d1eb5aff94e7b9e3830508db23643c2f32a601ad
Author: princeap173 <[email protected]>
AuthorDate: Sun Jan 28 00:19:13 2024 +0530

    RANGER-4652: Value for datasets and projects field in the access audits 
must be JSON serializable
    
    Signed-off-by: Madhan Neethiraj <[email protected]>
---
 .../java/org/apache/ranger/plugin/util/JsonUtilsV2.java     |  4 ++++
 .../elasticsearch/ElasticSearchAccessAuditsService.java     | 13 +++++++++++--
 .../org/apache/ranger/solr/SolrAccessAuditsService.java     | 13 +++++++++++--
 3 files changed, 26 insertions(+), 4 deletions(-)

diff --git 
a/agents-common/src/main/java/org/apache/ranger/plugin/util/JsonUtilsV2.java 
b/agents-common/src/main/java/org/apache/ranger/plugin/util/JsonUtilsV2.java
index 43e62a651..ca61131dd 100644
--- a/agents-common/src/main/java/org/apache/ranger/plugin/util/JsonUtilsV2.java
+++ b/agents-common/src/main/java/org/apache/ranger/plugin/util/JsonUtilsV2.java
@@ -78,4 +78,8 @@ public class JsonUtilsV2 {
     static public <T> T readValue(Reader reader, Class<T> tClass) throws 
Exception {
         return getMapper().readValue(reader, tClass);
     }
+
+    static public String nonSerializableObjToJson(Object obj) throws Exception 
{
+        return getMapper().writeValueAsString(obj);
+    }
 }
diff --git 
a/security-admin/src/main/java/org/apache/ranger/elasticsearch/ElasticSearchAccessAuditsService.java
 
b/security-admin/src/main/java/org/apache/ranger/elasticsearch/ElasticSearchAccessAuditsService.java
index 4195567fa..0ccd4fda2 100644
--- 
a/security-admin/src/main/java/org/apache/ranger/elasticsearch/ElasticSearchAccessAuditsService.java
+++ 
b/security-admin/src/main/java/org/apache/ranger/elasticsearch/ElasticSearchAccessAuditsService.java
@@ -30,6 +30,7 @@ import org.apache.ranger.entity.XXServiceDef;
 import org.apache.ranger.view.VXAccessAudit;
 import org.apache.ranger.view.VXAccessAuditList;
 import org.apache.ranger.view.VXLong;
+import org.apache.ranger.plugin.util.JsonUtilsV2;
 import org.elasticsearch.action.get.GetResponse;
 import org.elasticsearch.action.get.MultiGetItemResponse;
 import org.elasticsearch.action.search.SearchResponse;
@@ -277,11 +278,19 @@ public class ElasticSearchAccessAuditsService extends 
org.apache.ranger.AccessAu
                }
                value = source.get("datasets");
                if (value != null) {
-                       accessAudit.setDatasets(value.toString());
+                       try {
+                               
accessAudit.setDatasets(JsonUtilsV2.nonSerializableObjToJson(value));
+                       } catch (Exception e) {
+                               LOGGER.warn("Failed to convert datasets to 
json", e);
+                       }
                }
                value = source.get("projects");
                if (value != null) {
-                       accessAudit.setProjects(value.toString());
+                       try {
+                               
accessAudit.setProjects(JsonUtilsV2.nonSerializableObjToJson(value));
+                       } catch (Exception e) {
+                               LOGGER.warn("Failed to convert projects to 
json", e);
+                       }
                }
                return accessAudit;
        }
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 3485f4dba..9ba7bbd4d 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
@@ -35,6 +35,7 @@ import org.apache.ranger.entity.XXServiceDef;
 import org.apache.ranger.view.VXAccessAudit;
 import org.apache.ranger.view.VXAccessAuditList;
 import org.apache.ranger.view.VXLong;
+import org.apache.ranger.plugin.util.JsonUtilsV2;
 import org.apache.solr.client.solrj.SolrClient;
 import org.apache.solr.client.solrj.response.QueryResponse;
 import org.apache.solr.common.SolrDocument;
@@ -256,11 +257,19 @@ public class SolrAccessAuditsService extends 
AccessAuditsService {
                }
                value = doc.getFieldValue("datasets");
                if (value != null) {
-                       accessAudit.setDatasets(value.toString());
+                       try {
+                               
accessAudit.setDatasets(JsonUtilsV2.nonSerializableObjToJson(value));
+                       } catch (Exception e) {
+                               LOGGER.warn("Failed to convert datasets to 
json", e);
+                       }
                }
                value = doc.getFieldValue("projects");
                if (value != null) {
-                       accessAudit.setProjects(value.toString());
+                       try {
+                               
accessAudit.setProjects(JsonUtilsV2.nonSerializableObjToJson(value));
+                       } catch (Exception e) {
+                               LOGGER.warn("Failed to convert projects to 
json", e);
+                       }
                }
                return accessAudit;
        }

Reply via email to