X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Fauth%2FCurrentUser.java;h=8aa08728b79846eace2b4e970c6223de4ef5fa34;hb=af92248d40838cc61209df352ea2d8d8142870cc;hp=5a65fcb112da76ce012f1f67f8e2771f5f2d36a4;hpb=0a7d938324d33848ac7dc4ef4007c73a714171ee;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms/src/org/argeo/cms/auth/CurrentUser.java b/org.argeo.cms/src/org/argeo/cms/auth/CurrentUser.java index 5a65fcb11..8aa08728b 100644 --- a/org.argeo.cms/src/org/argeo/cms/auth/CurrentUser.java +++ b/org.argeo.cms/src/org/argeo/cms/auth/CurrentUser.java @@ -43,15 +43,23 @@ public final class CurrentUser { return getDisplayName(currentSubject()); } + public static boolean isAnonymous() { + return isAnonymous(currentSubject()); + } + + public static boolean isAnonymous(Subject subject) { + String username = getUsername(subject); + return username == null + || username.equalsIgnoreCase(AuthConstants.ROLE_ANONYMOUS); + } + private static Subject currentSubject() { + CmsView cmsView = CmsUtils.getCmsView(); + if (cmsView != null) + return cmsView.getSubject(); Subject subject = Subject.getSubject(AccessController.getContext()); if (subject != null) return subject; - if (subject == null) { - CmsView cmsView = CmsUtils.getCmsView(); - if (cmsView != null) - return cmsView.getSubject(); - } throw new CmsException("Cannot find related subject"); }