Repository: ranger Updated Branches: refs/heads/master a7163cb91 -> 4c1e80e6b
RANGER-1862:generalName.get(1) cause IndexOutOfBoundsException in NiFiClient Signed-off-by: peng.jianhua <[email protected]> Project: http://git-wip-us.apache.org/repos/asf/ranger/repo Commit: http://git-wip-us.apache.org/repos/asf/ranger/commit/4c1e80e6 Tree: http://git-wip-us.apache.org/repos/asf/ranger/tree/4c1e80e6 Diff: http://git-wip-us.apache.org/repos/asf/ranger/diff/4c1e80e6 Branch: refs/heads/master Commit: 4c1e80e6bb4262a4e11dbf5dfe9b9aad00fabc14 Parents: a7163cb Author: zhangqiang2 <[email protected]> Authored: Wed Nov 1 16:08:29 2017 +0800 Committer: peng.jianhua <[email protected]> Committed: Fri Nov 3 14:01:28 2017 +0800 ---------------------------------------------------------------------- .../ranger/services/nifi/client/NiFiClient.java | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ranger/blob/4c1e80e6/plugin-nifi/src/main/java/org/apache/ranger/services/nifi/client/NiFiClient.java ---------------------------------------------------------------------- diff --git a/plugin-nifi/src/main/java/org/apache/ranger/services/nifi/client/NiFiClient.java b/plugin-nifi/src/main/java/org/apache/ranger/services/nifi/client/NiFiClient.java index c03bc12..800a2b2 100644 --- a/plugin-nifi/src/main/java/org/apache/ranger/services/nifi/client/NiFiClient.java +++ b/plugin-nifi/src/main/java/org/apache/ranger/services/nifi/client/NiFiClient.java @@ -196,20 +196,21 @@ public class NiFiClient { return new ArrayList<>(); } - final List<String> result = new ArrayList<>(); - for (final List<?> generalName : altNames) { + final List<String> result = new ArrayList<>(); + for (final List<?> generalName : altNames) { /** * generalName has the name type as the first element a String or byte array for the second element. We return any general names that are String types. * * We don't inspect the numeric name type because some certificates incorrectly put IPs and DNS names under the wrong name types. */ - final Object value = generalName.get(1); - if (value instanceof String) { - result.add(((String) value).toLowerCase()); - } + if (generalName.size() > 1) { + final Object value = generalName.get(1); + if (value instanceof String) { + result.add(((String) value).toLowerCase()); + } + } } - return result; } }
