use of org.opends.server.types.Entry in project midpoint by Evolveum.
the class OpenDJController method addEntryFromLdifFile.
public Entry addEntryFromLdifFile(String filename) throws IOException, LDIFException {
LDIFImportConfig importConfig = new LDIFImportConfig(filename);
LDIFReader ldifReader = new LDIFReader(importConfig);
Entry ldifEntry = ldifReader.readEntry();
addEntry(ldifEntry);
return ldifEntry;
}
use of org.opends.server.types.Entry in project midpoint by Evolveum.
the class OpenDJController method fetchAndAssertEntry.
public Entry fetchAndAssertEntry(String dn, String objectClass) throws DirectoryException {
Entry entry = fetchEntry(dn);
AssertJUnit.assertNotNull("No entry for DN " + dn, entry);
assertDn(entry, dn);
assertObjectClass(entry, objectClass);
return entry;
}
use of org.opends.server.types.Entry in project midpoint by Evolveum.
the class AbstractModelIntegrationTest method assertOpenDjAccount.
protected Entry assertOpenDjAccount(String uid, String cn, Boolean active) throws DirectoryException {
Entry entry = openDJController.searchByUid(uid);
assertNotNull("OpenDJ accoun with uid " + uid + " not found", entry);
openDJController.assertAttribute(entry, "cn", cn);
if (active != null) {
openDJController.assertActive(entry, active);
}
return entry;
}
use of org.opends.server.types.Entry in project midpoint by Evolveum.
the class TestUcfOpenDj method test610ChangePassword.
@Test
public void test610ChangePassword() throws Exception {
final String TEST_NAME = "test610ChangePassword";
TestUtil.displayTestTile(this, TEST_NAME);
// GIVEN
ResourceAttributeContainer resourceObject = createResourceObject("uid=drake,ou=People,dc=example,dc=com", "Sir Francis Drake", "Drake");
PrismObject<ShadowType> shadow = wrapInShadow(ShadowType.class, resourceObject);
OperationResult addResult = new OperationResult(this.getClass().getName() + "." + TEST_NAME);
// Add a testing object
cc.addObject(shadow, null, null, addResult);
String entryUuid = (String) resourceObject.getPrimaryIdentifier().getValue().getValue();
Entry entry = openDJController.searchAndAssertByEntryUuid(entryUuid);
display("Entry before change", entry);
String passwordBefore = OpenDJController.getAttributeValue(entry, "userPassword");
// We have set no password during create, therefore the password should
// be empty
assertNull(passwordBefore);
ObjectClassComplexTypeDefinition accountDefinition = resourceObject.getDefinition().getComplexTypeDefinition();
Collection<ResourceAttribute<?>> identifiers = resourceObject.getPrimaryIdentifiers();
// Determine object class from the schema
OperationResult result = new OperationResult(this.getClass().getName() + ".testFetchObject");
// WHEN
Set<Operation> changes = new HashSet<Operation>();
ProtectedStringType passPs = protector.encryptString("salalala");
ItemDeltaType propMod = new ItemDeltaType();
//create modification path
Document doc = DOMUtil.getDocument();
ItemPathType path = new ItemPathType("credentials/password/value");
// PropertyPath propPath = new PropertyPath(new PropertyPath(ResourceObjectShadowType.F_CREDENTIALS), CredentialsType.F_PASSWORD);
propMod.setPath(path);
//set the replace value
MapXNode passPsXnode = ((PrismContextImpl) prismContext).getBeanMarshaller().marshalProtectedDataType(passPs, null);
RawType value = new RawType(passPsXnode, prismContext);
propMod.getValue().add(value);
//set the modificaion type
propMod.setModificationType(ModificationTypeType.REPLACE);
PropertyDelta passDelta = (PropertyDelta) DeltaConvertor.createItemDelta(propMod, shadow.getDefinition());
PropertyModificationOperation passwordModification = new PropertyModificationOperation(passDelta);
changes.add(passwordModification);
// PasswordChangeOperation passwordChange = new PasswordChangeOperation(passPs);
// changes.add(passwordChange);
cc.modifyObject(accountDefinition, identifiers, changes, null, result);
// THEN
entry = openDJController.searchAndAssertByEntryUuid(entryUuid);
display("Entry after change", entry);
String passwordAfter = OpenDJController.getAttributeValue(entry, "userPassword");
assertNotNull(passwordAfter);
System.out.println("Account password: " + passwordAfter);
}
use of org.opends.server.types.Entry in project midpoint by Evolveum.
the class TestUniversity method getAndAssertFunctionalOrg.
// @Test
// public void test500ReconcileOpenDJDefault() throws Exception {
// final String TEST_NAME = "test500ReconcileOpenDJDefault";
// TestUtil.displayTestTile(this, TEST_NAME);
//
// // GIVEN
// Task task = createTask(TestInsurance.class.getName() + "." + TEST_NAME);
// OperationResult result = task.getResult();
// assumeAssignmentPolicy(AssignmentPolicyEnforcementType.NONE);
//
// List<PrismObject<UserType>> users = modelService.searchObjects(UserType.class, null, null, task, result);
// display("Users before recon", users);
// assertUsers(15);
//
// reconciliationTaskResultListener.clear();
//
// // WHEN
// TestUtil.displayWhen(TEST_NAME);
// importObjectFromFile(TASK_RECON_OPENDJ_DEFAULT_SINGLE_FILE);
//
// // THEN
// TestUtil.displayThen(TEST_NAME);
//
// waitForTaskFinish(TASK_RECON_OPENDJ_DEFAULT_SINGLE_OID, false);
//
// // THEN
// TestUtil.displayThen(TEST_NAME);
//
// reconciliationTaskResultListener.assertResult(RESOURCE_OPENDJ_OID, 0, 17, 0, 0);
//
// users = modelService.searchObjects(UserType.class, null, null, task, result);
// display("Users after recon", users);
//
// assertUsers(18);
//
// // Task result
// PrismObject<TaskType> reconTaskAfter = getTask(TASK_RECON_OPENDJ_DEFAULT_SINGLE_OID);
// OperationResultType reconTaskResult = reconTaskAfter.asObjectable().getResult();
// display("Recon task result", reconTaskResult);
// TestUtil.assertSuccess(reconTaskResult);
// }
//
// @Test
// public void test502ReconcileOpenDJDefaultAgain() throws Exception {
// final String TEST_NAME = "test502ReconcileOpenDJDefaultAgain";
// TestUtil.displayTestTile(this, TEST_NAME);
//
// // GIVEN
// Task task = createTask(TestInsurance.class.getName() + "." + TEST_NAME);
// OperationResult result = task.getResult();
// assumeAssignmentPolicy(AssignmentPolicyEnforcementType.NONE);
//
// assertUsers(18);
// reconciliationTaskResultListener.clear();
//
// // WHEN
// TestUtil.displayWhen(TEST_NAME);
// restartTask(TASK_RECON_OPENDJ_DEFAULT_SINGLE_OID);
//
// // THEN
// TestUtil.displayThen(TEST_NAME);
//
// waitForTaskFinish(TASK_RECON_OPENDJ_DEFAULT_SINGLE_OID, false);
//
// // THEN
// TestUtil.displayThen(TEST_NAME);
//
// reconciliationTaskResultListener.assertResult(RESOURCE_OPENDJ_OID, 0, 17, 0, 0);
//
// assertUsers(18);
//
// // Task result
// PrismObject<TaskType> reconTaskAfter = getTask(TASK_RECON_OPENDJ_DEFAULT_SINGLE_OID);
// OperationResultType reconTaskResult = reconTaskAfter.asObjectable().getResult();
// display("Recon task result", reconTaskResult);
// TestUtil.assertSuccess(reconTaskResult);
// }
//
// @Test
// public void test510ReconcileOpenDJLdapGroup() throws Exception {
// final String TEST_NAME = "test510ReconcileOpenDJLdapGroup";
// TestUtil.displayTestTile(this, TEST_NAME);
//
// // GIVEN
// Task task = createTask(TestInsurance.class.getName() + "." + TEST_NAME);
// OperationResult result = task.getResult();
// assumeAssignmentPolicy(AssignmentPolicyEnforcementType.NONE);
//
// List<PrismObject<UserType>> users = modelService.searchObjects(UserType.class, null, null, task, result);
// display("Users before recon", users);
// assertUsers(18);
//
// reconciliationTaskResultListener.clear();
//
// // WHEN
// TestUtil.displayWhen(TEST_NAME);
// importObjectFromFile(TASK_RECON_OPENDJ_LDAPGROUP_SINGLE_FILE);
//
// // THEN
// TestUtil.displayThen(TEST_NAME);
//
// waitForTaskFinish(TASK_RECON_OPENDJ_LDAPGROUP_SINGLE_OID, false);
//
// // THEN
// TestUtil.displayThen(TEST_NAME);
//
// reconciliationTaskResultListener.assertResult(RESOURCE_OPENDJ_OID, 0, 2, 0, 0);
//
// users = modelService.searchObjects(UserType.class, null, null, task, result);
// display("Users after recon", users);
//
// assertUsers(18);
//
// // Task result
// PrismObject<TaskType> reconTaskAfter = getTask(TASK_RECON_OPENDJ_LDAPGROUP_SINGLE_OID);
// OperationResultType reconTaskResult = reconTaskAfter.asObjectable().getResult();
// display("Recon task result", reconTaskResult);
// TestUtil.assertSuccess(reconTaskResult);
// }
//
// @Test
// public void test550ReconcileOpenDJAfterMembershipChange() throws Exception {
// final String TEST_NAME = "test550ReconcileOpenDJAfterMembershipChange";
// TestUtil.displayTestTile(this, TEST_NAME);
//
// // We manually remove Lemonhead from R_canibalism group
// // And check whether reconciliation re-adds him again
//
// // GIVEN
// Task task = createTask(TestInsurance.class.getName() + "." + TEST_NAME);
// OperationResult result = task.getResult();
// assumeAssignmentPolicy(AssignmentPolicyEnforcementType.NONE);
//
// Collection<String> membersBeforeTest = openDJController.getGroupUniqueMembers(RESP_CANIBALISM_DN);
// System.out.println("group members before test = " + membersBeforeTest);
// assertTrue(RESP_CANIBALISM_DN + " does not contain " + ACCOUNT_LEMONHEAD_DN, membersBeforeTest.contains(ACCOUNT_LEMONHEAD_DN));
//
// openDJController.removeGroupUniqueMember(RESP_CANIBALISM_DN, ACCOUNT_LEMONHEAD_DN);
//
// System.out.println("group members after removal = " + openDJController.getGroupUniqueMembers(RESP_CANIBALISM_DN));
//
// openDJController.assertNoUniqueMember(RESP_CANIBALISM_DN, ACCOUNT_LEMONHEAD_DN);
//
// // WHEN
// TestUtil.displayWhen(TEST_NAME);
// restartTask(TASK_RECON_OPENDJ_DEFAULT_SINGLE_OID);
//
// // THEN
// TestUtil.displayThen(TEST_NAME);
//
// waitForTaskFinish(TASK_RECON_OPENDJ_DEFAULT_SINGLE_OID, false);
//
// // THEN
// TestUtil.displayThen(TEST_NAME);
//
// // Task result
// PrismObject<TaskType> reconTaskAfter = getTask(TASK_RECON_OPENDJ_DEFAULT_SINGLE_OID);
// OperationResultType reconTaskResult = reconTaskAfter.asObjectable().getResult();
// display("Recon task result", reconTaskResult);
// TestUtil.assertSuccess(reconTaskResult);
//
// Collection<String> membersAfterTest = openDJController.getGroupUniqueMembers(RESP_CANIBALISM_DN);
// System.out.println("group members after test = " + membersAfterTest);
// assertTrue(RESP_CANIBALISM_DN + " does not contain " + ACCOUNT_LEMONHEAD_DN, membersAfterTest.contains(ACCOUNT_LEMONHEAD_DN.toLowerCase())); // ...it seems to get lowercased during the reconciliation
// }
private PrismObject<OrgType> getAndAssertFunctionalOrg(String orgName) throws SchemaException, ObjectNotFoundException, SecurityViolationException, CommunicationException, ConfigurationException, DirectoryException, ExpressionEvaluationException {
PrismObject<OrgType> org = getOrg(orgName);
PrismAsserts.assertPropertyValue(org, OrgType.F_ORG_TYPE, "functional");
assertAssignedRole(org, ROLE_META_ORG_OID);
String ouOid = getLinkRefOid(org, RESOURCE_OPENDJ_OID, ShadowKindType.GENERIC, "org-ou");
PrismObject<ShadowType> ouShadow = getShadowModel(ouOid);
display("Org " + orgName + " OU shadow", ouShadow);
// TODO assert shadow content
String groupOid = getLinkRefOid(org, RESOURCE_OPENDJ_OID, ShadowKindType.ENTITLEMENT, "org-group");
PrismObject<ShadowType> groupShadow = getShadowModel(groupOid);
display("Org " + orgName + " group shadow", groupShadow);
// TODO assert shadow content
Entry ouEntry = openDJController.searchSingle("ou=" + orgName);
assertNotNull("No ou LDAP entry for " + orgName, ouEntry);
display("OU entry", ouEntry);
openDJController.assertObjectClass(ouEntry, "organizationalUnit");
Entry groupEntry = openDJController.searchSingle("cn=DL-" + orgName);
assertNotNull("No group LDAP entry for " + orgName, groupEntry);
display("OU GROUP entry", groupEntry);
openDJController.assertObjectClass(groupEntry, "groupOfUniqueNames");
return org;
}
Aggregations