]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - org.argeo.security.core/src/org/argeo/security/SecurityUtils.java
Use GrantedAuthority implementing Principal in order to optimise Jackrabbit login
[lgpl/argeo-commons.git] / org.argeo.security.core / src / org / argeo / security / SecurityUtils.java
index e5b8ae79cacc9019fcb8cc717e275ca6f4b55c84..8c6715446a96ec78cff35bd0176f3584ffadab69 100644 (file)
 package org.argeo.security;
 
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
+import java.util.UUID;
 
-import org.springframework.security.Authentication;
-import org.springframework.security.GrantedAuthority;
-import org.springframework.security.context.SecurityContext;
-import org.springframework.security.context.SecurityContextHolder;
-import org.springframework.security.providers.anonymous.AnonymousAuthenticationToken;
+import org.springframework.security.authentication.AnonymousAuthenticationToken;
+import org.springframework.security.core.Authentication;
+import org.springframework.security.core.GrantedAuthority;
+import org.springframework.security.core.context.SecurityContext;
+import org.springframework.security.core.context.SecurityContextHolder;
 
 /** Static utilities */
-public class SecurityUtils {
+public final class SecurityUtils {
+       private final static String systemKey = UUID.randomUUID().toString();
 
        private SecurityUtils() {
        }
 
+       /**
+        * @return a String which is guaranteed to be unique between and constant
+        *         within a Java static context (typically a VM launch)
+        */
+       public final static String getStaticKey() {
+               return systemKey;
+       }
+
        /** Whether the current thread has the admin role */
        public static boolean hasCurrentThreadAuthority(String authority) {
                SecurityContext securityContext = SecurityContextHolder.getContext();
@@ -89,7 +100,7 @@ public class SecurityUtils {
         * read-only list of strings, for portability and integration
         */
        public static List<String> authoritiesToStringList(
-                       GrantedAuthority[] authorities) {
+                       Collection<? extends GrantedAuthority> authorities) {
                List<String> lst = new ArrayList<String>();
                for (GrantedAuthority ga : authorities)
                        lst.add(ga.getAuthority());