IGNITE-5080 - Fixes in SecurityBasicPermissionSet
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/2cfece4a Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/2cfece4a Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/2cfece4a Branch: refs/heads/ignite-security-fixes Commit: 2cfece4a90c0e46c03a10e81578e250507722265 Parents: 37a0911 Author: Valentin Kulichenko <[email protected]> Authored: Tue Apr 25 16:33:02 2017 +0200 Committer: Valentin Kulichenko <[email protected]> Committed: Tue Apr 25 16:33:02 2017 +0200 ---------------------------------------------------------------------- .../security/SecurityBasicPermissionSet.java | 72 +++++++++++++++----- 1 file changed, 54 insertions(+), 18 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/2cfece4a/modules/core/src/main/java/org/apache/ignite/plugin/security/SecurityBasicPermissionSet.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/plugin/security/SecurityBasicPermissionSet.java b/modules/core/src/main/java/org/apache/ignite/plugin/security/SecurityBasicPermissionSet.java index 5b50c56..af1800a 100644 --- a/modules/core/src/main/java/org/apache/ignite/plugin/security/SecurityBasicPermissionSet.java +++ b/modules/core/src/main/java/org/apache/ignite/plugin/security/SecurityBasicPermissionSet.java @@ -17,10 +17,12 @@ package org.apache.ignite.plugin.security; -import java.util.Map; -import java.util.HashMap; -import java.util.ArrayList; import java.util.Collection; +import java.util.HashMap; +import java.util.Map; +import org.apache.ignite.internal.util.tostring.GridToStringInclude; +import org.apache.ignite.internal.util.typedef.F; +import org.apache.ignite.internal.util.typedef.internal.A; import org.apache.ignite.internal.util.typedef.internal.S; import org.jetbrains.annotations.Nullable; @@ -33,13 +35,16 @@ public class SecurityBasicPermissionSet implements SecurityPermissionSet { private static final long serialVersionUID = 0L; /** Cache permissions. */ - private Map<String, Collection<SecurityPermission>> cachePerms = new HashMap<>(); + @GridToStringInclude + private Map<String, Collection<SecurityPermission>> cachePermissions = new HashMap<>(); /** Task permissions. */ - private Map<String, Collection<SecurityPermission>> taskPerms = new HashMap<>(); + @GridToStringInclude + private Map<String, Collection<SecurityPermission>> taskPermissions = new HashMap<>(); /** System permissions. */ - private Collection<SecurityPermission> sysPerms = new ArrayList<>(); + @GridToStringInclude + private Collection<SecurityPermission> sysPermissions; /** Default allow all. */ private boolean dfltAllowAll; @@ -47,28 +52,32 @@ public class SecurityBasicPermissionSet implements SecurityPermissionSet { /** * Setter for set cache permission map. * - * @param cachePerms Cache permissions. + * @param cachePermissions Cache permissions. */ - public void setCachePermissions(Map<String, Collection<SecurityPermission>> cachePerms) { - this.cachePerms = cachePerms; + public void setCachePermissions(Map<String, Collection<SecurityPermission>> cachePermissions) { + A.notNull(cachePermissions, "cachePermissions"); + + this.cachePermissions = cachePermissions; } /** * Setter for set task permission map. * - * @param taskPerms Task permissions. + * @param taskPermissions Task permissions. */ - public void setTaskPermissions(Map<String, Collection<SecurityPermission>> taskPerms) { - this.taskPerms = taskPerms; + public void setTaskPermissions(Map<String, Collection<SecurityPermission>> taskPermissions) { + A.notNull(taskPermissions, "taskPermissions"); + + this.taskPermissions = taskPermissions; } /** * Setter for set collection system permission. * - * @param sysPerms System permissions. + * @param sysPermissions System permissions. */ - public void setSystemPermissions(Collection<SecurityPermission> sysPerms) { - this.sysPerms = sysPerms; + public void setSystemPermissions(Collection<SecurityPermission> sysPermissions) { + this.sysPermissions = sysPermissions; } /** @@ -82,17 +91,17 @@ public class SecurityBasicPermissionSet implements SecurityPermissionSet { /** {@inheritDoc} */ @Override public Map<String, Collection<SecurityPermission>> cachePermissions() { - return cachePerms; + return cachePermissions; } /** {@inheritDoc} */ @Override public Map<String, Collection<SecurityPermission>> taskPermissions() { - return taskPerms; + return taskPermissions; } /** {@inheritDoc} */ @Nullable @Override public Collection<SecurityPermission> systemPermissions() { - return sysPerms; + return sysPermissions; } /** {@inheritDoc} */ @@ -101,6 +110,33 @@ public class SecurityBasicPermissionSet implements SecurityPermissionSet { } /** {@inheritDoc} */ + @Override public boolean equals(Object o) { + if (this == o) + return true; + + if (!(o instanceof SecurityBasicPermissionSet)) + return false; + + SecurityBasicPermissionSet other = (SecurityBasicPermissionSet)o; + + return dfltAllowAll == other.dfltAllowAll && + F.eq(cachePermissions, other.cachePermissions) && + F.eq(taskPermissions, other.taskPermissions) && + F.eq(sysPermissions, other.sysPermissions); + } + + /** {@inheritDoc} */ + @Override public int hashCode() { + int res = (dfltAllowAll ? 1 : 0); + + res = 31 * res + (cachePermissions != null ? cachePermissions.hashCode() : 0); + res = 31 * res + (taskPermissions != null ? taskPermissions.hashCode() : 0); + res = 31 * res + (sysPermissions != null ? sysPermissions.hashCode() : 0); + + return res; + } + + /** {@inheritDoc} */ @Override public String toString() { return S.toString(SecurityBasicPermissionSet.class, this); }
