/** * @see PrincipalProvider#getGroupMembership(Principal) */ public PrincipalIterator getGroupMembership(Principal userPrincipal) { checkInitialized(); Set<Principal> mship = collectGroupMembership(userPrincipal); // make sure everyone-group is not missing if (!mship.contains(everyonePrincipal) && everyonePrincipal.isMember(userPrincipal)) { mship.add(everyonePrincipal); } return new PrincipalIteratorAdapter(mship); }
/** * @see PrincipalProvider#getGroupMembership(Principal) */ public PrincipalIterator getGroupMembership(Principal userPrincipal) { checkInitialized(); Set<Principal> mship = collectGroupMembership(userPrincipal); // make sure everyone-group is not missing if (!mship.contains(everyonePrincipal) && everyonePrincipal.isMember(userPrincipal)) { mship.add(everyonePrincipal); } return new PrincipalIteratorAdapter(mship); }
/** * @see PrincipalProvider#canReadPrincipal(javax.jcr.Session,java.security.Principal) */ public boolean canReadPrincipal(Session session, Principal principal) { checkInitialized(); // check if the session can read the user/group associated with the // given principal if (session instanceof SessionImpl) { SessionImpl sImpl = (SessionImpl) session; if (sImpl.isAdmin() || sImpl.isSystem()) { return true; } try { UserManager umgr = sImpl.getUserManager(); return umgr.getAuthorizable(principal) != null; } catch (RepositoryException e) { log.error("Failed to determine accessibility of Principal {}", principal, e); } } return false; }
/** * @see PrincipalProvider#canReadPrincipal(javax.jcr.Session,java.security.Principal) */ public boolean canReadPrincipal(Session session, Principal principal) { checkInitialized(); // check if the session can read the user/group associated with the // given principal if (session instanceof SessionImpl) { SessionImpl sImpl = (SessionImpl) session; if (sImpl.isAdmin() || sImpl.isSystem()) { return true; } try { UserManager umgr = sImpl.getUserManager(); return umgr.getAuthorizable(principal) != null; } catch (RepositoryException e) { log.error("Failed to determine accessibility of Principal {}", principal, e); } } return false; }
/** * @see PrincipalProvider#findPrincipals(String, int) */ public PrincipalIterator findPrincipals(String simpleFilter, int searchType) { checkInitialized(); switch (searchType) { case PrincipalManager.SEARCH_TYPE_GROUP: return findGroupPrincipals(simpleFilter); case PrincipalManager.SEARCH_TYPE_NOT_GROUP: return findUserPrincipals(simpleFilter); case PrincipalManager.SEARCH_TYPE_ALL: PrincipalIterator[] its = new PrincipalIterator[] { findUserPrincipals(simpleFilter), findGroupPrincipals(simpleFilter) }; return new PrincipalIteratorAdapter(new IteratorChain(its)); default: throw new IllegalArgumentException("Invalid searchType"); } }
/** * @see PrincipalProvider#findPrincipals(String, int) */ public PrincipalIterator findPrincipals(String simpleFilter, int searchType) { checkInitialized(); switch (searchType) { case PrincipalManager.SEARCH_TYPE_GROUP: return findGroupPrincipals(simpleFilter); case PrincipalManager.SEARCH_TYPE_NOT_GROUP: return findUserPrincipals(simpleFilter); case PrincipalManager.SEARCH_TYPE_ALL: PrincipalIterator[] its = new PrincipalIterator[] { findUserPrincipals(simpleFilter), findGroupPrincipals(simpleFilter) }; return new PrincipalIteratorAdapter(new IteratorChain(its)); default: throw new IllegalArgumentException("Invalid searchType"); } }