Search in sources :

Example 6 with DefaultSyncContext

use of org.apache.jackrabbit.oak.spi.security.authentication.external.basic.DefaultSyncContext in project jackrabbit-oak by apache.

the class PreAuthDefaultExternalLoginModuleTest method testExistingExternalNoSync.

@Test
public void testExistingExternalNoSync() throws Exception {
    // prevent expiration of the user
    syncConfig.user().setExpirationTime(Long.MAX_VALUE);
    // sync user upfront
    SyncContext syncContext = new DefaultSyncContext(syncConfig, idp, getUserManager(root), getValueFactory(root));
    SyncResult result = syncContext.sync(idp.getUser(TestIdentityProvider.ID_TEST_USER));
    long lastSynced = result.getIdentity().lastSynced();
    root.commit();
    PreAuthCredentials creds = new PreAuthCredentials(TestIdentityProvider.ID_TEST_USER);
    ContentSession cs = null;
    try {
        cs = login(creds);
        assertEquals(PreAuthCredentials.PRE_AUTH_DONE, creds.getMessage());
        assertEquals(TestIdentityProvider.ID_TEST_USER, cs.getAuthInfo().getUserID());
        root.refresh();
        User u = getUserManager(root).getAuthorizable(TestIdentityProvider.ID_TEST_USER, User.class);
        assertNotNull(u);
        // user _should_ not have been re-synced
        assertEquals(lastSynced, DefaultSyncContext.createSyncedIdentity(u).lastSynced());
    } finally {
        if (cs != null) {
            cs.close();
        }
    }
}
Also used : DefaultSyncContext(org.apache.jackrabbit.oak.spi.security.authentication.external.basic.DefaultSyncContext) User(org.apache.jackrabbit.api.security.user.User) ContentSession(org.apache.jackrabbit.oak.api.ContentSession) DefaultSyncContext(org.apache.jackrabbit.oak.spi.security.authentication.external.basic.DefaultSyncContext) Test(org.junit.Test)

Example 7 with DefaultSyncContext

use of org.apache.jackrabbit.oak.spi.security.authentication.external.basic.DefaultSyncContext in project jackrabbit-oak by apache.

the class AbstractJmxTest method sync.

SyncResult sync(@Nonnull ExternalIdentity externalIdentity, @Nonnull ExternalIdentityProvider idp) throws Exception {
    SyncContext ctx = new DefaultSyncContext(syncConfig, idp, getUserManager(root), getValueFactory(root));
    SyncResult res = ctx.sync(externalIdentity);
    root.commit();
    return res;
}
Also used : DefaultSyncContext(org.apache.jackrabbit.oak.spi.security.authentication.external.basic.DefaultSyncContext) SyncContext(org.apache.jackrabbit.oak.spi.security.authentication.external.SyncContext) DefaultSyncContext(org.apache.jackrabbit.oak.spi.security.authentication.external.basic.DefaultSyncContext) SyncResult(org.apache.jackrabbit.oak.spi.security.authentication.external.SyncResult)

Example 8 with DefaultSyncContext

use of org.apache.jackrabbit.oak.spi.security.authentication.external.basic.DefaultSyncContext in project jackrabbit-oak by apache.

the class DynamicSyncContextTest method testSyncExternalGroupExisting.

@Test
public void testSyncExternalGroupExisting() throws Exception {
    // create an external external group that already has been synced into the repo
    ExternalGroup externalGroup = idp.listGroups().next();
    SyncContext ctx = new DefaultSyncContext(syncConfig, idp, userManager, valueFactory);
    ctx.sync(externalGroup);
    ctx.close();
    // synchronizing using DynamicSyncContext must update the existing group
    syncContext.setForceGroupSync(true);
    SyncResult result = syncContext.sync(externalGroup);
    assertSame(SyncResult.Status.UPDATE, result.getStatus());
}
Also used : DefaultSyncContext(org.apache.jackrabbit.oak.spi.security.authentication.external.basic.DefaultSyncContext) ExternalGroup(org.apache.jackrabbit.oak.spi.security.authentication.external.ExternalGroup) SyncContext(org.apache.jackrabbit.oak.spi.security.authentication.external.SyncContext) DefaultSyncContext(org.apache.jackrabbit.oak.spi.security.authentication.external.basic.DefaultSyncContext) SyncResult(org.apache.jackrabbit.oak.spi.security.authentication.external.SyncResult) AbstractExternalAuthTest(org.apache.jackrabbit.oak.spi.security.authentication.external.AbstractExternalAuthTest) Test(org.junit.Test)

Example 9 with DefaultSyncContext

use of org.apache.jackrabbit.oak.spi.security.authentication.external.basic.DefaultSyncContext in project jackrabbit-oak by apache.

the class DynamicSyncContextTest method testSyncMembershipWithChangedExistingGroups.

@Test
public void testSyncMembershipWithChangedExistingGroups() throws Exception {
    long nesting = 1;
    syncConfig.user().setMembershipNestingDepth(nesting);
    ExternalUser externalUser = idp.getUser(USER_ID);
    DefaultSyncContext ctx = new DefaultSyncContext(syncConfig, idp, userManager, valueFactory);
    ctx.sync(externalUser);
    ctx.close();
    Authorizable a = userManager.getAuthorizable(externalUser.getId());
    assertSyncedMembership(userManager, a, externalUser);
    // sync user with modified membership => must be reflected
    // 1. empty set of declared groups
    ExternalUser mod = new TestUserWithGroupRefs(externalUser, ImmutableSet.<ExternalIdentityRef>of());
    syncContext.syncMembership(mod, a, nesting);
    assertSyncedMembership(userManager, a, mod);
    // 2. set with different groups that defined on IDP
    mod = new TestUserWithGroupRefs(externalUser, ImmutableSet.<ExternalIdentityRef>of(idp.getGroup("a").getExternalId(), idp.getGroup("aa").getExternalId(), idp.getGroup("secondGroup").getExternalId()));
    syncContext.syncMembership(mod, a, nesting);
    assertSyncedMembership(userManager, a, mod);
}
Also used : DefaultSyncContext(org.apache.jackrabbit.oak.spi.security.authentication.external.basic.DefaultSyncContext) ExternalIdentityRef(org.apache.jackrabbit.oak.spi.security.authentication.external.ExternalIdentityRef) ExternalUser(org.apache.jackrabbit.oak.spi.security.authentication.external.ExternalUser) Authorizable(org.apache.jackrabbit.api.security.user.Authorizable) AbstractExternalAuthTest(org.apache.jackrabbit.oak.spi.security.authentication.external.AbstractExternalAuthTest) Test(org.junit.Test)

Example 10 with DefaultSyncContext

use of org.apache.jackrabbit.oak.spi.security.authentication.external.basic.DefaultSyncContext in project jackrabbit-oak by apache.

the class DynamicSyncContextTest method testSyncMembershipForExternalGroup.

@Test
public void testSyncMembershipForExternalGroup() throws Exception {
    // a group that has declaredGroups
    ExternalGroup externalGroup = idp.getGroup("a");
    SyncContext ctx = new DefaultSyncContext(syncConfig, idp, userManager, valueFactory);
    ctx.sync(externalGroup);
    ctx.close();
    r.commit();
    Authorizable gr = userManager.getAuthorizable(externalGroup.getId());
    syncContext.syncMembership(externalGroup, gr, 1);
    assertFalse(gr.hasProperty(ExternalIdentityConstants.REP_EXTERNAL_PRINCIPAL_NAMES));
    assertFalse(r.hasPendingChanges());
}
Also used : DefaultSyncContext(org.apache.jackrabbit.oak.spi.security.authentication.external.basic.DefaultSyncContext) ExternalGroup(org.apache.jackrabbit.oak.spi.security.authentication.external.ExternalGroup) Authorizable(org.apache.jackrabbit.api.security.user.Authorizable) SyncContext(org.apache.jackrabbit.oak.spi.security.authentication.external.SyncContext) DefaultSyncContext(org.apache.jackrabbit.oak.spi.security.authentication.external.basic.DefaultSyncContext) AbstractExternalAuthTest(org.apache.jackrabbit.oak.spi.security.authentication.external.AbstractExternalAuthTest) Test(org.junit.Test)

Aggregations

DefaultSyncContext (org.apache.jackrabbit.oak.spi.security.authentication.external.basic.DefaultSyncContext)11 Test (org.junit.Test)9 AbstractExternalAuthTest (org.apache.jackrabbit.oak.spi.security.authentication.external.AbstractExternalAuthTest)5 SyncContext (org.apache.jackrabbit.oak.spi.security.authentication.external.SyncContext)5 Authorizable (org.apache.jackrabbit.api.security.user.Authorizable)4 User (org.apache.jackrabbit.api.security.user.User)3 ContentSession (org.apache.jackrabbit.oak.api.ContentSession)3 ExternalGroup (org.apache.jackrabbit.oak.spi.security.authentication.external.ExternalGroup)3 ExternalUser (org.apache.jackrabbit.oak.spi.security.authentication.external.ExternalUser)3 Tree (org.apache.jackrabbit.oak.api.Tree)2 ExternalIdentityRef (org.apache.jackrabbit.oak.spi.security.authentication.external.ExternalIdentityRef)2 SyncResult (org.apache.jackrabbit.oak.spi.security.authentication.external.SyncResult)2 Group (org.apache.jackrabbit.api.security.user.Group)1 UserManager (org.apache.jackrabbit.api.security.user.UserManager)1 Root (org.apache.jackrabbit.oak.api.Root)1 DynamicSyncContext (org.apache.jackrabbit.oak.spi.security.authentication.external.impl.DynamicSyncContext)1