This is an automated email from the ASF dual-hosted git repository.
madhan pushed a commit to branch ranger-2.8
in repository https://gitbox.apache.org/repos/asf/ranger.git
The following commit(s) were added to refs/heads/ranger-2.8 by this push:
new 7bccdbdd8 RANGER-5443: update JsonUtils to fix unchecked cast warnings
(#801)
7bccdbdd8 is described below
commit 7bccdbdd8f964efdf5bcef464790c1c798e11a96
Author: Madhan Neethiraj <[email protected]>
AuthorDate: Tue Jan 13 07:11:26 2026 -0800
RANGER-5443: update JsonUtils to fix unchecked cast warnings (#801)
---
.../ranger/authorization/utils/JsonUtils.java | 184 ++++++++++-----------
.../ranger/authorization/utils/StringUtil.java | 81 ++++-----
2 files changed, 116 insertions(+), 149 deletions(-)
diff --git
a/agents-common/src/main/java/org/apache/ranger/authorization/utils/JsonUtils.java
b/agents-common/src/main/java/org/apache/ranger/authorization/utils/JsonUtils.java
index a89e5aaaa..575ac1de4 100755
---
a/agents-common/src/main/java/org/apache/ranger/authorization/utils/JsonUtils.java
+++
b/agents-common/src/main/java/org/apache/ranger/authorization/utils/JsonUtils.java
@@ -20,7 +20,6 @@
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
-import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.collections.MapUtils;
@@ -47,235 +46,228 @@
public class JsonUtils {
private static final Logger LOG = LoggerFactory.getLogger(JsonUtils.class);
- private static final TypeReference TYPE_MAP_STRING_STRING =
new TypeReference<Map<String, String>>() {};
- private static final TypeReference TYPE_SET_STRING =
new TypeReference<Set<String>>() {};
- private static final TypeReference TYPE_LIST_STRING =
new TypeReference<List<String>>() {};
- private static final TypeReference TYPE_LIST_RANGER_VALIDITY_SCHEDULE =
new TypeReference<List<RangerValiditySchedule>>() {};
- private static final TypeReference TYPE_LIST_AUDIT_FILTER =
new TypeReference<List<AuditFilter>>() {};
- private static final TypeReference TYPE_LIST_RANGER_VALIDITY_RECURRENCE =
new TypeReference<List<RangerValidityRecurrence>>() {};
- private static final TypeReference TYPE_LIST_RANGER_PRINCIPAL =
new TypeReference<List<RangerPrincipal>>() {};
- private static final TypeReference TYPE_MAP_RANGER_MASK_INFO =
new TypeReference<Map<String, RangerPolicyItemDataMaskInfo>>() {};
- private static final TypeReference TYPE_MAP_RANGER_POLICY_RESOURCE =
new TypeReference<Map<String, RangerPolicyResource>>() {};
- private static final TypeReference TYPE_LIST_RANGER_TAG =
new TypeReference<List<RangerTag>>() {};
-
- static private final ThreadLocal<ObjectMapper> MAPPER = new
ThreadLocal<ObjectMapper>() {
- @Override
- protected ObjectMapper initialValue() {
- ObjectMapper objectMapper = new ObjectMapper();
- objectMapper.setDateFormat(new
SimpleDateFormat("yyyyMMdd-HH:mm:ss.SSS-Z"));
- objectMapper.configure(JsonParser.Feature.ALLOW_SINGLE_QUOTES,
true);
- objectMapper.configure(FAIL_ON_UNKNOWN_PROPERTIES, false);
- return objectMapper;
- }
- };
+ private static final TypeReference<Map<String, String>>
TYPE_MAP_STRING_STRING = new TypeReference<Map<String,
String>>() {};
+ private static final TypeReference<Set<String>>
TYPE_SET_STRING = new TypeReference<Set<String>>() {};
+ private static final TypeReference<List<String>>
TYPE_LIST_STRING = new TypeReference<List<String>>() {};
+ private static final TypeReference<List<RangerValiditySchedule>>
TYPE_LIST_RANGER_VALIDITY_SCHEDULE = new
TypeReference<List<RangerValiditySchedule>>() {};
+ private static final TypeReference<List<AuditFilter>>
TYPE_LIST_AUDIT_FILTER = new
TypeReference<List<AuditFilter>>() {};
+ private static final TypeReference<List<RangerValidityRecurrence>>
TYPE_LIST_RANGER_VALIDITY_RECURRENCE = new
TypeReference<List<RangerValidityRecurrence>>() {};
+ private static final TypeReference<List<RangerPrincipal>>
TYPE_LIST_RANGER_PRINCIPAL = new
TypeReference<List<RangerPrincipal>>() {};
+ private static final TypeReference<Map<String,
RangerPolicyItemDataMaskInfo>> TYPE_MAP_RANGER_MASK_INFO = new
TypeReference<Map<String, RangerPolicyItemDataMaskInfo>>() {};
+ private static final TypeReference<Map<String, RangerPolicyResource>>
TYPE_MAP_RANGER_POLICY_RESOURCE = new TypeReference<Map<String,
RangerPolicyResource>>() {};
+ private static final TypeReference<List<RangerTag>>
TYPE_LIST_RANGER_TAG = new TypeReference<List<RangerTag>>()
{};
+
+ private static final ThreadLocal<ObjectMapper> MAPPER =
ThreadLocal.withInitial(() -> {
+ ObjectMapper objectMapper = new ObjectMapper();
+
+ objectMapper.setDateFormat(new
SimpleDateFormat("yyyyMMdd-HH:mm:ss.SSS-Z"));
+ objectMapper.configure(JsonParser.Feature.ALLOW_SINGLE_QUOTES, true);
+ objectMapper.configure(FAIL_ON_UNKNOWN_PROPERTIES, false);
+
+ return objectMapper;
+ });
static public ObjectMapper getMapper() {
return MAPPER.get();
}
public static String mapToJson(Map<?, ?> map) {
- String ret = null;
if (MapUtils.isNotEmpty(map)) {
try {
- ret = getMapper().writeValueAsString(map);
+ return getMapper().writeValueAsString(map);
} catch (Exception e) {
LOG.error("Invalid input data: ", e);
}
}
- return ret;
+
+ return null;
}
public static String listToJson(List<?> list) {
- String ret = null;
if (CollectionUtils.isNotEmpty(list)) {
try {
- ret = getMapper().writeValueAsString(list);
+ return getMapper().writeValueAsString(list);
} catch (Exception e) {
LOG.error("Invalid input data: ", e);
}
}
- return ret;
+
+ return null;
}
public static String setToJson(Set<?> set) {
- String ret = null;
if (CollectionUtils.isNotEmpty(set)) {
try {
- ret = getMapper().writeValueAsString(set);
+ return getMapper().writeValueAsString(set);
} catch (Exception e) {
LOG.error("Invalid input data: ", e);
}
}
- return ret;
+
+ return null;
}
public static String objectToJson(Object object) {
- String ret = null;
-
- if(object != null) {
+ if (object != null) {
try {
- ret = getMapper().writeValueAsString(object);
+ return getMapper().writeValueAsString(object);
} catch(Exception excp) {
LOG.warn("objectToJson() failed to convert object to Json",
excp);
}
}
- return ret;
+ return null;
}
- public static <T> T jsonToObject(Reader reader, Class<T> clz) {
- T ret = null;
-
- if(null != reader) {
+ public static <T> T jsonToObject(Reader reader, Class<T> clz) {
+ if (null != reader) {
try {
- ret = getMapper().readValue(reader, clz);
+ return getMapper().readValue(reader, clz);
} catch(Exception excp) {
- LOG.warn("jsonToObject() failed to convert json to object:
class " + clz + " reader ", excp);
+ LOG.warn("jsonToObject() failed to convert json to object:
class {} reader ", clz, excp);
}
}
- return ret;
+ return null;
}
- public static <T> void objectToWriter(Writer writer, T object) {
- if(null != writer) {
+ public static <T> void objectToWriter(Writer writer, T object) {
+ if (null != writer) {
try {
getMapper().writeValue(writer, object);
} catch(Exception excp) {
- LOG.warn("objectToWriter() failed to write oject to writer:
class " + object + " writer ", excp);
+ LOG.warn("objectToWriter() failed to write object to writer:
class {} writer ", object, excp);
}
}
}
- public static <T> T jsonToObject(String jsonStr, Class<T> clz) {
- T ret = null;
-
- if(StringUtils.isNotEmpty(jsonStr)) {
+ public static <T> T jsonToObject(String jsonStr, Class<T> clz) {
+ if (StringUtils.isNotEmpty(jsonStr)) {
try {
- ret = getMapper().readValue(jsonStr, clz);
+ return getMapper().readValue(jsonStr, clz);
} catch(Exception excp) {
- LOG.warn("jsonToObject() failed to convert json to object:
class " +clz + " JSON "+ jsonStr, excp);
+ LOG.warn("jsonToObject() failed to convert json to object:
class {} JSON {}", clz, jsonStr, excp);
}
}
- return ret;
+ return null;
}
- public static <T> T jsonToObject(String jsonStr, TypeReference<T>
valueTypeRef) throws JsonProcessingException, JsonMappingException {
- T ret = null;
- if(StringUtils.isNotEmpty(jsonStr)) {
+ public static <T> T jsonToObject(String jsonStr, TypeReference<T>
valueTypeRef) throws JsonProcessingException {
+ if (StringUtils.isNotEmpty(jsonStr)) {
try {
- ret = getMapper().readValue(jsonStr, valueTypeRef);
+ return getMapper().readValue(jsonStr, valueTypeRef);
} catch(Exception excp) {
- LOG.warn("jsonToObject() failed to convert json to object: " +
jsonStr, excp);
+ LOG.warn("jsonToObject() failed to convert json to object:
{}", jsonStr, excp);
}
}
- return (T) ret;
+ return null;
}
public static Map<String, String> jsonToMapStringString(String jsonStr) {
- Map<String, String> ret = null;
-
- if(StringUtils.isNotEmpty(jsonStr)) {
+ if (StringUtils.isNotEmpty(jsonStr)) {
try {
- ret = (Map<String, String>) getMapper().readValue(jsonStr,
TYPE_MAP_STRING_STRING);
+ return getMapper().readValue(jsonStr, TYPE_MAP_STRING_STRING);
} catch(Exception excp) {
- LOG.warn("jsonToMapStringString() failed to convert json to
object: " + jsonStr, excp);
+ LOG.warn("jsonToMapStringString() failed to convert json to
object: {}", jsonStr, excp);
}
}
- return ret;
+ return null;
}
public static Set<String> jsonToSetString(String jsonStr) {
- Set<String> ret = null;
-
if (StringUtils.isNotEmpty(jsonStr)) {
try {
- ret = (Set<String>) getMapper().readValue(jsonStr,
TYPE_SET_STRING);
+ return getMapper().readValue(jsonStr, TYPE_SET_STRING);
} catch(Exception excp) {
- LOG.warn("jsonToSetString() failed to convert json to object:
" + jsonStr, excp);
+ LOG.warn("jsonToSetString() failed to convert json to object:
{}", jsonStr, excp);
}
}
- return ret;
+ return null;
}
public static List<String> jsonToListString(String jsonStr) {
- List<String> ret = null;
-
if (StringUtils.isNotEmpty(jsonStr)) {
try {
- ret = (List<String>) getMapper().readValue(jsonStr,
TYPE_LIST_STRING);
+ return getMapper().readValue(jsonStr, TYPE_LIST_STRING);
} catch(Exception excp) {
- LOG.warn("jsonToListString() failed to convert json to object:
" + jsonStr, excp);
+ LOG.warn("jsonToListString() failed to convert json to object:
{}", jsonStr, excp);
}
}
- return ret;
+ return null;
}
public static List<RangerValiditySchedule>
jsonToRangerValiditySchedule(String jsonStr) {
try {
- return (List<RangerValiditySchedule>)
getMapper().readValue(jsonStr, TYPE_LIST_RANGER_VALIDITY_SCHEDULE);
+ return getMapper().readValue(jsonStr,
TYPE_LIST_RANGER_VALIDITY_SCHEDULE);
} catch (Exception e) {
- LOG.error("Cannot get List<RangerValiditySchedule> from " +
jsonStr, e);
- return null;
+ LOG.error("Cannot get List<RangerValiditySchedule> from {}",
jsonStr, e);
}
+
+ return null;
}
public static List<AuditFilter> jsonToAuditFilterList(String jsonStr) {
try {
- return (List<AuditFilter>) getMapper().readValue(jsonStr,
TYPE_LIST_AUDIT_FILTER);
+ return getMapper().readValue(jsonStr, TYPE_LIST_AUDIT_FILTER);
} catch (Exception e) {
- LOG.error("failed to create audit filters from: " + jsonStr, e);
- return null;
+ LOG.error("failed to create audit filters from: {}", jsonStr, e);
}
+
+ return null;
}
public static List<RangerValidityRecurrence>
jsonToRangerValidityRecurringSchedule(String jsonStr) {
try {
- return (List<RangerValidityRecurrence>)
getMapper().readValue(jsonStr, TYPE_LIST_RANGER_VALIDITY_RECURRENCE);
+ return getMapper().readValue(jsonStr,
TYPE_LIST_RANGER_VALIDITY_RECURRENCE);
} catch (Exception e) {
- LOG.error("Cannot get List<RangerValidityRecurrence> from " +
jsonStr, e);
- return null;
+ LOG.error("Cannot get List<RangerValidityRecurrence> from {}",
jsonStr, e);
}
+
+ return null;
}
public static List<RangerPrincipal> jsonToRangerPrincipalList(String
jsonStr) {
try {
- return (List<RangerPrincipal>) getMapper().readValue(jsonStr,
TYPE_LIST_RANGER_PRINCIPAL);
+ return getMapper().readValue(jsonStr, TYPE_LIST_RANGER_PRINCIPAL);
} catch (Exception e) {
- LOG.error("Cannot get List<RangerPrincipal> from " + jsonStr, e);
- return null;
+ LOG.error("Cannot get List<RangerPrincipal> from {}", jsonStr, e);
}
+
+ return null;
}
public static List<RangerTag> jsonToRangerTagList(String jsonStr) {
try {
- return (List<RangerTag>) getMapper().readValue(jsonStr,
TYPE_LIST_RANGER_TAG);
+ return getMapper().readValue(jsonStr, TYPE_LIST_RANGER_TAG);
} catch (Exception e) {
- LOG.error("Cannot get List<RangerTag> from " + jsonStr, e);
- return null;
+ LOG.error("Cannot get List<RangerTag> from {}", jsonStr, e);
}
+
+ return null;
}
public static Map<String, RangerPolicyItemDataMaskInfo>
jsonToMapMaskInfo(String jsonStr) {
try {
- return (Map<String, RangerPolicyItemDataMaskInfo>)
getMapper().readValue(jsonStr, TYPE_MAP_RANGER_MASK_INFO);
+ return getMapper().readValue(jsonStr, TYPE_MAP_RANGER_MASK_INFO);
} catch (Exception e) {
- LOG.error("Cannot get Map<String, RangerPolicyItemDataMaskInfo>
from " + jsonStr, e);
- return null;
+ LOG.error("Cannot get Map<String, RangerPolicyItemDataMaskInfo>
from {}", jsonStr, e);
}
+
+ return null;
}
public static Map<String, RangerPolicyResource>
jsonToMapPolicyResource(String jsonStr) {
try {
- return (Map<String, RangerPolicyResource>)
getMapper().readValue(jsonStr, TYPE_MAP_RANGER_POLICY_RESOURCE);
+ return getMapper().readValue(jsonStr,
TYPE_MAP_RANGER_POLICY_RESOURCE);
} catch (Exception e) {
- LOG.error("Cannot get Map<String, RangerPolicyResource> from " +
jsonStr, e);
- return null;
+ LOG.error("Cannot get Map<String, RangerPolicyResource> from {}",
jsonStr, e);
}
+
+ return null;
}
}
diff --git
a/agents-common/src/main/java/org/apache/ranger/authorization/utils/StringUtil.java
b/agents-common/src/main/java/org/apache/ranger/authorization/utils/StringUtil.java
index 1f9ddc1dd..3675a8351 100644
---
a/agents-common/src/main/java/org/apache/ranger/authorization/utils/StringUtil.java
+++
b/agents-common/src/main/java/org/apache/ranger/authorization/utils/StringUtil.java
@@ -44,11 +44,10 @@
import org.apache.ranger.plugin.model.RangerPolicy.RangerPolicyResource;
public class StringUtil {
- private static final TimeZone gmtTimeZone = TimeZone.getTimeZone("GMT+0");
+ private static final TimeZone gmtTimeZone =
TimeZone.getTimeZone("GMT+0");
-
- public static boolean equals(String str1, String str2) {
- boolean ret = false;
+ public static boolean equals(String str1, String str2) {
+ final boolean ret;
if(str1 == null) {
ret = str2 == null;
@@ -62,7 +61,7 @@ public static boolean equals(String str1, String str2) {
}
public static boolean equalsIgnoreCase(String str1, String str2) {
- boolean ret = false;
+ final boolean ret;
if(str1 == null) {
ret = str2 == null;
@@ -76,7 +75,7 @@ public static boolean equalsIgnoreCase(String str1, String
str2) {
}
public static boolean equals(Collection<String> set1,
Collection<String> set2) {
- boolean ret = false;
+ final boolean ret;
if(set1 == null) {
ret = set2 == null;
@@ -84,13 +83,15 @@ public static boolean equals(Collection<String> set1,
Collection<String> set2) {
ret = false;
} else if(set1.size() == set2.size()) {
ret = set1.containsAll(set2);
+ } else {
+ ret = false;
}
return ret;
}
public static boolean equalsIgnoreCase(Collection<String> set1,
Collection<String> set2) {
- boolean ret = false;
+ final boolean ret;
if(set1 == null) {
ret = set2 == null;
@@ -118,13 +119,15 @@ public static boolean equalsIgnoreCase(Collection<String>
set1, Collection<Strin
}
ret = numFound == set1.size();
+ } else {
+ ret = false;
}
return ret;
}
public static boolean matches(String pattern, String str) {
- boolean ret = false;
+ boolean ret;
if(pattern == null || str == null || pattern.isEmpty() ||
str.isEmpty()) {
ret = true;
@@ -135,39 +138,6 @@ public static boolean matches(String pattern, String str) {
return ret;
}
- /*
- public static boolean matches(Collection<String> patternSet,
Collection<String> strSet) {
- boolean ret = false;
-
- if(patternSet == null || strSet == null || patternSet.isEmpty()
|| strSet.isEmpty()) {
- ret = true;
- } else {
- boolean foundUnmatched = false;
-
- for(String str : strSet) {
- boolean isMatched = false;
- for(String pattern : patternSet) {
- isMatched = str.matches(pattern);
-
- if(isMatched) {
- break;
- }
- }
-
- foundUnmatched = ! isMatched;
-
- if(foundUnmatched) {
- break;
- }
- }
-
- ret = !foundUnmatched;
- }
-
- return ret;
- }
- */
-
public static boolean contains(String str, String strToFind) {
return str != null && strToFind != null &&
str.contains(strToFind);
}
@@ -213,11 +183,14 @@ public static String toString(Iterable<String> iterable) {
if(iterable != null) {
int count = 0;
+
for(String str : iterable) {
- if(count == 0)
+ if(count == 0) {
ret = str;
- else
+ } else {
ret += (", " + str);
+ }
+
count++;
}
}
@@ -230,6 +203,7 @@ public static String toString(String[] arr) {
if(arr != null && arr.length > 0) {
ret = arr[0];
+
for(int i = 1; i < arr.length; i++) {
ret += (", " + arr[i]);
}
@@ -243,6 +217,7 @@ public static String toString(List<String> arr) {
if(arr != null && !arr.isEmpty()) {
ret = arr.get(0);
+
for(int i = 1; i < arr.size(); i++) {
ret += (", " + arr.get(i));
}
@@ -268,15 +243,15 @@ public static byte[] getBytes(String str) {
}
public static Date getUTCDate() {
- Calendar local = Calendar.getInstance();
- int offset =
local.getTimeZone().getOffset(local.getTimeInMillis());
+ Calendar local = Calendar.getInstance();
+ int offset =
local.getTimeZone().getOffset(local.getTimeInMillis());
- GregorianCalendar utc = new GregorianCalendar(gmtTimeZone);
+ GregorianCalendar utc = new GregorianCalendar(gmtTimeZone);
- utc.setTimeInMillis(local.getTimeInMillis());
- utc.add(Calendar.MILLISECOND, -offset);
+ utc.setTimeInMillis(local.getTimeInMillis());
+ utc.add(Calendar.MILLISECOND, -offset);
- return utc.getTime();
+ return utc.getTime();
}
public static Date getUTCDateForLocalDate(Date date) {
@@ -297,16 +272,15 @@ public static Map<String, Object>
toStringObjectMap(Map<String, String> map) {
if (map != null) {
ret = new HashMap<>(map.size());
- for (Map.Entry<String, String> e : map.entrySet()) {
- ret.put(e.getKey(), e.getValue());
- }
+ ret.putAll(map);
}
return ret;
}
public static Set<String> toSet(String str) {
- Set<String> values = new HashSet<String>();
+ Set<String> values = new HashSet<>();
+
if (StringUtils.isNotBlank(str)) {
for (String item : str.split(",")) {
if (StringUtils.isNotBlank(item)) {
@@ -314,6 +288,7 @@ public static Set<String> toSet(String str) {
}
}
}
+
return values;
}