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();
* 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());