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");
}
}
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");
}
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);
}
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();
}
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);
}
Aggregations