X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.enterprise%2Fsrc%2Forg%2Fargeo%2Fosgi%2Fuseradmin%2FAggregatingAuthorization.java;h=ba9953416c9d5c05c80776e068b8ccf07759f007;hb=3eedd4220bb9f9ac91be4f0d091312f5a2e1e325;hp=758d3e35515aa5af947b7227c77006c92f02a98f;hpb=32e7377951f22ae49ede7b833bfd4a5ed3b12bda;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.enterprise/src/org/argeo/osgi/useradmin/AggregatingAuthorization.java b/org.argeo.enterprise/src/org/argeo/osgi/useradmin/AggregatingAuthorization.java index 758d3e355..ba9953416 100644 --- a/org.argeo.enterprise/src/org/argeo/osgi/useradmin/AggregatingAuthorization.java +++ b/org.argeo.enterprise/src/org/argeo/osgi/useradmin/AggregatingAuthorization.java @@ -2,27 +2,29 @@ package org.argeo.osgi.useradmin; import java.util.ArrayList; import java.util.Collections; +import java.util.HashSet; import java.util.List; import java.util.Set; import org.osgi.service.useradmin.Authorization; +/** An {@link Authorization} which combines roles form various auth sources. */ class AggregatingAuthorization implements Authorization { private final String name; private final String displayName; - private final List systemRoles; - private final List roles; + private final Set systemRoles; + private final Set roles; public AggregatingAuthorization(String name, String displayName, Set systemRoles, String[] roles) { this.name = name; this.displayName = displayName; - this.systemRoles = Collections.unmodifiableList(new ArrayList(systemRoles)); - List temp = new ArrayList<>(); + this.systemRoles = Collections.unmodifiableSet(new HashSet<>(systemRoles)); + Set temp = new HashSet<>(); for (String role : roles) { if (!temp.contains(role)) temp.add(role); } - this.roles = Collections.unmodifiableList(temp); + this.roles = Collections.unmodifiableSet(temp); } @Override