Repository: incubator-ranger Updated Branches: refs/heads/master fab2a10c4 -> 6b79130d9
RANGER-711: Fix for issues reported by static code analysis Signed-off-by: Madhan Neethiraj <[email protected]> Project: http://git-wip-us.apache.org/repos/asf/incubator-ranger/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ranger/commit/6b79130d Tree: http://git-wip-us.apache.org/repos/asf/incubator-ranger/tree/6b79130d Diff: http://git-wip-us.apache.org/repos/asf/incubator-ranger/diff/6b79130d Branch: refs/heads/master Commit: 6b79130d9b7076b7ce796b7acef29544be2d82b0 Parents: fab2a10 Author: Abhay Kulkarni <[email protected]> Authored: Thu Oct 29 14:46:42 2015 -0700 Committer: Madhan Neethiraj <[email protected]> Committed: Fri Oct 30 15:54:20 2015 -0700 ---------------------------------------------------------------------- .../plugin/geo/RangerGeolocationData.java | 69 ++++++++++++++------ .../apache/ranger/plugin/geo/ValuePrinter.java | 4 +- .../ranger/plugin/model/RangerPolicy.java | 2 +- .../plugin/model/RangerServiceResource.java | 4 +- .../ranger/plugin/model/RangerTagDef.java | 8 +-- .../plugin/model/RangerTagResourceMap.java | 4 +- .../policyengine/RangerPolicyRepository.java | 2 +- .../RangerOptimizedPolicyEvaluator.java | 16 ++++- .../RangerDefaultPolicyResourceMatcher.java | 5 +- .../store/RangerServiceResourceSignature.java | 26 ++++---- .../ranger/plugin/store/file/TagFileStore.java | 9 ++- .../ranger/plugin/util/ServicePolicies.java | 2 +- .../tagsync/source/atlas/TagAtlasSource.java | 10 ++- .../tagsync/source/file/TagFileSource.java | 6 +- 14 files changed, 112 insertions(+), 55 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/6b79130d/agents-common/src/main/java/org/apache/ranger/plugin/geo/RangerGeolocationData.java ---------------------------------------------------------------------- diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/geo/RangerGeolocationData.java b/agents-common/src/main/java/org/apache/ranger/plugin/geo/RangerGeolocationData.java index 6f1f3f3..72e23c7 100644 --- a/agents-common/src/main/java/org/apache/ranger/plugin/geo/RangerGeolocationData.java +++ b/agents-common/src/main/java/org/apache/ranger/plugin/geo/RangerGeolocationData.java @@ -25,15 +25,17 @@ import org.apache.commons.logging.LogFactory; import java.net.InetAddress; import java.net.UnknownHostException; +import java.util.Objects; public class RangerGeolocationData implements Comparable<RangerGeolocationData>, RangeChecker<Long> { private static final Log LOG = LogFactory.getLog(RangerGeolocationData.class); private static final Character IPSegmentsSeparator = '.'; - private long fromIPAddress; - private long toIPAddress; - private String[] locationData = new String[0]; + private final long fromIPAddress; + private final long toIPAddress; + private final String[] locationData; + private int hash = 0; public static RangerGeolocationData create(String fields[], int index, boolean useDotFormat) { @@ -69,7 +71,7 @@ public class RangerGeolocationData implements Comparable<RangerGeolocationData>, return data; } - public RangerGeolocationData(final long fromIPAddress, final long toIPAddress, final String[] locationData) { + private RangerGeolocationData(final long fromIPAddress, final long toIPAddress, final String[] locationData) { this.fromIPAddress = fromIPAddress; this.toIPAddress = toIPAddress; this.locationData = locationData; @@ -81,14 +83,40 @@ public class RangerGeolocationData implements Comparable<RangerGeolocationData>, @Override public int compareTo(final RangerGeolocationData other) { - int ret = Long.compare(fromIPAddress, other.fromIPAddress); + int ret = (other == null) ? 1 : 0; if (ret == 0) { - ret = Long.compare(toIPAddress, other.toIPAddress); + ret = Long.compare(fromIPAddress, other.fromIPAddress); + if (ret == 0) { + ret = Long.compare(toIPAddress, other.toIPAddress); + if (ret == 0) { + ret = Integer.compare(locationData.length, other.locationData.length); + for (int i = 0; ret == 0 && i < locationData.length; i++) { + ret = stringCompareTo(locationData[i], other.locationData[i]); + } + } + } } return ret; } @Override + public boolean equals(Object other) { + boolean ret = false; + if (other != null && (other instanceof RangerGeolocationData)) { + ret = this == other || compareTo((RangerGeolocationData) other) == 0; + } + return ret; + } + + @Override + public int hashCode() { + if (hash == 0) { + hash = Objects.hash(fromIPAddress, toIPAddress, locationData); + } + return hash; + } + + @Override public int compareToRange(final Long ip) { int ret = Long.compare(fromIPAddress, ip.longValue()); @@ -145,7 +173,8 @@ public class RangerGeolocationData implements Comparable<RangerGeolocationData>, boolean ret = false; try { - byte[] bytes = InetAddress.getByName(ipAddress).getAddress(); + // Only to validate to see if ipAddress is in correct format + InetAddress.getByName(ipAddress).getAddress(); ret = true; } catch(UnknownHostException exception) { @@ -155,11 +184,23 @@ public class RangerGeolocationData implements Comparable<RangerGeolocationData>, return ret; } + private static int stringCompareTo(String str1, String str2) { + if(str1 == str2) { + return 0; + } else if(str1 == null) { + return -1; + } else if(str2 == null) { + return 1; + } else { + return str1.compareTo(str2); + } + } + @Override public String toString() { StringBuilder sb = new StringBuilder(); - toStringDump(sb); + toString(sb); return sb.toString(); } @@ -178,16 +219,4 @@ public class RangerGeolocationData implements Comparable<RangerGeolocationData>, sb.append("}"); return sb; } - - private StringBuilder toStringDump(StringBuilder sb) { - sb.append(RangerGeolocationData.unsignedIntToIPAddress(fromIPAddress)) - .append(",") - .append(RangerGeolocationData.unsignedIntToIPAddress(toIPAddress)) - .append(","); - for (int i = 0; i < locationData.length; i++) { - sb.append(locationData[i]).append(", "); - } - return sb; - } - } http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/6b79130d/agents-common/src/main/java/org/apache/ranger/plugin/geo/ValuePrinter.java ---------------------------------------------------------------------- diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/geo/ValuePrinter.java b/agents-common/src/main/java/org/apache/ranger/plugin/geo/ValuePrinter.java index c353a6f..62d6891 100644 --- a/agents-common/src/main/java/org/apache/ranger/plugin/geo/ValuePrinter.java +++ b/agents-common/src/main/java/org/apache/ranger/plugin/geo/ValuePrinter.java @@ -30,11 +30,9 @@ class ValuePrinter<T> implements ValueProcessor<T> { private Writer writer; private String fileName; - private boolean pretty; - ValuePrinter(String fileName, boolean pretty) { + ValuePrinter(String fileName) { this.fileName = fileName; - this.pretty = pretty; } public T process(T value) { http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/6b79130d/agents-common/src/main/java/org/apache/ranger/plugin/model/RangerPolicy.java ---------------------------------------------------------------------- diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/model/RangerPolicy.java b/agents-common/src/main/java/org/apache/ranger/plugin/model/RangerPolicy.java index a813a6e..fb5383c 100644 --- a/agents-common/src/main/java/org/apache/ranger/plugin/model/RangerPolicy.java +++ b/agents-common/src/main/java/org/apache/ranger/plugin/model/RangerPolicy.java @@ -384,7 +384,7 @@ public class RangerPolicy extends RangerBaseModelObject implements java.io.Seria sb.append("} "); sb.append("allowExceptions={"); - if(denyExceptions != null) { + if(allowExceptions != null) { for(RangerPolicyItem policyItem : allowExceptions) { if(policyItem != null) { policyItem.toString(sb); http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/6b79130d/agents-common/src/main/java/org/apache/ranger/plugin/model/RangerServiceResource.java ---------------------------------------------------------------------- diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/model/RangerServiceResource.java b/agents-common/src/main/java/org/apache/ranger/plugin/model/RangerServiceResource.java index 6acb2b6..867920f 100644 --- a/agents-common/src/main/java/org/apache/ranger/plugin/model/RangerServiceResource.java +++ b/agents-common/src/main/java/org/apache/ranger/plugin/model/RangerServiceResource.java @@ -92,7 +92,9 @@ public class RangerServiceResource extends RangerBaseModelObject { public StringBuilder toString(StringBuilder sb) { - sb.append("{ "); + sb.append("RangerServiceResource={ "); + + super.toString(sb); sb.append("guid={").append(getGuid()).append("} "); sb.append("serviceName={").append(serviceName).append("} "); http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/6b79130d/agents-common/src/main/java/org/apache/ranger/plugin/model/RangerTagDef.java ---------------------------------------------------------------------- diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/model/RangerTagDef.java b/agents-common/src/main/java/org/apache/ranger/plugin/model/RangerTagDef.java index bd9bbfa..ba2a5d7 100644 --- a/agents-common/src/main/java/org/apache/ranger/plugin/model/RangerTagDef.java +++ b/agents-common/src/main/java/org/apache/ranger/plugin/model/RangerTagDef.java @@ -69,7 +69,7 @@ public class RangerTagDef extends RangerBaseModelObject { public void setName(String name) { - this.name = name == null ? new String() : name; + this.name = name == null ? "" : name; } public String getSource() { @@ -77,7 +77,7 @@ public class RangerTagDef extends RangerBaseModelObject { } public void setSource(String source) { - this.source = source == null ? new String() : source; + this.source = source == null ? "" : source; } public List<RangerTagAttributeDef> getAttributeDefs() { @@ -125,10 +125,10 @@ public class RangerTagDef extends RangerBaseModelObject { } public void setName(String name) { - this.name = name == null ? new String() : name; + this.name = name == null ? "" : name; } public void setType(String type) { - this.type = type == null ? new String() : type; + this.type = type == null ? "" : type; } } } http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/6b79130d/agents-common/src/main/java/org/apache/ranger/plugin/model/RangerTagResourceMap.java ---------------------------------------------------------------------- diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/model/RangerTagResourceMap.java b/agents-common/src/main/java/org/apache/ranger/plugin/model/RangerTagResourceMap.java index 3ee0b3e..ada2b8d 100644 --- a/agents-common/src/main/java/org/apache/ranger/plugin/model/RangerTagResourceMap.java +++ b/agents-common/src/main/java/org/apache/ranger/plugin/model/RangerTagResourceMap.java @@ -69,7 +69,9 @@ public class RangerTagResourceMap extends RangerBaseModelObject { public StringBuilder toString(StringBuilder sb) { - sb.append("{ "); + sb.append("RangerTagResourceMap={ "); + + super.toString(sb); sb.append("resourceId=").append(resourceId).append(", "); http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/6b79130d/agents-common/src/main/java/org/apache/ranger/plugin/policyengine/RangerPolicyRepository.java ---------------------------------------------------------------------- diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/policyengine/RangerPolicyRepository.java b/agents-common/src/main/java/org/apache/ranger/plugin/policyengine/RangerPolicyRepository.java index 37b1ea6..57b1b7d 100644 --- a/agents-common/src/main/java/org/apache/ranger/plugin/policyengine/RangerPolicyRepository.java +++ b/agents-common/src/main/java/org/apache/ranger/plugin/policyengine/RangerPolicyRepository.java @@ -250,7 +250,7 @@ public class RangerPolicyRepository { } if (policyItemAccesses.isEmpty() && !policyItem.getDelegateAdmin()) { - if(itemsToPrune != null) { + if(itemsToPrune == null) { itemsToPrune = new ArrayList< RangerPolicy.RangerPolicyItem>(); } http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/6b79130d/agents-common/src/main/java/org/apache/ranger/plugin/policyevaluator/RangerOptimizedPolicyEvaluator.java ---------------------------------------------------------------------- diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/policyevaluator/RangerOptimizedPolicyEvaluator.java b/agents-common/src/main/java/org/apache/ranger/plugin/policyevaluator/RangerOptimizedPolicyEvaluator.java index a3da6bb..e81280f 100644 --- a/agents-common/src/main/java/org/apache/ranger/plugin/policyevaluator/RangerOptimizedPolicyEvaluator.java +++ b/agents-common/src/main/java/org/apache/ranger/plugin/policyevaluator/RangerOptimizedPolicyEvaluator.java @@ -92,7 +92,7 @@ public class RangerOptimizedPolicyEvaluator extends RangerDefaultPolicyEvaluator } } - class LevelResourceNames implements Comparable<LevelResourceNames> { + static class LevelResourceNames implements Comparable<LevelResourceNames> { final int level; final RangerPolicy.RangerPolicyResource policyResource; @@ -106,6 +106,20 @@ public class RangerOptimizedPolicyEvaluator extends RangerDefaultPolicyEvaluator // Sort in ascending order of level numbers return Integer.compare(this.level, other.level); } + + @Override + public boolean equals(Object other) { + boolean ret = false; + if (other != null && (other instanceof LevelResourceNames)) { + ret = this == other || compareTo((LevelResourceNames) other) == 0; + } + return ret; + } + + @Override + public int hashCode() { + return Objects.hashCode(this.level); + } } public int computeEvalOrder() { http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/6b79130d/agents-common/src/main/java/org/apache/ranger/plugin/policyresourcematcher/RangerDefaultPolicyResourceMatcher.java ---------------------------------------------------------------------- diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/policyresourcematcher/RangerDefaultPolicyResourceMatcher.java b/agents-common/src/main/java/org/apache/ranger/plugin/policyresourcematcher/RangerDefaultPolicyResourceMatcher.java index 4d6a00a..e6f61d5 100644 --- a/agents-common/src/main/java/org/apache/ranger/plugin/policyresourcematcher/RangerDefaultPolicyResourceMatcher.java +++ b/agents-common/src/main/java/org/apache/ranger/plugin/policyresourcematcher/RangerDefaultPolicyResourceMatcher.java @@ -144,12 +144,13 @@ public class RangerDefaultPolicyResourceMatcher implements RangerPolicyResourceM if(matchers == null) { Set<String> policyResourceKeys = policyResources == null ? null : policyResources.keySet(); - String keysString = ""; + StringBuffer sb = new StringBuffer(); if (CollectionUtils.isNotEmpty(policyResourceKeys)) { for (String policyResourceKeyName : policyResourceKeys) { - keysString += " " + policyResourceKeyName + " "; + sb.append(" ").append(policyResourceKeyName).append(" "); } } + String keysString = sb.toString(); String serviceDefName = serviceDef == null ? "" : serviceDef.getName(); String validHierarchy = ""; if (CollectionUtils.isNotEmpty(firstValidResourceDefHierarchy)) { http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/6b79130d/agents-common/src/main/java/org/apache/ranger/plugin/store/RangerServiceResourceSignature.java ---------------------------------------------------------------------- diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/store/RangerServiceResourceSignature.java b/agents-common/src/main/java/org/apache/ranger/plugin/store/RangerServiceResourceSignature.java index 1ff39b1..fca1c1d 100644 --- a/agents-common/src/main/java/org/apache/ranger/plugin/store/RangerServiceResourceSignature.java +++ b/agents-common/src/main/java/org/apache/ranger/plugin/store/RangerServiceResourceSignature.java @@ -78,18 +78,20 @@ public class RangerServiceResourceSignature { Collections.sort(values); builder.append(values); } - } - builder.append(",excludes="); - if (_policyResource.getIsExcludes() == null) { // null is same as false - builder.append(Boolean.FALSE); - } else { - builder.append(_policyResource.getIsExcludes()); - } - builder.append(",recursive="); - if (_policyResource.getIsRecursive() == null) { // null is the same as false - builder.append(Boolean.FALSE); - } else { - builder.append(_policyResource.getIsRecursive()); + + builder.append(",excludes="); + if (_policyResource.getIsExcludes() == null) { // null is same as false + builder.append(Boolean.FALSE); + } else { + builder.append(_policyResource.getIsExcludes()); + } + + builder.append(",recursive="); + if (_policyResource.getIsRecursive() == null) { // null is the same as false + builder.append(Boolean.FALSE); + } else { + builder.append(_policyResource.getIsRecursive()); + } } builder.append("}"); return builder.toString(); http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/6b79130d/agents-common/src/main/java/org/apache/ranger/plugin/store/file/TagFileStore.java ---------------------------------------------------------------------- diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/store/file/TagFileStore.java b/agents-common/src/main/java/org/apache/ranger/plugin/store/file/TagFileStore.java index 6a94f04..14b0d73 100644 --- a/agents-common/src/main/java/org/apache/ranger/plugin/store/file/TagFileStore.java +++ b/agents-common/src/main/java/org/apache/ranger/plugin/store/file/TagFileStore.java @@ -954,12 +954,15 @@ public class TagFileStore extends AbstractTagStore { LOG.debug("==> TagFileStore.getTagResourceMapsForResourceGuid(" + resourceGuid + ")"); } - SearchFilter filter = new SearchFilter(); + List<RangerTagResourceMap> ret = null; RangerServiceResource resource = getServiceResourceByGuid(resourceGuid); - filter.setParam(SearchFilter.TAG_RESOURCE_ID, resource.getId().toString()); - List<RangerTagResourceMap> ret = getTagResourceMaps(filter); + if (resource != null) { + SearchFilter filter = new SearchFilter(); + filter.setParam(SearchFilter.TAG_RESOURCE_ID, resource.getId().toString()); + ret = getTagResourceMaps(filter); + } if (LOG.isDebugEnabled()) { LOG.debug("<== TagFileStore.getTagResourceMapsForResourceGuid(" + resourceGuid + "): " + ret); http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/6b79130d/agents-common/src/main/java/org/apache/ranger/plugin/util/ServicePolicies.java ---------------------------------------------------------------------- diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/util/ServicePolicies.java b/agents-common/src/main/java/org/apache/ranger/plugin/util/ServicePolicies.java index a1c6397..af9f6d7 100644 --- a/agents-common/src/main/java/org/apache/ranger/plugin/util/ServicePolicies.java +++ b/agents-common/src/main/java/org/apache/ranger/plugin/util/ServicePolicies.java @@ -155,7 +155,7 @@ public class ServicePolicies implements java.io.Serializable { @JsonIgnoreProperties(ignoreUnknown=true) @XmlRootElement @XmlAccessorType(XmlAccessType.FIELD) - public static class TagPolicies { + public static class TagPolicies implements java.io.Serializable { private String serviceName; private Long serviceId; private Long policyVersion; http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/6b79130d/tagsync/src/main/java/org/apache/ranger/tagsync/source/atlas/TagAtlasSource.java ---------------------------------------------------------------------- diff --git a/tagsync/src/main/java/org/apache/ranger/tagsync/source/atlas/TagAtlasSource.java b/tagsync/src/main/java/org/apache/ranger/tagsync/source/atlas/TagAtlasSource.java index e5c91bd..2725b23 100644 --- a/tagsync/src/main/java/org/apache/ranger/tagsync/source/atlas/TagAtlasSource.java +++ b/tagsync/src/main/java/org/apache/ranger/tagsync/source/atlas/TagAtlasSource.java @@ -77,9 +77,15 @@ public class TagAtlasSource implements TagSource { if (inputStream != null) { try { atlasProperties.load(inputStream); - } catch (IOException ioException) { + } catch (Exception exception) { ret = false; - LOG.error("Cannot load Atlas application properties file, file-name:" + TAGSYNC_ATLAS_PROPERTIES_FILE_NAME); + LOG.error("Cannot load Atlas application properties file, file-name:" + TAGSYNC_ATLAS_PROPERTIES_FILE_NAME, exception); + } finally { + try { + inputStream.close(); + } catch (IOException ioException) { + LOG.error("Cannot close Atlas application properties file, file-name:\" + TAGSYNC_ATLAS_PROPERTIES_FILE_NAME", ioException); + } } } else { ret = false; http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/6b79130d/tagsync/src/main/java/org/apache/ranger/tagsync/source/file/TagFileSource.java ---------------------------------------------------------------------- diff --git a/tagsync/src/main/java/org/apache/ranger/tagsync/source/file/TagFileSource.java b/tagsync/src/main/java/org/apache/ranger/tagsync/source/file/TagFileSource.java index 03a3980..92f24b2 100644 --- a/tagsync/src/main/java/org/apache/ranger/tagsync/source/file/TagFileSource.java +++ b/tagsync/src/main/java/org/apache/ranger/tagsync/source/file/TagFileSource.java @@ -45,17 +45,17 @@ public class TagFileSource implements TagSource, Runnable { private Properties properties; @Override - public boolean initialize(Properties properties) { + public boolean initialize(Properties props) { if (LOG.isDebugEnabled()) { LOG.debug("==> TagFileSource.initialize()"); } - if (properties == null || MapUtils.isEmpty(properties)) { + if (props == null || MapUtils.isEmpty(props)) { LOG.error("No properties specified for TagFileSource initialization"); this.properties = new Properties(); } else { - this.properties = properties; + this.properties = props; } boolean ret = true;
