X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=security%2Fruntime%2Forg.argeo.security.jackrabbit%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fsecurity%2Fjackrabbit%2FArgeoLoginModule.java;h=a83b6d56b4e9a5708925d5d1ffec302b4dfec958;hb=8b78007039ccb1f19d498742a64cf62435e8b093;hp=73ec76a8f7c72b83c18a1de5b7390fa6a7b68bd9;hpb=019e0f2af17286be08ab17c1c9e1d8ba871ec9b2;p=lgpl%2Fargeo-commons.git diff --git a/security/runtime/org.argeo.security.jackrabbit/src/main/java/org/argeo/security/jackrabbit/ArgeoLoginModule.java b/security/runtime/org.argeo.security.jackrabbit/src/main/java/org/argeo/security/jackrabbit/ArgeoLoginModule.java index 73ec76a8f..a83b6d56b 100644 --- a/security/runtime/org.argeo.security.jackrabbit/src/main/java/org/argeo/security/jackrabbit/ArgeoLoginModule.java +++ b/security/runtime/org.argeo.security.jackrabbit/src/main/java/org/argeo/security/jackrabbit/ArgeoLoginModule.java @@ -50,6 +50,7 @@ public class ArgeoLoginModule extends AbstractLoginModule { principals.add(new AnonymousPrincipal()); else for (GrantedAuthority ga : authen.getAuthorities()) { + principals.add(new GrantedAuthorityPrincipal(ga)); // FIXME: make it more generic if (adminRole.equals(ga.getAuthority())) principals.add(new AdminPrincipal(authen.getName())); @@ -69,21 +70,22 @@ public class ArgeoLoginModule extends AbstractLoginModule { */ @Override public boolean logout() throws LoginException { - Set adminPrincipals = subject - .getPrincipals(AdminPrincipal.class); - Set anonymousPrincipals = subject - .getPrincipals(AnonymousPrincipal.class); + clearPrincipals(AdminPrincipal.class); + clearPrincipals(AnonymousPrincipal.class); + clearPrincipals(GrantedAuthorityPrincipal.class); Set thisCredentials = subject .getPublicCredentials(SimpleCredentials.class); if (thisCredentials != null) thisCredentials.clear(); - if (adminPrincipals != null) - adminPrincipals.clear(); - if (anonymousPrincipals != null) - anonymousPrincipals.clear(); return true; } + private void clearPrincipals(Class clss) { + Set principals = subject.getPrincipals(clss); + if (principals != null) + principals.clear(); + } + @SuppressWarnings("rawtypes") @Override protected void doInit(CallbackHandler callbackHandler, Session session,