]> git.argeo.org Git - lgpl/argeo-commons.git/blob - SecurityUtils.java
d50c9b78a8b6345f156ec2ebd0afd51e460a9cfd
[lgpl/argeo-commons.git] / SecurityUtils.java
1 package org.argeo.security;
2
3 import org.springframework.security.Authentication;
4 import org.springframework.security.GrantedAuthority;
5 import org.springframework.security.context.SecurityContext;
6 import org.springframework.security.context.SecurityContextHolder;
7 import org.springframework.security.providers.anonymous.AnonymousAuthenticationToken;
8
9 /** Static utilities */
10 public class SecurityUtils {
11
12 private SecurityUtils() {
13 }
14
15 /** Whether the current thread has the admin role */
16 public static boolean hasCurrentThreadAuthority(String authority) {
17 SecurityContext securityContext = SecurityContextHolder.getContext();
18 if (securityContext != null) {
19 Authentication authentication = securityContext.getAuthentication();
20 if (authentication != null) {
21 for (GrantedAuthority ga : authentication.getAuthorities())
22 if (ga.getAuthority().equals(authority))
23 return true;
24 }
25 }
26 return false;
27 }
28
29 /**
30 * @return the authenticated username or null if not authenticated /
31 * anonymous
32 */
33 public static String getCurrentThreadUsername() {
34 SecurityContext securityContext = SecurityContextHolder.getContext();
35 if (securityContext != null) {
36 Authentication authentication = securityContext.getAuthentication();
37 if (authentication != null) {
38 if (authentication instanceof AnonymousAuthenticationToken) {
39 return null;
40 }
41 return authentication.getName();
42 }
43 }
44 return null;
45 }
46 }