Search in sources :

Example 11 with Group

use of org.apache.jackrabbit.api.security.user.Group in project jackrabbit-oak by apache.

the class UserQueryManagerTest method testQueryNameMatchesWithUnderscorePrincipalName.

@Test
public void testQueryNameMatchesWithUnderscorePrincipalName() throws Exception {
    Group g = createGroup("g", new PrincipalImpl("group_with_underscore"));
    root.commit();
    Query q = new Query() {

        @Override
        public <T> void build(QueryBuilder<T> builder) {
            builder.setCondition(builder.nameMatches("group_with_underscore"));
        }
    };
    Iterator<Authorizable> result = queryMgr.findAuthorizables(q);
    assertResultContainsAuthorizables(result, g);
}
Also used : Group(org.apache.jackrabbit.api.security.user.Group) Query(org.apache.jackrabbit.api.security.user.Query) Authorizable(org.apache.jackrabbit.api.security.user.Authorizable) QueryBuilder(org.apache.jackrabbit.api.security.user.QueryBuilder) PrincipalImpl(org.apache.jackrabbit.oak.spi.security.principal.PrincipalImpl) AbstractSecurityTest(org.apache.jackrabbit.oak.AbstractSecurityTest) Test(org.junit.Test)

Example 12 with Group

use of org.apache.jackrabbit.api.security.user.Group in project jackrabbit-oak by apache.

the class UserManagerTest method testCreateGroupWithExistingPrincipal3.

@Test
public void testCreateGroupWithExistingPrincipal3() throws RepositoryException, NotExecutableException {
    Principal p = getTestPrincipal();
    String uid = createUserId();
    assertFalse(uid.equals(p.getName()));
    User u = null;
    try {
        // create a user with the given ID
        u = userMgr.createUser(uid, "pw", p, null);
        superuser.save();
        // assert AuthorizableExistsException for principal that is already in use
        Group gr = null;
        try {
            gr = userMgr.createGroup(createGroupId(), p, null);
            fail("Principal " + p.getName() + " is already in use -> must throw AuthorizableExistsException.");
        } catch (AuthorizableExistsException e) {
        // expected this
        } finally {
            if (gr != null) {
                gr.remove();
                superuser.save();
            }
        }
    } finally {
        if (u != null) {
            u.remove();
            superuser.save();
        }
    }
}
Also used : Group(org.apache.jackrabbit.api.security.user.Group) AuthorizableExistsException(org.apache.jackrabbit.api.security.user.AuthorizableExistsException) User(org.apache.jackrabbit.api.security.user.User) Principal(java.security.Principal) EveryonePrincipal(org.apache.jackrabbit.oak.spi.security.principal.EveryonePrincipal) Test(org.junit.Test)

Example 13 with Group

use of org.apache.jackrabbit.api.security.user.Group in project jackrabbit-oak by apache.

the class UserManagerTest method testCreateGroupIdDifferentFromPrincipalName.

@Test
public void testCreateGroupIdDifferentFromPrincipalName() throws RepositoryException, NotExecutableException {
    Group g = null;
    try {
        Principal p = getTestPrincipal();
        g = userMgr.createGroup("testGroup", p, null);
        superuser.save();
        String msg = "Creating a Group with principal-name distinct from Principal-name must succeed as long as both are unique.";
        assertEquals(msg, g.getID(), "testGroup");
        assertEquals(msg, p.getName(), g.getPrincipal().getName());
        assertFalse(msg, g.getID().equals(g.getPrincipal().getName()));
    } finally {
        if (g != null) {
            g.remove();
            superuser.save();
        }
    }
}
Also used : Group(org.apache.jackrabbit.api.security.user.Group) Principal(java.security.Principal) EveryonePrincipal(org.apache.jackrabbit.oak.spi.security.principal.EveryonePrincipal) Test(org.junit.Test)

Example 14 with Group

use of org.apache.jackrabbit.api.security.user.Group in project jackrabbit-oak by apache.

the class UserQueryTest method setUp.

@Override
public void setUp() throws Exception {
    super.setUp();
    Iterator<Authorizable> systemAuthorizables = userMgr.findAuthorizables("rep:principalName", null);
    while (systemAuthorizables.hasNext()) {
        Authorizable authorizable = systemAuthorizables.next();
        if (authorizable.isGroup()) {
            groups.add((Group) authorizable);
        } else {
            users.add((User) authorizable);
        }
        systemDefined.add(authorizable);
    }
    Group animals = createGroup("animals");
    Group invertebrates = createGroup("invertebrates");
    Group arachnids = createGroup("arachnids");
    Group insects = createGroup("insects");
    vertebrates = createGroup("vertebrates");
    mammals = createGroup("mammals");
    apes = createGroup("apes");
    Group reptiles = createGroup("reptiles");
    Group birds = createGroup("birds");
    Group amphibians = createGroup("amphibians");
    animals.addMember(invertebrates);
    animals.addMember(vertebrates);
    invertebrates.addMember(arachnids);
    invertebrates.addMember(insects);
    vertebrates.addMember(mammals);
    vertebrates.addMember(reptiles);
    vertebrates.addMember(birds);
    vertebrates.addMember(amphibians);
    mammals.addMember(apes);
    User blackWidow = createUser("black widow", "flies", 2, false);
    User gardenSpider = createUser("garden spider", "flies", 2, false);
    User jumpingSpider = createUser("jumping spider", "insects", 1, false);
    addMembers(arachnids, blackWidow, gardenSpider, jumpingSpider);
    User ant = createUser("ant", "leaves", 0.5, false);
    User bee = createUser("bee", "honey", 2.5, true);
    User fly = createUser("fly", "dirt", 1.3, false);
    addMembers(insects, ant, bee, fly);
    User jackrabbit = createUser("jackrabbit", "carrots", 2500, true);
    User backslash = createUser("foo\\bar", "characters", 2500, false);
    User deer = createUser("deer", "leaves", 120000, true);
    User opossum = createUser("opossum", "fruit", 1200, true);
    kangaroo = createUser("kangaroo", "grass", 90000, true);
    elephant = createUser("elephant", "leaves", 5000000, true);
    addMembers(mammals, jackrabbit, deer, opossum, kangaroo, elephant);
    User lemur = createUser("lemur", "nectar", 1100, true);
    User gibbon = createUser("gibbon", "meat", 20000, true);
    addMembers(apes, lemur, gibbon);
    User crocodile = createUser("crocodile", "meat", 80000, false);
    User turtle = createUser("turtle", "leaves", 10000, true);
    User lizard = createUser("lizard", "leaves", 1900, false);
    addMembers(reptiles, crocodile, turtle, lizard);
    User kestrel = createUser("kestrel", "mice", 2000, false);
    User goose = createUser("goose", "snails", 13000, true);
    User pelican = createUser("pelican", "fish", 15000, true);
    User dove = createUser("dove", "insects", 1600, false);
    addMembers(birds, kestrel, goose, pelican, dove);
    User salamander = createUser("salamander", "insects", 800, true);
    goldenToad = createUser("golden toad", "insects", 700, false);
    User poisonDartFrog = createUser("poison dart frog", "insects", 40, false);
    addMembers(amphibians, salamander, goldenToad, poisonDartFrog);
    setProperty("canFly", vf.createValue(true), bee, fly, kestrel, goose, pelican, dove);
    setProperty("poisonous", vf.createValue(true), blackWidow, bee, poisonDartFrog);
    setProperty("poisonous", vf.createValue(false), turtle, lemur);
    setProperty("hasWings", vf.createValue(false), blackWidow, gardenSpider, jumpingSpider, ant, jackrabbit, deer, opossum, kangaroo, elephant, lemur, gibbon, crocodile, turtle, lizard, salamander, goldenToad, poisonDartFrog);
    setProperty("color", vf.createValue("black"), blackWidow, gardenSpider, ant, fly, lizard, salamander);
    setProperty("color", vf.createValue("WHITE"), opossum, goose, pelican, dove);
    setProperty("color", vf.createValue("gold"), goldenToad);
    setProperty("numberOfLegs", vf.createValue(2), kangaroo, gibbon, kestrel, goose, dove);
    setProperty("numberOfLegs", vf.createValue(4), jackrabbit, deer, opossum, elephant, lemur, crocodile, turtle, lizard, salamander, goldenToad, poisonDartFrog);
    setProperty("numberOfLegs", vf.createValue(6), ant, bee, fly);
    setProperty("numberOfLegs", vf.createValue(8), blackWidow, gardenSpider, jumpingSpider);
    // testing ignore-case with sort order
    setProperty("continent", vf.createValue("africa"), lemur, gibbon);
    setProperty("continent", vf.createValue("Africa"), elephant);
    setProperty("continent", vf.createValue("australia"), kangaroo);
    setProperty("continent", vf.createValue("America"), opossum);
    elephant.getImpersonation().grantImpersonation(jackrabbit.getPrincipal());
    elephant.getImpersonation().grantImpersonation(backslash.getPrincipal());
    authorizables.addAll(users);
    authorizables.addAll(groups);
    if (!userMgr.isAutoSave()) {
        superuser.save();
    }
}
Also used : Group(org.apache.jackrabbit.api.security.user.Group) User(org.apache.jackrabbit.api.security.user.User) Authorizable(org.apache.jackrabbit.api.security.user.Authorizable)

Example 15 with Group

use of org.apache.jackrabbit.api.security.user.Group in project jackrabbit-oak by apache.

the class UserManagerTest method testCreateGroupWithInvalidIdOrPrincipal.

@Test
public void testCreateGroupWithInvalidIdOrPrincipal() throws RepositoryException, NotExecutableException {
    Principal p = getTestPrincipal();
    String uid = p.getName();
    Principal emptyNamePrincipal = new PrincipalImpl("");
    Map<String, Principal> fail = new HashMap<String, Principal>();
    fail.put(uid, null);
    fail.put(uid, emptyNamePrincipal);
    fail.put(null, p);
    fail.put("", p);
    for (String id : fail.keySet()) {
        Group g = null;
        try {
            Principal princ = fail.get(id);
            g = userMgr.createGroup(id, princ, null);
            fail("Creating group with id '" + id + "' and principal '" + princ.getName() + "' should fail");
        } catch (IllegalArgumentException e) {
        // success
        } finally {
            if (g != null) {
                g.remove();
                superuser.save();
            }
        }
    }
}
Also used : Group(org.apache.jackrabbit.api.security.user.Group) HashMap(java.util.HashMap) Principal(java.security.Principal) EveryonePrincipal(org.apache.jackrabbit.oak.spi.security.principal.EveryonePrincipal) PrincipalImpl(org.apache.jackrabbit.oak.spi.security.principal.PrincipalImpl) Test(org.junit.Test)

Aggregations

Group (org.apache.jackrabbit.api.security.user.Group)391 Test (org.junit.Test)205 Authorizable (org.apache.jackrabbit.api.security.user.Authorizable)119 User (org.apache.jackrabbit.api.security.user.User)119 UserManager (org.apache.jackrabbit.api.security.user.UserManager)87 Principal (java.security.Principal)71 RepositoryException (javax.jcr.RepositoryException)53 AbstractSecurityTest (org.apache.jackrabbit.oak.AbstractSecurityTest)35 ExternalGroup (org.apache.jackrabbit.oak.spi.security.authentication.external.ExternalGroup)33 ArrayList (java.util.ArrayList)31 Session (javax.jcr.Session)29 JackrabbitSession (org.apache.jackrabbit.api.JackrabbitSession)27 EveryonePrincipal (org.apache.jackrabbit.oak.spi.security.principal.EveryonePrincipal)26 AbstractExternalAuthTest (org.apache.jackrabbit.oak.spi.security.authentication.external.AbstractExternalAuthTest)22 PrincipalImpl (org.apache.jackrabbit.oak.spi.security.principal.PrincipalImpl)22 HashSet (java.util.HashSet)21 Privilege (javax.jcr.security.Privilege)21 EveryonePrincipal (org.apache.jackrabbit.core.security.principal.EveryonePrincipal)21 Query (org.apache.jackrabbit.api.security.user.Query)19 TestPrincipal (org.apache.jackrabbit.core.security.TestPrincipal)18