X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.security.core%2Fsrc%2Forg%2Fargeo%2Fsecurity%2FSecurityUtils.java;fp=org.argeo.security.core%2Fsrc%2Forg%2Fargeo%2Fsecurity%2FSecurityUtils.java;h=0000000000000000000000000000000000000000;hb=0a7d938324d33848ac7dc4ef4007c73a714171ee;hp=e1f7899a5f52227515f0e24b3157e64e7c32446d;hpb=9dba7b01008499bdaf15c754190906d3200713fe;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.security.core/src/org/argeo/security/SecurityUtils.java b/org.argeo.security.core/src/org/argeo/security/SecurityUtils.java deleted file mode 100644 index e1f7899a5..000000000 --- a/org.argeo.security.core/src/org/argeo/security/SecurityUtils.java +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Copyright (C) 2007-2012 Argeo GmbH - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.argeo.security; - -import java.security.AccessController; -import java.security.Principal; -import java.security.acl.Group; -import java.util.Collections; -import java.util.HashSet; -import java.util.Set; - -import javax.security.auth.Subject; -import javax.security.auth.x500.X500Principal; - -import org.argeo.ArgeoException; -import org.osgi.service.useradmin.Authorization; - -/** Static utilities */ -public final class SecurityUtils { - private SecurityUtils() { - } - - /** Whether the current thread has the admin role */ - public static boolean hasCurrentThreadAuthority(String authority) { - return roles().contains(authority); - } - - /** - * @return the authenticated username or null if not authenticated / - * anonymous - */ - public static String getCurrentThreadUsername() { - Subject subject = Subject.getSubject(AccessController.getContext()); - if (subject == null) - return null; - return getUsername(subject); - } - - public final static String getUsername(Subject subject) { - // Subject subject = Subject.getSubject(AccessController.getContext()); - // if (subject == null) - // return null; - if (subject.getPrincipals(X500Principal.class).size() != 1) - return null; - Principal principal = subject.getPrincipals(X500Principal.class) - .iterator().next(); - return principal.getName(); - - } - - public final static String getDisplayName(Subject subject) { - return getAuthorization(subject).toString(); - } - - public final static Authorization getAuthorization(Subject subject) { - return subject.getPrivateCredentials(Authorization.class).iterator() - .next(); - } - - public final static Set roles() { - Set roles = Collections.synchronizedSet(new HashSet()); - Subject subject = Subject.getSubject(AccessController.getContext()); - if (subject == null) - throw new ArgeoException("Not authenticated."); - X500Principal userPrincipal = subject - .getPrincipals(X500Principal.class).iterator().next(); - roles.add(userPrincipal.getName()); - for (Principal group : subject.getPrincipals(Group.class)) { - roles.add(group.getName()); - } - return roles; - } -}