public PrincipalIterator getGroupMembership(Principal principal) { if (principal instanceof EveryonePrincipal) { return PrincipalIteratorAdapter.EMPTY; } else { return new PrincipalIteratorAdapter(Collections.singletonList(EveryonePrincipal.getInstance())); } }
private SimplePrincipalProvider() { if (adminID != null) { principals.put(adminID, new AdminPrincipal(adminID)); } if (anonymID != null) { principals.put(anonymID, new AnonymousPrincipal()); } EveryonePrincipal everyone = EveryonePrincipal.getInstance(); principals.put(everyone.getName(), everyone); }
/** * @see org.apache.jackrabbit.core.security.principal.AbstractPrincipalIterator#seekNext() */ @Override protected Principal seekNext() { while (authorizableItr.hasNext()) { try { Principal p = authorizableItr.next().getPrincipal(); if (everyonePrincipal.equals(p)) { addEveryone = false; } addToCache(p); return p; } catch (RepositoryException e) { // should never get here log.warn("Error while retrieving principal from group -> skip."); } } if (addEveryone) { addEveryone = false; // make sure iteration stops return everyonePrincipal; } else { // end of iteration reached return null; } } }
/** * @param simpleFilter Principal name or fragment. * @return An iterator over the main principals of the authorizables found * by the user manager. */ private PrincipalIterator findGroupPrincipals(final String simpleFilter) { synchronized (userManager) { try { Iterator<Authorizable> itr = userManager.findAuthorizables(pPrincipalName, simpleFilter, UserManager.SEARCH_TYPE_GROUP); // everyone will not be found by the user manager -> extra test boolean addEveryone = everyonePrincipal.getName().matches(".*"+simpleFilter+".*"); return new PrincipalIteratorImpl(itr, addEveryone); } catch (RepositoryException e) { log.error("Error while searching group principals.", e); return PrincipalIteratorAdapter.EMPTY; } } }
/** * @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); }
/** * @param simpleFilter Principal name or fragment. * @return An iterator over the main principals of the authorizables found * by the user manager. */ private PrincipalIterator findGroupPrincipals(final String simpleFilter) { synchronized (userManager) { try { Iterator<Authorizable> itr = userManager.findAuthorizables(pPrincipalName, simpleFilter, UserManager.SEARCH_TYPE_GROUP); // everyone will not be found by the user manager -> extra test boolean addEveryone = everyonePrincipal.getName().matches(".*"+simpleFilter+".*"); return new PrincipalIteratorImpl(itr, addEveryone); } catch (RepositoryException e) { log.error("Error while searching group principals.", e); return PrincipalIteratorAdapter.EMPTY; } } }
/** * @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); }
public PrincipalIterator getGroupMembership(Principal principal) { if (principal instanceof EveryonePrincipal) { return PrincipalIteratorAdapter.EMPTY; } else { return new PrincipalIteratorAdapter(Collections.singletonList(EveryonePrincipal.getInstance())); } }
private SimplePrincipalProvider() { if (adminID != null) { principals.put(adminID, new AdminPrincipal(adminID)); } if (anonymID != null) { principals.put(anonymID, new AnonymousPrincipal()); } EveryonePrincipal everyone = EveryonePrincipal.getInstance(); principals.put(everyone.getName(), everyone); }
/** * @see org.apache.jackrabbit.core.security.principal.AbstractPrincipalIterator#seekNext() */ @Override protected Principal seekNext() { while (authorizableItr.hasNext()) { try { Principal p = authorizableItr.next().getPrincipal(); if (everyonePrincipal.equals(p)) { addEveryone = false; } addToCache(p); return p; } catch (RepositoryException e) { // should never get here log.warn("Error while retrieving principal from group -> skip."); } } if (addEveryone) { addEveryone = false; // make sure iteration stops return everyonePrincipal; } else { // end of iteration reached return null; } } }
public PrincipalIterator getPrincipals(int searchType) { PrincipalIterator it; switch (searchType) { case PrincipalManager.SEARCH_TYPE_GROUP: it = new PrincipalIteratorAdapter(Collections.singletonList(EveryonePrincipal.getInstance())); break; case PrincipalManager.SEARCH_TYPE_NOT_GROUP: Set<Principal> set = new HashSet<Principal>(principals.values()); set.remove(EveryonePrincipal.getInstance()); it = new PrincipalIteratorAdapter(set); break; case PrincipalManager.SEARCH_TYPE_ALL: it = new PrincipalIteratorAdapter(principals.values()); break; // no default default: throw new IllegalArgumentException("Unknown search type " + searchType); } return it; }
/** * {@inheritDoc} */ @Override public void init( Properties options ) { adminId = options.getProperty( KEY_ADMIN_ID, SecurityConstants.ADMIN_ID ); adminPrincipal = new AdminPrincipal( adminId ); adminRole = options.getProperty( KEY_ADMIN_ROLE, SecurityConstants.ADMINISTRATORS_NAME ); adminRolePrincipal = new SpringSecurityRolePrincipal( adminRole ); anonymousId = options.getProperty( KEY_ANONYMOUS_ID, SecurityConstants.ANONYMOUS_ID ); principals.put( adminId, adminPrincipal ); principals.put( adminRole, adminRolePrincipal ); ArrayList<SpringSecurityRolePrincipal> assignedAdminRoles = new ArrayList<SpringSecurityRolePrincipal>(); assignedAdminRoles.add( adminRolePrincipal ); roleAssignments.put( adminId, assignedAdminRoles ); principals.put( anonymousId, anonymousPrincipal ); EveryonePrincipal everyone = EveryonePrincipal.getInstance(); principals.put( everyone.getName(), everyone ); }
public PrincipalIterator getPrincipals(int searchType) { PrincipalIterator it; switch (searchType) { case PrincipalManager.SEARCH_TYPE_GROUP: it = new PrincipalIteratorAdapter(Collections.singletonList(EveryonePrincipal.getInstance())); break; case PrincipalManager.SEARCH_TYPE_NOT_GROUP: Set<Principal> set = new HashSet<Principal>(principals.values()); set.remove(EveryonePrincipal.getInstance()); it = new PrincipalIteratorAdapter(set); break; case PrincipalManager.SEARCH_TYPE_ALL: it = new PrincipalIteratorAdapter(principals.values()); break; // no default default: throw new IllegalArgumentException("Unknown search type " + searchType); } return it; }
@Test public void getPrincipal_Everyone() throws Exception { Principal principal = provider.getPrincipal( EveryonePrincipal.getInstance().getName() ); assertEquals( principal, EveryonePrincipal.getInstance() ); }
/** * {@inheritDoc} */ public Principal getEveryone() { checkIsValid(); Principal everyone = getPrincipal(EveryonePrincipal.NAME); if (everyone == null) { everyone = EveryonePrincipal.getInstance(); } return everyone; }
} else if ( anonymousId.equals( principalName ) ) { return anonymousPrincipal; } else if ( EveryonePrincipal.getInstance().getName().equals( principalName ) ) { return EveryonePrincipal.getInstance(); } else {
/** * {@inheritDoc} */ public Principal getEveryone() { checkIsValid(); Principal everyone = getPrincipal(EveryonePrincipal.NAME); if (everyone == null) { everyone = EveryonePrincipal.getInstance(); } return everyone; }
public void testEveryonePrincipal() { Principal everyone = EveryonePrincipal.getInstance(); assertEquals(EveryonePrincipal.NAME, everyone.getName()); assertEquals(everyone, EveryonePrincipal.getInstance()); }
groups.add( EveryonePrincipal.getInstance() ); if ( logger.isTraceEnabled() ) { logger.trace( "group membership for principal=" + principal + " is " + groups ); //$NON-NLS-1$ //$NON-NLS-2$
new HashSet<Principal>( roleAssignments.containsKey( principal.getName() ) ? roleAssignments.get( principal .getName() ) : new HashSet<Principal>() ); principals.add( EveryonePrincipal.getInstance() ); if ( principal instanceof AdminPrincipal ) { principals.add( adminRolePrincipal );