1 package org
.argeo
.security
.equinox
;
3 import java
.security
.Principal
;
4 import java
.util
.Collections
;
5 import java
.util
.HashSet
;
8 import javax
.security
.auth
.Subject
;
10 import org
.eclipse
.equinox
.security
.auth
.ILoginContext
;
11 import org
.eclipse
.equinox
.security
.auth
.LoginContextFactory
;
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 private final static ILoginContext
getLoginContext() {
36 return EquinoxSecurity
.getLoginContext();
37 // return LoginContextFactory
38 // .createContext(EquinoxSecurity.CONTEXT_SPRING);
41 // private static void login() {
43 // getLoginContext().login();
44 // } catch (LoginException e) {
45 // throw new RuntimeException("Cannot login", e);
49 public final static Subject
getSubject() {
51 Subject subject
= null;
52 // subject = Subject.getSubject(AccessController.getContext());
54 getLoginContext().login();
55 subject
= getLoginContext().getSubject();
56 } catch (Exception e
) {
57 throw new RuntimeException("Cannot retrieve subject", e
);