From: Mathieu Baudier Date: Sat, 14 Feb 2015 16:55:56 +0000 (+0000) Subject: Current user based on pure Spring Security X-Git-Tag: argeo-commons-2.1.30~353 X-Git-Url: http://git.argeo.org/?a=commitdiff_plain;h=648a4c267ac50861ce094c8f968c4652706b6cca;p=lgpl%2Fargeo-commons.git Current user based on pure Spring Security git-svn-id: https://svn.argeo.org/commons/trunk@7873 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- 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 944bc2321..b7287f66c 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,30 +15,30 @@ */ package org.argeo.security.ui.internal; -import java.security.AccessController; -import java.security.Principal; import java.util.Collections; import java.util.HashSet; import java.util.Set; -import javax.security.auth.Subject; - -import org.argeo.ArgeoException; import org.springframework.security.core.Authentication; import org.springframework.security.core.GrantedAuthority; +import org.springframework.security.core.context.SecurityContextHolder; /** * Retrieves information about the current user. Not an API, can change without * notice. */ public class CurrentUser { - public final static String getUsername() { - Subject subject = getSubject(); - if (subject == null) - return null; - Principal principal = subject.getPrincipals().iterator().next(); - return principal.getName(); + // public final static String getUsername() { + // Subject subject = getSubject(); + // if (subject == null) + // return null; + // Principal principal = subject.getPrincipals().iterator().next(); + // return principal.getName(); + // + // } + public final static String getUsername() { + return getAuthentication().getName(); } public final static Set roles() { @@ -51,20 +51,24 @@ public class CurrentUser { } 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"); + return SecurityContextHolder.getContext().getAuthentication(); } - public final static Subject getSubject() { - Subject subject = Subject.getSubject(AccessController.getContext()); - if (subject == null) - throw new ArgeoException("Not authenticated."); - return subject; - } + // 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; + // } }