Search in sources :

Example 71 with Entry

use of org.opends.server.types.Entry in project midpoint by Evolveum.

the class TestLdapDependency method assertLdapObject.

private void assertLdapObject(PrismObject<OrgType> org, ShadowKindType kind, String intent) throws SchemaException, ObjectNotFoundException, SecurityViolationException, CommunicationException, ConfigurationException, DirectoryException, ExpressionEvaluationException {
    String orgName = org.getName().toString();
    display("assert org", orgName);
    String objOid = getLinkRefOid(org, RESOURCE_OPENDJ_OID, kind, intent);
    PrismObject<ShadowType> objShadow = getShadowModel(objOid);
    display("Org " + orgName + " kind " + kind + " intent " + intent + " shadow", objShadow);
    // TODO assert shadow content
    String search = "";
    if (kind.equals(ShadowKindType.ENTITLEMENT)) {
        if (LDAP_GROUP_INTENT.equals(intent))
            search = "cn=" + orgName;
        if (LDAP_GROUP_VIP_INTENT.equals(intent))
            search = "cn=" + orgName + "-vip";
        if (LDAP_GROUP_SUPERVIP_INTENT.equals(intent))
            search = "cn=" + orgName + "-supervip";
    }
    if (kind.equals(ShadowKindType.GENERIC)) {
        if (LDAP_OU_INTENT.equals(intent))
            search = "ou=" + orgName;
        if (LDAP_OU_VIP_INTENT.equals(intent))
            search = "ou=" + orgName + "-vip";
    }
    Entry objEntry = openDJController.searchSingle(search);
    assertNotNull("No LDAP entry for " + orgName, objEntry);
    ;
    display("LDAP entry kind " + kind + " inten " + intent + " ldapObj", objEntry);
    if (kind.equals(ShadowKindType.ENTITLEMENT)) {
        openDJController.assertObjectClass(objEntry, "groupOfUniqueNames");
    }
    if (kind.equals(ShadowKindType.GENERIC)) {
        openDJController.assertObjectClass(objEntry, "organizationalUnit");
    }
}
Also used : Entry(org.opends.server.types.Entry) ShadowType(com.evolveum.midpoint.xml.ns._public.common.common_3.ShadowType)

Example 72 with Entry

use of org.opends.server.types.Entry in project midpoint by Evolveum.

the class TestWSSanity method test110AssignOpenDJAccountToJack.

@Test
public void test110AssignOpenDJAccountToJack() throws Exception {
    final String TEST_NAME = "test110AssignOpenDJAccountToJack";
    displayTestTitle(TEST_NAME);
    LogfileTestTailer tailer = createLogTailer();
    XMLGregorianCalendar startTs = TestUtil.currentTime();
    ObjectDeltaType delta = ModelClientUtil.createConstructionAssignDelta(UserType.class, USER_JACK_OID, RESOURCE_OPENDJ_OID);
    // WHEN
    ObjectDeltaOperationListType executedDeltas = modelPort.executeChanges(ModelClientUtil.createDeltaList(delta), null);
    // THEN
    XMLGregorianCalendar endTs = TestUtil.currentTime();
    assertSuccess(executedDeltas);
    tailer.tail();
    displayAudit(tailer);
    assertAuditLoginLogout(tailer);
    assertAuditIds(tailer);
    assertAuditOperation(tailer, "MODIFY_OBJECT");
    tailer.assertAudit(4);
    // GET user
    UserType userAfter = getObject(UserType.class, USER_JACK_OID);
    display(userAfter);
    assertUser(userAfter, USER_JACK_OID, USER_JACK_USERNAME, USER_JACK_GIVEN_NAME, USER_JACK_FAMILY_NAME);
    assertModifyMetadata(userAfter, USER_ADMINISTRATOR_OID, startTs, endTs);
    accountJackOid = getSingleLinkOid(userAfter);
    assertNotNull(accountJackOid);
    Entry ldapEntry = openDJController.fetchEntry("uid=" + USER_JACK_USERNAME + "," + openDJController.getSuffixPeople());
    display(ldapEntry.toLDIFString());
    OpenDJController.assertAttribute(ldapEntry, "uid", "jack");
    OpenDJController.assertAttribute(ldapEntry, "givenName", "Jack");
    OpenDJController.assertAttribute(ldapEntry, "sn", "Sparrow");
    OpenDJController.assertAttribute(ldapEntry, "cn", "Jack Sparrow");
    OpenDJController.assertAttribute(ldapEntry, "displayName", "Jack Sparrow");
}
Also used : LogfileTestTailer(com.evolveum.midpoint.test.util.LogfileTestTailer) XMLGregorianCalendar(javax.xml.datatype.XMLGregorianCalendar) ObjectDeltaType(com.evolveum.prism.xml.ns._public.types_3.ObjectDeltaType) Entry(org.opends.server.types.Entry) SearchResultEntry(org.opends.server.types.SearchResultEntry) ObjectDeltaOperationListType(com.evolveum.midpoint.xml.ns._public.common.api_types_3.ObjectDeltaOperationListType) UserType(com.evolveum.midpoint.xml.ns._public.common.common_3.UserType) Test(org.testng.annotations.Test)

Example 73 with Entry

use of org.opends.server.types.Entry in project midpoint by Evolveum.

the class TestUnix method test133ReconcileUserLargoAgain.

/**
	 * Reconcile user again. Without any meddling. 
	 * Just to make sure that the second run will not destroy anything.
	 */
@Test
public void test133ReconcileUserLargoAgain() throws Exception {
    final String TEST_NAME = "test133ReconcileUserLargoAgain";
    TestUtil.displayTestTile(this, TEST_NAME);
    Task task = taskManager.createTaskInstance(TestUnix.class.getName() + "." + TEST_NAME);
    OperationResult result = task.getResult();
    PrismObject<UserType> userBefore = findUserByUsername(USER_LARGO_USERNAME);
    Entry entryBefore = openDJController.fetchEntry(accountLargoDn);
    display("Entry before", entryBefore);
    dummyAuditService.clear();
    // WHEN
    TestUtil.displayWhen(TEST_NAME);
    reconcileUser(userBefore.getOid(), task, result);
    // THEN
    TestUtil.displayThen(TEST_NAME);
    result.computeStatus();
    TestUtil.assertSuccess(result);
    PrismObject<UserType> userAfter = findUserByUsername(USER_LARGO_USERNAME);
    assertNotNull("No user after", userAfter);
    display("User after", userAfter);
    assertUserPosix(userAfter, USER_LARGO_USERNAME, USER_LARGO_FIST_NAME, USER_LARGO_LAST_NAME, USER_LARGO_UID_NUMBER);
    String accountOid = getSingleLinkOid(userAfter);
    PrismObject<ShadowType> shadow = getShadowModel(accountOid);
    display("Shadow (model)", shadow);
    assertPosixAccount(shadow, USER_LARGO_UID_NUMBER);
    display("Audit", dummyAuditService);
    dummyAuditService.assertSimpleRecordSanity();
    dummyAuditService.assertRecords(2);
    dummyAuditService.assertExecutionDeltas(0);
}
Also used : Task(com.evolveum.midpoint.task.api.Task) Entry(org.opends.server.types.Entry) OperationResult(com.evolveum.midpoint.schema.result.OperationResult) PolyString(com.evolveum.midpoint.prism.polystring.PolyString) Test(org.testng.annotations.Test)

Example 74 with Entry

use of org.opends.server.types.Entry in project midpoint by Evolveum.

the class TestUnix method assertBasicAccount.

private String assertBasicAccount(PrismObject<ShadowType> shadow) throws DirectoryException {
    ShadowType shadowType = shadow.asObjectable();
    assertEquals("Wrong objectclass in " + shadow, OPENDJ_ACCOUNT_STRUCTURAL_OBJECTCLASS_NAME, shadowType.getObjectClass());
    assertTrue("Unexpected auxiliary objectclasses in " + shadow + ": " + shadowType.getAuxiliaryObjectClass(), shadowType.getAuxiliaryObjectClass().isEmpty());
    String dn = (String) ShadowUtil.getSecondaryIdentifiers(shadow).iterator().next().getRealValue();
    Entry entry = openDJController.fetchEntry(dn);
    assertNotNull("No ou LDAP entry for " + dn);
    display("Posix account entry", entry);
    openDJController.assertObjectClass(entry, OPENDJ_ACCOUNT_STRUCTURAL_OBJECTCLASS_NAME.getLocalPart());
    openDJController.assertNoObjectClass(entry, OPENDJ_ACCOUNT_POSIX_AUXILIARY_OBJECTCLASS_NAME.getLocalPart());
    return entry.getDN().toString();
}
Also used : Entry(org.opends.server.types.Entry) PolyString(com.evolveum.midpoint.prism.polystring.PolyString)

Example 75 with Entry

use of org.opends.server.types.Entry in project midpoint by Evolveum.

the class TestUnix method test254AssignUserRangerRangers.

@Test
public void test254AssignUserRangerRangers() throws Exception {
    final String TEST_NAME = "test254AssignUserRangerRangers";
    TestUtil.displayTestTile(this, TEST_NAME);
    Task task = taskManager.createTaskInstance(TestUnix.class.getName() + "." + TEST_NAME);
    OperationResult result = task.getResult();
    PrismObject<UserType> user = findUserByUsername(USER_RANGER_USERNAME);
    // WHEN
    TestUtil.displayWhen(TEST_NAME);
    assignRole(user.getOid(), roleRangersOid);
    // THEN
    TestUtil.displayThen(TEST_NAME);
    result.computeStatus();
    TestUtil.assertSuccess(result);
    PrismObject<UserType> userAfter = findUserByUsername(USER_RANGER_USERNAME);
    assertNotNull("No user", userAfter);
    display("User after", userAfter);
    assertUser(userAfter, USER_RANGER_USERNAME, USER_RANGER_FIST_NAME, USER_RANGER_LAST_NAME);
    String accountOid = getSingleLinkOid(userAfter);
    TestUtil.displayThen(TEST_NAME);
    PrismObject<ShadowType> shadow = getShadowModel(accountOid);
    display("Shadow (model)", shadow);
    String accountRangerDn = assertPosixAccount(shadow, USER_RANGER_UID_NUMBER);
    Entry groupRangers = openDJController.fetchEntry(groupRangersDn);
    //openDJController.assertAttribute(groupRangers, "memberUid", Integer.toString(USER_RANGER_UID_NUMBER));
    openDJController.assertAttribute(groupRangers, "memberUid", USER_RANGER_USERNAME);
    assertGroupAssociation(shadow, groupRangersOid);
    PrismObject<ShadowType> repoShadow = repositoryService.getObject(ShadowType.class, accountOid, null, result);
    display("Shadow (repo)", repoShadow);
    //PrismProperty<Integer> uidNumberRepoAttr = repoShadow.findProperty(new ItemPath(ShadowType.F_ATTRIBUTES, new QName(RESOURCE_OPENDJ_NAMESPACE, OPENDJ_UIDNUMBER_ATTRIBUTE_NAME)));
    //PrismAsserts.assertPropertyValue(uidNumberRepoAttr, USER_RANGER_UID_NUMBER);
    PrismProperty<String> uidRepoAttr = repoShadow.findProperty(new ItemPath(ShadowType.F_ATTRIBUTES, new QName(RESOURCE_OPENDJ_NAMESPACE, OPENDJ_UID_ATTRIBUTE_NAME)));
    PrismAsserts.assertPropertyValue(uidRepoAttr, USER_RANGER_USERNAME);
}
Also used : Task(com.evolveum.midpoint.task.api.Task) Entry(org.opends.server.types.Entry) QName(javax.xml.namespace.QName) OperationResult(com.evolveum.midpoint.schema.result.OperationResult) PolyString(com.evolveum.midpoint.prism.polystring.PolyString) ItemPath(com.evolveum.midpoint.prism.path.ItemPath) Test(org.testng.annotations.Test)

Aggregations

Entry (org.opends.server.types.Entry)87 OperationResult (com.evolveum.midpoint.schema.result.OperationResult)45 Test (org.testng.annotations.Test)44 Task (com.evolveum.midpoint.task.api.Task)43 ShadowType (com.evolveum.midpoint.xml.ns._public.common.common_3.ShadowType)40 PolyString (com.evolveum.midpoint.prism.polystring.PolyString)29 UserType (com.evolveum.midpoint.xml.ns._public.common.common_3.UserType)14 QName (javax.xml.namespace.QName)11 SearchResultEntry (org.opends.server.types.SearchResultEntry)11 LDIFImportConfig (org.opends.server.types.LDIFImportConfig)10 LDIFReader (org.opends.server.util.LDIFReader)10 AbstractModelIntegrationTest (com.evolveum.midpoint.model.test.AbstractModelIntegrationTest)9 OrgType (com.evolveum.midpoint.xml.ns._public.common.common_3.OrgType)8 PrismObject (com.evolveum.midpoint.prism.PrismObject)6 JarEntry (java.util.jar.JarEntry)6 ChangeRecordEntry (org.opends.server.util.ChangeRecordEntry)6 ModifyChangeRecordEntry (org.opends.server.util.ModifyChangeRecordEntry)6 ModifyDNChangeRecordEntry (org.opends.server.util.ModifyDNChangeRecordEntry)6 ItemPath (com.evolveum.midpoint.prism.path.ItemPath)5 PrismReferenceValue (com.evolveum.midpoint.prism.PrismReferenceValue)4