[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