X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Fauth%2FCmsAuthUtils.java;h=fb7a6123acba9bc94677c8caab12f37ae78ab9a1;hb=3714331f776988facff3632d86ad3f6d6352220c;hp=6dae68d1d9a4095d8a5ff161823c8084eec27b53;hpb=c643dda1e6d1ccde18dc859ffae26d01cbbe87cf;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms/src/org/argeo/cms/auth/CmsAuthUtils.java b/org.argeo.cms/src/org/argeo/cms/auth/CmsAuthUtils.java index 6dae68d1d..fb7a6123a 100644 --- a/org.argeo.cms/src/org/argeo/cms/auth/CmsAuthUtils.java +++ b/org.argeo.cms/src/org/argeo/cms/auth/CmsAuthUtils.java @@ -214,6 +214,15 @@ class CmsAuthUtils { return true; } + public static T getSinglePrincipal(Subject subject, Class clss) { + Set 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() { }