/** * Checks if the given authorizable needs syncing based on the {@link #REP_LAST_SYNCED} property. * * @param authorizable the authorizable to check * @return {@code true} if the authorizable needs sync */ private boolean isExpired(@NotNull Authorizable authorizable) throws RepositoryException { long expTime = (authorizable.isGroup()) ? config.group().getExpirationTime() : config.user().getExpirationTime(); return isExpired(authorizable, expTime, "Properties"); }
/** * {@inheritDoc} */ @NotNull @Override public SyncContext createContext(@NotNull ExternalIdentityProvider idp, @NotNull UserManager userManager, @NotNull ValueFactory valueFactory) { if (config.user().getDynamicMembership()) { return new DynamicSyncContext(config, idp, userManager, valueFactory); } else { return new DefaultSyncContext(config, idp, userManager, valueFactory); } }
@Override protected DefaultSyncConfig createSyncConfig() { return new DefaultSyncConfig(); }
@Test public void testUserConfig() { DefaultSyncConfig.User userConfig = config.user(); assertNotNull(userConfig); assertAuthorizableConfig(userConfig); assertEquals(0, userConfig.getMembershipExpirationTime()); assertSame(userConfig, userConfig.setMembershipExpirationTime(1)); assertEquals(1, userConfig.getMembershipExpirationTime()); assertEquals(Long.MIN_VALUE, userConfig.setMembershipExpirationTime(Long.MIN_VALUE).getMembershipExpirationTime()); assertEquals(0, userConfig.getMembershipNestingDepth()); assertSame(userConfig, userConfig.setMembershipNestingDepth(5)); assertEquals(5, userConfig.getMembershipNestingDepth()); assertEquals(0, userConfig.setMembershipExpirationTime(0).getMembershipExpirationTime()); }
@Override protected void setSyncConfig(DefaultSyncConfig cfg) { if (cfg != null) { cfg.user().setExpirationTime(500); cfg.group().setExpirationTime(Long.MAX_VALUE); } super.setSyncConfig(cfg); }
@Override protected DefaultSyncConfig createSyncConfig() { DefaultSyncConfig syncConfig = super.createSyncConfig(); syncConfig.user().setAutoMembership(USER_AUTO_MEMBERSHIP_GROUP_ID, NON_EXISTING_GROUP_ID); syncConfig.group().setAutoMembership(GROUP_AUTO_MEMBERSHIP_GROUP_ID, NON_EXISTING_GROUP_ID2); return syncConfig; }
@Test public void testIsExpiredLocalGroup() throws Exception { Group gr = createTestGroup(); assertTrue(syncCtx.isExpired(gr, syncConfig.group().getExpirationTime(), "any")); }
protected DefaultSyncConfig createSyncConfig() { DefaultSyncConfig syncConfig = new DefaultSyncConfig(); Map<String, String> mapping = new HashMap<>(); mapping.put("name", "name"); mapping.put("email", "email"); mapping.put("profile/name", "profile/name"); mapping.put("profile/age", "profile/age"); mapping.put(TEST_CONSTANT_PROPERTY_NAME, "\"" + TEST_CONSTANT_PROPERTY_VALUE + "\""); syncConfig.user().setPropertyMapping(mapping); syncConfig.user().setMembershipNestingDepth(1); return syncConfig; }
@Test public void testSyncAutoMembershipListsUser() throws Exception { // set auto-membership config to point to a user instead a group syncConfig.user().setAutoMembership(getTestUser().getID()); syncCtx.sync(idp.listUsers().next()); }
@Override protected DefaultSyncConfig createSyncConfig() { DefaultSyncConfig sc = super.createSyncConfig(); sc.user().setDynamicMembership(true); return sc; }
@Override public void after() throws Exception { try { syncConfig.user().setAutoMembership().setExpirationTime(0); setup1.close(); setup2.close(); setup3.close(); setup4.close(); } finally { super.after(); } }
@Override protected DefaultSyncConfig createSyncConfig() { DefaultSyncConfig sc = super.createSyncConfig(); sc.user().setMembershipNestingDepth(Long.MAX_VALUE); return sc; }
@Before public void before() throws Exception { super.before(); r = getSystemRoot(); userManager = getUserManager(r); syncCtx = new DefaultSyncContext(syncConfig, idp, getUserManager(r), getValueFactory(r)); }
@Before public void before() throws Exception { super.before(); userManager = getUserManager(root); valueFactory = getValueFactory(); syncCtx = new DefaultSyncContext(syncConfig, idp, userManager, valueFactory); }
@Test public void testIsSameIDPForeign() throws Exception { Group gr = createTestGroup(); setExternalID(gr, "some_other_idp"); assertFalse(syncCtx.isSameIDP(gr)); }
@Test public void testGroupConfig() { DefaultSyncConfig.Group groupConfig = config.group(); assertNotNull(groupConfig); assertAuthorizableConfig(groupConfig); } }
@NotNull @Override public SyncContext createContext(@NotNull ExternalIdentityProvider idp, @NotNull UserManager userManager, @NotNull ValueFactory valueFactory) { return new DefaultSyncContext(new DefaultSyncConfig(), idp, userManager, valueFactory); }
@Test public void syncExternalUser() throws Exception { SyncResult res = syncCtx.sync(idp.getUser(USER_ID)); assertRepExternalId(res); }
@Test public void testIsExpiredEmptyLastSyncedProperty() throws Exception { Group gr = createTestGroup(); gr.setProperty(DefaultSyncContext.REP_LAST_SYNCED, new Value[0]); assertTrue(syncCtx.isExpired(gr, syncConfig.group().getExpirationTime(), "any")); }
@Override protected DefaultSyncConfig createSyncConfig() { DefaultSyncConfig config = super.createSyncConfig(); DefaultSyncConfig.User u = config.user(); u.setDynamicMembership(true); return config; }