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);
}
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();
}
}
}
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();
}
}
}
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();
}
}
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();
}
}
}
}
Aggregations