1 package org
.argeo
.security
.ui
.internal
;
3 import java
.security
.AccessController
;
4 import java
.security
.Principal
;
5 import java
.util
.Collections
;
6 import java
.util
.HashSet
;
9 import javax
.security
.auth
.Subject
;
11 import org
.argeo
.ArgeoException
;
12 import org
.springframework
.security
.Authentication
;
13 import org
.springframework
.security
.GrantedAuthority
;
15 public class CurrentUser
{
16 public final static String
getUsername() {
17 Subject subject
= getSubject();
20 Principal principal
= subject
.getPrincipals().iterator().next();
21 return principal
.getName();
25 public final static Set
<String
> roles() {
26 Principal principal
= getSubject().getPrincipals().iterator().next();
27 Authentication authentication
= (Authentication
) principal
;
28 Set
<String
> roles
= Collections
.synchronizedSet(new HashSet
<String
>());
29 for (GrantedAuthority ga
: authentication
.getAuthorities()) {
30 roles
.add(ga
.getAuthority());
32 return Collections
.unmodifiableSet(roles
);
35 public final static Subject
getSubject() {
37 Subject subject
= Subject
.getSubject(AccessController
.getContext());
39 throw new ArgeoException("Not authenticated.");