use of org.apache.jackrabbit.oak.spi.security.authentication.external.ExternalUser in project jackrabbit-oak by apache.
the class DynamicSyncContextTest method testSyncExternalUserDepth1.
@Test
public void testSyncExternalUserDepth1() throws Exception {
syncConfig.user().setMembershipNestingDepth(1);
ExternalUser externalUser = idp.getUser(USER_ID);
sync(externalUser, SyncResult.Status.ADD);
Tree tree = r.getTree(userManager.getAuthorizable(USER_ID).getPath());
PropertyState extPrincipalNames = tree.getProperty(ExternalIdentityConstants.REP_EXTERNAL_PRINCIPAL_NAMES);
assertNotNull(extPrincipalNames);
Set<String> pNames = Sets.newHashSet(extPrincipalNames.getValue(Type.STRINGS));
for (ExternalIdentityRef ref : externalUser.getDeclaredGroups()) {
assertTrue(pNames.remove(idp.getIdentity(ref).getPrincipalName()));
}
assertTrue(pNames.isEmpty());
}
use of org.apache.jackrabbit.oak.spi.security.authentication.external.ExternalUser in project jackrabbit-oak by apache.
the class DynamicSyncContextTest method testSyncExternalUserExistingGroups.
@Test
public void testSyncExternalUserExistingGroups() throws Exception {
syncConfig.user().setMembershipNestingDepth(1);
ExternalUser externalUser = idp.getUser(USER_ID);
DefaultSyncContext ctx = new DefaultSyncContext(syncConfig, idp, userManager, valueFactory);
ctx.sync(externalUser);
ctx.close();
Authorizable a = userManager.getAuthorizable(USER_ID);
assertSyncedMembership(userManager, a, externalUser);
syncContext.setForceUserSync(true);
syncConfig.user().setMembershipExpirationTime(-1);
syncContext.sync(externalUser);
Tree t = r.getTree(a.getPath());
assertFalse(t.hasProperty(ExternalIdentityConstants.REP_EXTERNAL_PRINCIPAL_NAMES));
assertSyncedMembership(userManager, a, externalUser);
}
use of org.apache.jackrabbit.oak.spi.security.authentication.external.ExternalUser in project jackrabbit-oak by apache.
the class DefaultSyncContextTest method testSyncDoesNotEnableUsers.
@Test
public void testSyncDoesNotEnableUsers() throws Exception {
// configure to remove missing users, check that sync does not mess with disabled status
syncConfig.user().setDisableMissing(false);
// test sync with 'keepmissing' = false
syncCtx.setKeepMissing(false);
ExternalUser user = idp.listUsers().next();
assertNotNull(user);
SyncResult result = syncCtx.sync(user);
assertEquals(SyncResult.Status.ADD, result.getStatus());
Authorizable authorizable = userManager.getAuthorizable(user.getId());
assertTrue(authorizable instanceof User);
User u = (User) authorizable;
// disable user
u.disable("disabled locally");
root.commit();
// sync
syncCtx.setForceUserSync(true);
result = syncCtx.sync(user.getId());
assertEquals(SyncResult.Status.UPDATE, result.getStatus());
authorizable = userManager.getAuthorizable(user.getId());
assertNotNull(authorizable);
assertTrue(authorizable instanceof User);
assertTrue(((User) authorizable).isDisabled());
}
use of org.apache.jackrabbit.oak.spi.security.authentication.external.ExternalUser in project jackrabbit-oak by apache.
the class DefaultSyncContextTest method testSyncPropertiesEmptyMapExistingProps.
@Test
public void testSyncPropertiesEmptyMapExistingProps() throws Exception {
ExternalUser externalUser = idp.getUser(TestIdentityProvider.ID_SECOND_USER);
Authorizable a = syncCtx.createUser(externalUser);
Value anyValue = valueFactory.createValue("any");
Map<String, ?> extProps = externalUser.getProperties();
for (String propName : extProps.keySet()) {
a.setProperty(propName, anyValue);
}
syncCtx.syncProperties(externalUser, a, ImmutableMap.<String, String>of());
for (String propName : extProps.keySet()) {
assertTrue(a.hasProperty(propName));
assertEquals(anyValue, a.getProperty(propName)[0]);
}
}
use of org.apache.jackrabbit.oak.spi.security.authentication.external.ExternalUser in project jackrabbit-oak by apache.
the class DynamicSyncContextTest method testSyncExternalUserDepth0.
@Test
public void testSyncExternalUserDepth0() throws Exception {
syncConfig.user().setMembershipNestingDepth(0);
ExternalUser externalUser = idp.getUser(USER_ID);
sync(externalUser, SyncResult.Status.ADD);
Tree tree = r.getTree(userManager.getAuthorizable(USER_ID).getPath());
PropertyState extPrincipalNames = tree.getProperty(ExternalIdentityConstants.REP_EXTERNAL_PRINCIPAL_NAMES);
assertNotNull(extPrincipalNames);
assertEquals(0, extPrincipalNames.count());
}
Aggregations