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;
}