Search in sources :

Example 1 with User

use of org.apache.jackrabbit.api.security.user.User in project camel by apache.

the class JcrAuthTestBase method createJndiContext.

@Override
protected Context createJndiContext() throws Exception {
    Context context = super.createJndiContext();
    repository = new TransientRepository(new File(REPO_PATH));
    // set up a user to authenticate
    SessionImpl session = (SessionImpl) repository.login(new SimpleCredentials("admin", "admin".toCharArray()));
    UserManager userManager = session.getUserManager();
    User user = (User) userManager.getAuthorizable("test");
    if (user == null) {
        user = userManager.createUser("test", "quatloos");
    }
    // set up permissions
    String path = session.getRootNode().getPath();
    AccessControlManager accessControlManager = session.getAccessControlManager();
    AccessControlPolicyIterator acls = accessControlManager.getApplicablePolicies(path);
    AccessControlList acl = null;
    if (acls.hasNext()) {
        acl = (AccessControlList) acls.nextAccessControlPolicy();
    } else {
        acl = (AccessControlList) accessControlManager.getPolicies(path)[0];
    }
    acl.addAccessControlEntry(user.getPrincipal(), accessControlManager.getSupportedPrivileges(path));
    accessControlManager.setPolicy(path, acl);
    session.save();
    session.logout();
    context.bind("repository", repository);
    return context;
}
Also used : Context(javax.naming.Context) AccessControlManager(javax.jcr.security.AccessControlManager) AccessControlList(javax.jcr.security.AccessControlList) SimpleCredentials(javax.jcr.SimpleCredentials) User(org.apache.jackrabbit.api.security.user.User) TransientRepository(org.apache.jackrabbit.core.TransientRepository) UserManager(org.apache.jackrabbit.api.security.user.UserManager) AccessControlPolicyIterator(javax.jcr.security.AccessControlPolicyIterator) SessionImpl(org.apache.jackrabbit.core.SessionImpl) File(java.io.File)

Example 2 with User

use of org.apache.jackrabbit.api.security.user.User in project jackrabbit by apache.

the class WriteTest method testEditor2.

public void testEditor2() throws NotExecutableException, RepositoryException {
    UserManager uMgr = getUserManager(superuser);
    User u = null;
    User u2 = null;
    try {
        u = uMgr.createUser("t", "t");
        u2 = uMgr.createUser("tt", "tt", new TestPrincipal("tt"), "t/tt");
        if (!uMgr.isAutoSave()) {
            superuser.save();
        }
        Principal p = u.getPrincipal();
        Principal p2 = u2.getPrincipal();
        if (p instanceof ItemBasedPrincipal && p2 instanceof ItemBasedPrincipal && Text.isDescendant(((ItemBasedPrincipal) p).getPath(), ((ItemBasedPrincipal) p2).getPath())) {
            JackrabbitAccessControlManager acMgr = (JackrabbitAccessControlManager) getAccessControlManager(superuser);
            JackrabbitAccessControlPolicy[] acls = acMgr.getApplicablePolicies(p2);
            acMgr.setPolicy(acls[0].getPath(), acls[0]);
            acls = acMgr.getApplicablePolicies(p);
            String path = acls[0].getPath();
            Node n = superuser.getNode(path);
            assertEquals("rep:PrincipalAccessControl", n.getPrimaryNodeType().getName());
        } else {
            throw new NotExecutableException();
        }
    } finally {
        superuser.refresh(false);
        if (u2 != null)
            u2.remove();
        if (u != null)
            u.remove();
        if (!uMgr.isAutoSave()) {
            superuser.save();
        }
    }
}
Also used : JackrabbitAccessControlManager(org.apache.jackrabbit.api.security.JackrabbitAccessControlManager) User(org.apache.jackrabbit.api.security.user.User) TestPrincipal(org.apache.jackrabbit.core.security.TestPrincipal) NotExecutableException(org.apache.jackrabbit.test.NotExecutableException) UserManager(org.apache.jackrabbit.api.security.user.UserManager) Node(javax.jcr.Node) ItemBasedPrincipal(org.apache.jackrabbit.api.security.principal.ItemBasedPrincipal) JackrabbitAccessControlPolicy(org.apache.jackrabbit.api.security.JackrabbitAccessControlPolicy) ItemBasedPrincipal(org.apache.jackrabbit.api.security.principal.ItemBasedPrincipal) TestPrincipal(org.apache.jackrabbit.core.security.TestPrincipal) Principal(java.security.Principal)

Example 3 with User

use of org.apache.jackrabbit.api.security.user.User in project jackrabbit by apache.

the class WriteTest method testEditor.

public void testEditor() throws NotExecutableException, RepositoryException {
    UserManager uMgr = getUserManager(superuser);
    User u = null;
    try {
        u = uMgr.createUser("t", "t");
        if (!uMgr.isAutoSave()) {
            superuser.save();
        }
        Principal p = u.getPrincipal();
        JackrabbitAccessControlManager acMgr = (JackrabbitAccessControlManager) getAccessControlManager(superuser);
        JackrabbitAccessControlPolicy[] acls = acMgr.getApplicablePolicies(p);
        assertEquals(1, acls.length);
        assertTrue(acls[0] instanceof ACLTemplate);
        // access again
        acls = acMgr.getApplicablePolicies(p);
        assertEquals(1, acls.length);
        assertEquals(1, acMgr.getApplicablePolicies(acls[0].getPath()).getSize());
        assertEquals(0, acMgr.getPolicies(p).length);
        assertEquals(0, acMgr.getPolicies(acls[0].getPath()).length);
        acMgr.setPolicy(acls[0].getPath(), acls[0]);
        assertEquals(0, acMgr.getApplicablePolicies(p).length);
        assertEquals(1, acMgr.getPolicies(p).length);
        assertEquals(1, acMgr.getPolicies(acls[0].getPath()).length);
    } finally {
        superuser.refresh(false);
        if (u != null) {
            u.remove();
            if (!uMgr.isAutoSave()) {
                superuser.save();
            }
        }
    }
}
Also used : JackrabbitAccessControlManager(org.apache.jackrabbit.api.security.JackrabbitAccessControlManager) User(org.apache.jackrabbit.api.security.user.User) UserManager(org.apache.jackrabbit.api.security.user.UserManager) JackrabbitAccessControlPolicy(org.apache.jackrabbit.api.security.JackrabbitAccessControlPolicy) ItemBasedPrincipal(org.apache.jackrabbit.api.security.principal.ItemBasedPrincipal) TestPrincipal(org.apache.jackrabbit.core.security.TestPrincipal) Principal(java.security.Principal)

Example 4 with User

use of org.apache.jackrabbit.api.security.user.User in project jackrabbit by apache.

the class AuthorizableActionTest method testPasswordAction.

public void testPasswordAction() throws Exception {
    User u = null;
    try {
        TestAction action = new TestAction();
        setActions(action);
        String uid = getTestPrincipal().getName();
        u = impl.createUser(uid, buildPassword(uid));
        u.changePassword("pw1");
        assertEquals(1, action.called);
        u.changePassword("pw2", "pw1");
        assertEquals(2, action.called);
    } finally {
        if (u != null) {
            u.remove();
        }
        save(superuser);
    }
}
Also used : User(org.apache.jackrabbit.api.security.user.User)

Example 5 with User

use of org.apache.jackrabbit.api.security.user.User in project jackrabbit by apache.

the class AuthorizableActionTest method testPasswordValidationActionOnChange.

public void testPasswordValidationActionOnChange() throws Exception {
    User u = null;
    try {
        String uid = getTestPrincipal().getName();
        u = impl.createUser(uid, buildPassword(uid));
        PasswordValidationAction pwAction = new PasswordValidationAction();
        pwAction.setConstraint("abc");
        setActions(pwAction);
        String hashed = PasswordUtility.buildPasswordHash("abc");
        u.changePassword(hashed);
        fail("Password change must always enforce password validation.");
    } catch (ConstraintViolationException e) {
    // success
    } finally {
        if (u != null) {
            u.remove();
        }
        save(superuser);
    }
}
Also used : User(org.apache.jackrabbit.api.security.user.User) PasswordValidationAction(org.apache.jackrabbit.core.security.user.action.PasswordValidationAction) ConstraintViolationException(javax.jcr.nodetype.ConstraintViolationException)

Aggregations

User (org.apache.jackrabbit.api.security.user.User)377 Test (org.junit.Test)226 Group (org.apache.jackrabbit.api.security.user.Group)106 Authorizable (org.apache.jackrabbit.api.security.user.Authorizable)101 Principal (java.security.Principal)75 UserManager (org.apache.jackrabbit.api.security.user.UserManager)72 AbstractSecurityTest (org.apache.jackrabbit.oak.AbstractSecurityTest)57 RepositoryException (javax.jcr.RepositoryException)50 SimpleCredentials (javax.jcr.SimpleCredentials)44 Session (javax.jcr.Session)31 ExternalUser (org.apache.jackrabbit.oak.spi.security.authentication.external.ExternalUser)27 NotExecutableException (org.apache.jackrabbit.test.NotExecutableException)27 JackrabbitSession (org.apache.jackrabbit.api.JackrabbitSession)26 Tree (org.apache.jackrabbit.oak.api.Tree)25 AuthorizableExistsException (org.apache.jackrabbit.api.security.user.AuthorizableExistsException)21 EveryonePrincipal (org.apache.jackrabbit.oak.spi.security.principal.EveryonePrincipal)20 PrincipalImpl (org.apache.jackrabbit.oak.spi.security.principal.PrincipalImpl)20 Node (javax.jcr.Node)18 ContentSession (org.apache.jackrabbit.oak.api.ContentSession)17 AbstractExternalAuthTest (org.apache.jackrabbit.oak.spi.security.authentication.external.AbstractExternalAuthTest)16