X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.security.ui%2Fsrc%2Forg%2Fargeo%2Fsecurity%2Fui%2Finternal%2FCurrentUser.java;fp=org.argeo.security.ui%2Fsrc%2Forg%2Fargeo%2Fsecurity%2Fui%2Finternal%2FCurrentUser.java;h=73932a7a460991d6b366c85a673337e256a6d69e;hb=86140b8db15a11cfd942892eface6a4f90329a41;hp=f5a242d3a4a514420b3b560d60ba848921c0364a;hpb=2b3904582518de706357fd2a8216a47ca77dfc39;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.security.ui/src/org/argeo/security/ui/internal/CurrentUser.java b/org.argeo.security.ui/src/org/argeo/security/ui/internal/CurrentUser.java index f5a242d3a..73932a7a4 100644 --- a/org.argeo.security.ui/src/org/argeo/security/ui/internal/CurrentUser.java +++ b/org.argeo.security.ui/src/org/argeo/security/ui/internal/CurrentUser.java @@ -15,17 +15,9 @@ */ package org.argeo.security.ui.internal; -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.argeo.security.SecurityUtils; /** * Retrieves information about the current user. Not an API, can change without @@ -33,60 +25,10 @@ import org.argeo.ArgeoException; */ public class CurrentUser { public final static String getUsername() { - Subject subject = getSubject(); - if (subject == null) - return null; - Principal principal = subject.getPrincipals(X500Principal.class) - .iterator().next(); - return principal.getName(); - + return SecurityUtils.getUsername(); } public final static Set roles() { - Set roles = Collections.synchronizedSet(new HashSet()); - // roles.add("ROLE_USER"); - Subject subject = getSubject(); - 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; - } - - // public final static String getUsername() { - // return getAuthentication().getName(); - // } - - // public final static Set roles() { - // Set roles = Collections.synchronizedSet(new HashSet()); - // Authentication authentication = getAuthentication(); - // for (GrantedAuthority ga : authentication.getAuthorities()) { - // roles.add(ga.getAuthority()); - // } - // return Collections.unmodifiableSet(roles); - // } - // - // public final static Authentication getAuthentication() { - // return SecurityContextHolder.getContext().getAuthentication(); - // } - - // public final static Authentication getAuthentication() { - // Set authens = getSubject().getPrincipals( - // Authentication.class); - // if (authens != null && !authens.isEmpty()) { - // Principal principal = authens.iterator().next(); - // Authentication authentication = (Authentication) principal; - // return authentication; - // } - // throw new ArgeoException("No authentication found"); - // } - - public final static Subject getSubject() { - Subject subject = Subject.getSubject(AccessController.getContext()); - if (subject == null) - throw new ArgeoException("Not authenticated."); - return subject; + return SecurityUtils.roles(); } }