Remove dependency to Spring Security
[lgpl/argeo-commons.git] / org.argeo.security.ui / src / org / argeo / security / ui / internal / CurrentUser.java
index f5a242d3a4a514420b3b560d60ba848921c0364a..73932a7a460991d6b366c85a673337e256a6d69e 100644 (file)
  */
 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<String> roles() {
-               Set<String> roles = Collections.synchronizedSet(new HashSet<String>());
-               // 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<String> roles() {
-       // Set<String> roles = Collections.synchronizedSet(new HashSet<String>());
-       // 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<Authentication> 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();
        }
 }