Index: topia-security/src/java/org/codelutin/topia/security/entities/authorization/TopiaEntityAuthorizationImpl.java diff -u topia-security/src/java/org/codelutin/topia/security/entities/authorization/TopiaEntityAuthorizationImpl.java:1.5 topia-security/src/java/org/codelutin/topia/security/entities/authorization/TopiaEntityAuthorizationImpl.java:1.6 --- topia-security/src/java/org/codelutin/topia/security/entities/authorization/TopiaEntityAuthorizationImpl.java:1.5 Mon Sep 25 13:24:40 2006 +++ topia-security/src/java/org/codelutin/topia/security/entities/authorization/TopiaEntityAuthorizationImpl.java Thu Oct 5 07:49:44 2006 @@ -23,9 +23,9 @@ import static org.codelutin.topia.security.util.TopiaSecurityUtil.actionsString2Int; import java.security.Principal; +import java.util.HashSet; import java.util.Set; -import org.codelutin.topia.security.jaas.TopiaPrincipalMap; import org.codelutin.topia.security.listener.NoEntityVetoableReadListener; /** @@ -39,14 +39,16 @@ private static final long serialVersionUID = 1L; public TopiaEntityAuthorizationImpl() { - principals = new TopiaPrincipalMap(); + principals = new HashSet(); } public TopiaEntityAuthorizationImpl(String id, int actions, Set principals) { this.id = id; this.actions = actions; - this.principals = new TopiaPrincipalMap(); - this.principals.add(principals); + this.principals = new HashSet(); + for (Principal principal : principals) { + this.principals.add(principal.getName()); + } } public void setActions(String actions) { Index: topia-security/src/java/org/codelutin/topia/security/entities/authorization/TopiaLinkAuthorizationImpl.java diff -u topia-security/src/java/org/codelutin/topia/security/entities/authorization/TopiaLinkAuthorizationImpl.java:1.4 topia-security/src/java/org/codelutin/topia/security/entities/authorization/TopiaLinkAuthorizationImpl.java:1.5 --- topia-security/src/java/org/codelutin/topia/security/entities/authorization/TopiaLinkAuthorizationImpl.java:1.4 Mon Sep 25 13:24:40 2006 +++ topia-security/src/java/org/codelutin/topia/security/entities/authorization/TopiaLinkAuthorizationImpl.java Thu Oct 5 07:49:44 2006 @@ -20,7 +20,8 @@ package org.codelutin.topia.security.entities.authorization; -import org.codelutin.topia.security.jaas.TopiaPrincipalMap; +import java.util.Set; + import org.codelutin.topia.security.listener.NoEntityVetoableReadListener; /** @@ -44,7 +45,7 @@ * (non-Javadoc) * @see org.codelutin.topia.security.entities.authorization.TopiaAuthorization#getPrincipals() */ - public TopiaPrincipalMap getPrincipals() { + public Set getPrincipals() { return topiaAuthorization.getPrincipals(); } Index: topia-security/src/java/org/codelutin/topia/security/entities/authorization/TopiaAuthorizationImpl.java diff -u topia-security/src/java/org/codelutin/topia/security/entities/authorization/TopiaAuthorizationImpl.java:1.6 topia-security/src/java/org/codelutin/topia/security/entities/authorization/TopiaAuthorizationImpl.java:1.7 --- topia-security/src/java/org/codelutin/topia/security/entities/authorization/TopiaAuthorizationImpl.java:1.6 Mon Sep 25 13:24:40 2006 +++ topia-security/src/java/org/codelutin/topia/security/entities/authorization/TopiaAuthorizationImpl.java Thu Oct 5 07:49:44 2006 @@ -27,7 +27,6 @@ import java.util.Set; -import org.codelutin.topia.security.jaas.TopiaPrincipalMap; import org.codelutin.topia.security.listener.NoEntityVetoableReadListener; /** @@ -94,8 +93,8 @@ * @param thatPrincipals un autre principal * @return vrai si thisPrincipals implique thatPrincipals */ - public boolean impliesPrincipals(TopiaPrincipalMap thisPrincipals, - TopiaPrincipalMap thatPrincipals) { + public boolean impliesPrincipals(Set thisPrincipals, + Set thatPrincipals) { // this should never happen if (thisPrincipals == null || thatPrincipals == null) @@ -106,26 +105,12 @@ return true; } - boolean result = true; - for (String thisPrincipalClass : thisPrincipals.keySet()) { - if ("*".equals(thisPrincipalClass)) { - continue; - } - - Set thisPrincipalNames = thisPrincipals.get(thisPrincipalClass); - Set thatPrincipalNames = thatPrincipals.get(thisPrincipalClass); - - if (thatPrincipalNames != null // that contient bien le principal - // nécessaire ! - && (thisPrincipalNames.contains("*") || thatPrincipalNames - .containsAll(thisPrincipalNames))) { - // (this contient une étoile (accepte tous)) ou (that contient - // tout ce que contient this) - continue; - } + return (thatPrincipals != null // that contient bien le principal + // nécessaire ! + && (thisPrincipals.contains("*") || thatPrincipals + .containsAll(thisPrincipals))); + // (this contient une étoile (accepte tous)) ou (that contient + // tout ce que contient this) - result = false; - } - return result; } } Index: topia-security/src/java/org/codelutin/topia/security/entities/authorization/TopiaAssociationAuthorizationImpl.java diff -u topia-security/src/java/org/codelutin/topia/security/entities/authorization/TopiaAssociationAuthorizationImpl.java:1.5 topia-security/src/java/org/codelutin/topia/security/entities/authorization/TopiaAssociationAuthorizationImpl.java:1.6 --- topia-security/src/java/org/codelutin/topia/security/entities/authorization/TopiaAssociationAuthorizationImpl.java:1.5 Mon Sep 25 13:24:40 2006 +++ topia-security/src/java/org/codelutin/topia/security/entities/authorization/TopiaAssociationAuthorizationImpl.java Thu Oct 5 07:49:44 2006 @@ -22,12 +22,12 @@ import static org.codelutin.topia.security.util.TopiaSecurityUtil.actionsString2Int; +import java.util.HashSet; import java.util.List; import org.codelutin.topia.TopiaContext; import org.codelutin.topia.TopiaException; import org.codelutin.topia.persistence.TopiaId; -import org.codelutin.topia.security.jaas.TopiaPrincipalMap; import org.codelutin.topia.security.listener.NoEntityVetoableReadListener; /** @@ -48,7 +48,7 @@ * Constructeur permettant initialisation des principals. */ public TopiaAssociationAuthorizationImpl() { - principals = new TopiaPrincipalMap(); + principals = new HashSet(); } /*