use of org.apache.syncope.common.lib.to.ItemTO in project syncope by apache.
the class PushTaskITCase method issueSYNCOPE598.
@Test
public void issueSYNCOPE598() {
// create a new group schema
PlainSchemaTO schemaTO = new PlainSchemaTO();
schemaTO.setKey("LDAPGroupName" + getUUIDString());
schemaTO.setType(AttrSchemaType.String);
schemaTO.setMandatoryCondition("true");
schemaTO = createSchema(SchemaType.PLAIN, schemaTO);
assertNotNull(schemaTO);
AnyTypeClassTO typeClass = new AnyTypeClassTO();
typeClass.setKey("SYNCOPE-598" + getUUIDString());
typeClass.getPlainSchemas().add(schemaTO.getKey());
anyTypeClassService.create(typeClass);
// create a new sample group
GroupTO groupTO = new GroupTO();
groupTO.setName("all" + getUUIDString());
groupTO.setRealm("/even");
groupTO.getAuxClasses().add(typeClass.getKey());
groupTO.getPlainAttrs().add(attrTO(schemaTO.getKey(), "all"));
groupTO = createGroup(groupTO).getEntity();
assertNotNull(groupTO);
String resourceName = "resource-ldap-grouponly";
ResourceTO newResourceTO = null;
try {
// Create resource ad-hoc
ResourceTO resourceTO = new ResourceTO();
resourceTO.setKey(resourceName);
resourceTO.setConnector("74141a3b-0762-4720-a4aa-fc3e374ef3ef");
ProvisionTO provisionTO = new ProvisionTO();
provisionTO.setAnyType(AnyTypeKind.GROUP.name());
provisionTO.setObjectClass(ObjectClass.GROUP_NAME);
provisionTO.getAuxClasses().add(typeClass.getKey());
resourceTO.getProvisions().add(provisionTO);
MappingTO mapping = new MappingTO();
provisionTO.setMapping(mapping);
ItemTO item = new ItemTO();
item.setExtAttrName("cn");
item.setIntAttrName(schemaTO.getKey());
item.setConnObjectKey(true);
item.setPurpose(MappingPurpose.BOTH);
mapping.setConnObjectKeyItem(item);
mapping.setConnObjectLink("'cn=' + " + schemaTO.getKey() + " + ',ou=groups,o=isp'");
Response response = resourceService.create(resourceTO);
newResourceTO = getObject(response.getLocation(), ResourceService.class, ResourceTO.class);
assertNotNull(newResourceTO);
assertFalse(newResourceTO.getProvision(AnyTypeKind.USER.name()).isPresent());
assertNotNull(newResourceTO.getProvision(AnyTypeKind.GROUP.name()).get().getMapping());
// create push task ad-hoc
PushTaskTO task = new PushTaskTO();
task.setName("issueSYNCOPE598");
task.setActive(true);
task.setResource(resourceName);
task.setSourceRealm(SyncopeConstants.ROOT_REALM);
task.setPerformCreate(true);
task.setPerformDelete(true);
task.setPerformUpdate(true);
task.setUnmatchingRule(UnmatchingRule.ASSIGN);
task.setMatchingRule(MatchingRule.UPDATE);
task.getFilters().put(AnyTypeKind.GROUP.name(), SyncopeClient.getGroupSearchConditionBuilder().is("name").equalTo(groupTO.getName()).query());
response = taskService.create(TaskType.PUSH, task);
PushTaskTO push = getObject(response.getLocation(), TaskService.class, PushTaskTO.class);
assertNotNull(push);
// execute the new task
ExecTO exec = execProvisioningTask(taskService, TaskType.PUSH, push.getKey(), 50, false);
assertEquals(PropagationTaskExecStatus.SUCCESS, PropagationTaskExecStatus.valueOf(exec.getStatus()));
} finally {
groupService.delete(groupTO.getKey());
if (newResourceTO != null) {
resourceService.delete(resourceName);
}
}
}
use of org.apache.syncope.common.lib.to.ItemTO in project syncope by apache.
the class ResourceITCase method createOverridingProps.
@Test
public void createOverridingProps() {
String resourceKey = "overriding-conn-conf-target-resource-create";
ResourceTO resourceTO = new ResourceTO();
ProvisionTO provisionTO = new ProvisionTO();
provisionTO.setAnyType(AnyTypeKind.USER.name());
provisionTO.setObjectClass(ObjectClass.ACCOUNT_NAME);
resourceTO.getProvisions().add(provisionTO);
MappingTO mapping = new MappingTO();
provisionTO.setMapping(mapping);
ItemTO item = new ItemTO();
item.setExtAttrName("uid");
item.setIntAttrName("userId");
item.setPurpose(MappingPurpose.BOTH);
mapping.add(item);
item = new ItemTO();
item.setExtAttrName("username");
item.setIntAttrName("key");
item.setConnObjectKey(true);
item.setPurpose(MappingPurpose.BOTH);
mapping.setConnObjectKeyItem(item);
item = new ItemTO();
item.setExtAttrName("fullname");
item.setIntAttrName("cn");
item.setConnObjectKey(false);
item.setPurpose(MappingPurpose.PROPAGATION);
mapping.add(item);
resourceTO.setKey(resourceKey);
resourceTO.setConnector("5ffbb4ac-a8c3-4b44-b699-11b398a1ba08");
ConnConfProperty prop = new ConnConfProperty();
ConnConfPropSchema schema = new ConnConfPropSchema();
schema.setType("java.lang.String");
schema.setName("endpoint");
schema.setRequired(true);
prop.setSchema(schema);
prop.getValues().add("http://invalidurl/");
Set<ConnConfProperty> connectorConfigurationProperties = new HashSet<>(Arrays.asList(prop));
resourceTO.getConfOverride().addAll(connectorConfigurationProperties);
Response response = resourceService.create(resourceTO);
ResourceTO actual = getObject(response.getLocation(), ResourceService.class, ResourceTO.class);
assertNotNull(actual);
// check the existence
actual = resourceService.read(resourceKey);
assertNotNull(actual);
assertNull(actual.getPropagationPriority());
}
use of org.apache.syncope.common.lib.to.ItemTO in project syncope by apache.
the class ResourceITCase method orgUnit.
@Test
public void orgUnit() {
String resourceKey = "ws-orgunit";
ResourceTO resourceTO = buildResourceTO(resourceKey);
assertNull(resourceTO.getOrgUnit());
assertNull(resourceTO.getPropagationPriority());
Response response = resourceService.create(resourceTO);
resourceTO = getObject(response.getLocation(), ResourceService.class, ResourceTO.class);
assertNotNull(resourceTO);
assertNull(resourceTO.getOrgUnit());
OrgUnitTO orgUnit = new OrgUnitTO();
orgUnit.setConnObjectLink("'ou=' + name + ',o=isp'");
orgUnit.setObjectClass("organizationalUnit");
ItemTO item = new ItemTO();
item.setIntAttrName("name");
item.setExtAttrName("ou");
item.setMandatoryCondition("true");
item.setPurpose(MappingPurpose.BOTH);
orgUnit.setConnObjectKeyItem(item);
resourceTO.setOrgUnit(orgUnit);
resourceService.update(resourceTO);
assertNull(resourceTO.getPropagationPriority());
resourceTO = resourceService.read(resourceKey);
assertNotNull(resourceTO.getOrgUnit());
resourceTO.setOrgUnit(null);
resourceTO.setPropagationPriority(11);
resourceService.update(resourceTO);
resourceTO = resourceService.read(resourceKey);
assertNull(resourceTO.getOrgUnit());
assertEquals(Integer.valueOf(11), resourceTO.getPropagationPriority());
}
use of org.apache.syncope.common.lib.to.ItemTO in project syncope by apache.
the class ResourceITCase method issueSYNCOPE645.
public void issueSYNCOPE645() {
ResourceTO resource = new ResourceTO();
resource.setKey("ws-target-resource-basic-save-invalid");
String connector = resourceService.read("ws-target-resource-1").getConnector();
resource.setConnector(connector);
ProvisionTO provision = new ProvisionTO();
provision.setAnyType(AnyTypeKind.USER.name());
provision.setObjectClass("__ACCOUNT__");
resource.getProvisions().add(provision);
MappingTO mapping = new MappingTO();
provision.setMapping(mapping);
ItemTO item = new ItemTO();
item.setIntAttrName("icon");
item.setExtAttrName("icon");
item.setPurpose(MappingPurpose.BOTH);
mapping.setConnObjectKeyItem(item);
// save the resource
try {
resourceService.create(resource);
fail("This should not happen");
} catch (SyncopeClientException e) {
assertEquals(ClientExceptionType.InvalidMapping, e.getType());
}
}
use of org.apache.syncope.common.lib.to.ItemTO in project syncope by apache.
the class ResourceITCase method buildResourceTO.
private ResourceTO buildResourceTO(final String resourceKey) {
ResourceTO resourceTO = new ResourceTO();
resourceTO.setKey(resourceKey);
resourceTO.setConnector("5ffbb4ac-a8c3-4b44-b699-11b398a1ba08");
ProvisionTO provisionTO = new ProvisionTO();
provisionTO.setAnyType(AnyTypeKind.USER.name());
provisionTO.setObjectClass(ObjectClass.ACCOUNT_NAME);
resourceTO.getProvisions().add(provisionTO);
MappingTO mapping = new MappingTO();
provisionTO.setMapping(mapping);
ItemTO item = new ItemTO();
item.setExtAttrName("userId");
item.setIntAttrName("userId");
item.setPurpose(MappingPurpose.BOTH);
mapping.add(item);
item = new ItemTO();
item.setExtAttrName("username");
item.setIntAttrName("key");
item.setPurpose(MappingPurpose.BOTH);
mapping.setConnObjectKeyItem(item);
item = new ItemTO();
item.setExtAttrName("fullname");
item.setIntAttrName("cn");
item.setConnObjectKey(false);
item.setPurpose(MappingPurpose.PROPAGATION);
mapping.add(item);
return resourceTO;
}
Aggregations