SPNEGO support
[lgpl/argeo-commons.git] / org.argeo.cms / src / org / argeo / cms / auth / CmsAuthUtils.java
index 6dae68d1d9a4095d8a5ff161823c8084eec27b53..fb7a6123acba9bc94677c8caab12f37ae78ab9a1 100644 (file)
@@ -214,6 +214,15 @@ class CmsAuthUtils {
                return true;
        }
 
+       public static <T extends Principal> T getSinglePrincipal(Subject subject, Class<T> clss) {
+               Set<T> principals = subject.getPrincipals(clss);
+               if (principals.isEmpty())
+                       return null;
+               if (principals.size() > 1)
+                       throw new IllegalStateException("Only one " + clss + " principal expected in " + subject);
+               return principals.iterator().next();
+       }
+
        private CmsAuthUtils() {
 
        }