[exo-jcr-commits] exo-jcr SVN: r1160 - core/trunk/exo.core.component.security.core/src/main/java/org/exoplatform/services/security.

do-not-reply at jboss.org do-not-reply at jboss.org
Thu Dec 24 05:41:55 EST 2009


Author: nfilotto
Date: 2009-12-24 05:41:54 -0500 (Thu, 24 Dec 2009)
New Revision: 1160

Modified:
   core/trunk/exo.core.component.security.core/src/main/java/org/exoplatform/services/security/Identity.java
   core/trunk/exo.core.component.security.core/src/main/java/org/exoplatform/services/security/MembershipEntry.java
Log:
EXOJCR-345: Improve the way to check if a given Identity contains a given MembershipEntry

Modified: core/trunk/exo.core.component.security.core/src/main/java/org/exoplatform/services/security/Identity.java
===================================================================
--- core/trunk/exo.core.component.security.core/src/main/java/org/exoplatform/services/security/Identity.java	2009-12-24 10:29:04 UTC (rev 1159)
+++ core/trunk/exo.core.component.security.core/src/main/java/org/exoplatform/services/security/Identity.java	2009-12-24 10:41:54 UTC (rev 1160)
@@ -44,7 +44,7 @@
    /**
     * Memberships.
     */
-   private Collection<MembershipEntry> memberships;
+   private Set<MembershipEntry> memberships;
 
    /**
     * javax.security.auth.Subject can be used for logout process. <code>
@@ -84,7 +84,7 @@
    public Identity(String userId, Collection<MembershipEntry> memberships, Collection<String> roles)
    {
       this.userId = userId;
-      this.memberships = memberships;
+      this.memberships = new HashSet<MembershipEntry>(memberships);
       this.roles = roles;
    }
 
@@ -146,7 +146,7 @@
     */
    public void setMemberships(Collection<MembershipEntry> memberships)
    {
-      this.memberships = memberships;
+      this.memberships = new HashSet<MembershipEntry>(memberships);
    }
 
    /**
@@ -199,12 +199,7 @@
     */
    private boolean containsMembership(MembershipEntry checkMe)
    {
-      for (MembershipEntry membership : memberships)
-      {
-         if (checkMe.equals(membership))
-            return true;
-      }
-      return false;
+      return memberships.contains(checkMe);
    }
 
 }

Modified: core/trunk/exo.core.component.security.core/src/main/java/org/exoplatform/services/security/MembershipEntry.java
===================================================================
--- core/trunk/exo.core.component.security.core/src/main/java/org/exoplatform/services/security/MembershipEntry.java	2009-12-24 10:29:04 UTC (rev 1159)
+++ core/trunk/exo.core.component.security.core/src/main/java/org/exoplatform/services/security/MembershipEntry.java	2009-12-24 10:41:54 UTC (rev 1160)
@@ -78,7 +78,9 @@
    @Override
    public boolean equals(Object obj)
    {
-      if (obj == null || !(obj instanceof MembershipEntry))
+      if (this == obj)
+         return true;
+      if (!(obj instanceof MembershipEntry))
          return false;
       MembershipEntry me = (MembershipEntry)obj;
       if (membershipType.equals(ANY_TYPE) || me.membershipType.equals(ANY_TYPE))
@@ -86,13 +88,24 @@
       return this.group.equals(me.group) && this.membershipType.equals(me.membershipType);
    }
 
+   
+   /**
+    * {@inheritDoc}
+    */   
+   @Override
+   public int hashCode()
+   {
+      return group.hashCode();
+   }
+
    public static MembershipEntry parse(String identityStr)
    {
 
-      if (identityStr.indexOf(":") != -1)
+      final int index = identityStr.indexOf(":");
+      if (index != -1)
       {
-         String membershipName = identityStr.substring(0, identityStr.indexOf(":"));
-         String groupName = identityStr.substring(identityStr.indexOf(":") + 1);
+         String membershipName = identityStr.substring(0, index);
+         String groupName = identityStr.substring(index + 1);
          return new MembershipEntry(groupName, membershipName);
       }
 



More information about the exo-jcr-commits mailing list