Search in sources :

Example 26 with ItemTO

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);
        }
    }
}
Also used : Response(javax.ws.rs.core.Response) PlainSchemaTO(org.apache.syncope.common.lib.to.PlainSchemaTO) MappingTO(org.apache.syncope.common.lib.to.MappingTO) ExecTO(org.apache.syncope.common.lib.to.ExecTO) ResourceTO(org.apache.syncope.common.lib.to.ResourceTO) PushTaskTO(org.apache.syncope.common.lib.to.PushTaskTO) ResourceService(org.apache.syncope.common.rest.api.service.ResourceService) ProvisionTO(org.apache.syncope.common.lib.to.ProvisionTO) AnyTypeClassTO(org.apache.syncope.common.lib.to.AnyTypeClassTO) ItemTO(org.apache.syncope.common.lib.to.ItemTO) GroupTO(org.apache.syncope.common.lib.to.GroupTO) Test(org.junit.jupiter.api.Test)

Example 27 with ItemTO

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());
}
Also used : Response(javax.ws.rs.core.Response) MappingTO(org.apache.syncope.common.lib.to.MappingTO) ResourceTO(org.apache.syncope.common.lib.to.ResourceTO) ConnConfProperty(org.apache.syncope.common.lib.types.ConnConfProperty) ProvisionTO(org.apache.syncope.common.lib.to.ProvisionTO) ItemTO(org.apache.syncope.common.lib.to.ItemTO) ConnConfPropSchema(org.apache.syncope.common.lib.types.ConnConfPropSchema) HashSet(java.util.HashSet) Test(org.junit.jupiter.api.Test)

Example 28 with ItemTO

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());
}
Also used : Response(javax.ws.rs.core.Response) OrgUnitTO(org.apache.syncope.common.lib.to.OrgUnitTO) ResourceTO(org.apache.syncope.common.lib.to.ResourceTO) ResourceService(org.apache.syncope.common.rest.api.service.ResourceService) ItemTO(org.apache.syncope.common.lib.to.ItemTO) Test(org.junit.jupiter.api.Test)

Example 29 with ItemTO

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());
    }
}
Also used : MappingTO(org.apache.syncope.common.lib.to.MappingTO) ResourceTO(org.apache.syncope.common.lib.to.ResourceTO) SyncopeClientException(org.apache.syncope.common.lib.SyncopeClientException) ProvisionTO(org.apache.syncope.common.lib.to.ProvisionTO) ItemTO(org.apache.syncope.common.lib.to.ItemTO)

Example 30 with ItemTO

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;
}
Also used : MappingTO(org.apache.syncope.common.lib.to.MappingTO) ResourceTO(org.apache.syncope.common.lib.to.ResourceTO) ProvisionTO(org.apache.syncope.common.lib.to.ProvisionTO) ItemTO(org.apache.syncope.common.lib.to.ItemTO)

Aggregations

ItemTO (org.apache.syncope.common.lib.to.ItemTO)35 ResourceTO (org.apache.syncope.common.lib.to.ResourceTO)30 ProvisionTO (org.apache.syncope.common.lib.to.ProvisionTO)25 Test (org.junit.jupiter.api.Test)25 MappingTO (org.apache.syncope.common.lib.to.MappingTO)22 SyncopeClientException (org.apache.syncope.common.lib.SyncopeClientException)17 Response (javax.ws.rs.core.Response)13 UserTO (org.apache.syncope.common.lib.to.UserTO)9 List (java.util.List)7 AnyTypeClassTO (org.apache.syncope.common.lib.to.AnyTypeClassTO)7 GroupTO (org.apache.syncope.common.lib.to.GroupTO)7 MappingPurpose (org.apache.syncope.common.lib.types.MappingPurpose)7 ResourceService (org.apache.syncope.common.rest.api.service.ResourceService)7 HashSet (java.util.HashSet)6 Date (java.util.Date)5 AttrTO (org.apache.syncope.common.lib.to.AttrTO)5 ConnInstanceTO (org.apache.syncope.common.lib.to.ConnInstanceTO)5 AnyTypeKind (org.apache.syncope.common.lib.types.AnyTypeKind)5 ConnConfProperty (org.apache.syncope.common.lib.types.ConnConfProperty)5 Optional (java.util.Optional)4