Search in sources :

Example 21 with ResourceTO

use of org.apache.syncope.common.lib.to.ResourceTO in project syncope by apache.

the class ResourceITCase method history.

@Test
public void history() {
    List<ResourceHistoryConfTO> history = resourceHistoryService.list(RESOURCE_NAME_LDAP);
    assertNotNull(history);
    int pre = history.size();
    ResourceTO ldap = resourceService.read(RESOURCE_NAME_LDAP);
    TraceLevel originalTraceLevel = SerializationUtils.clone(ldap.getUpdateTraceLevel());
    assertEquals(TraceLevel.ALL, originalTraceLevel);
    ProvisionTO originalProvision = SerializationUtils.clone(ldap.getProvision(AnyTypeKind.USER.name()).get());
    assertEquals(ObjectClass.ACCOUNT_NAME, originalProvision.getObjectClass());
    boolean originalFlag = ldap.isRandomPwdIfNotProvided();
    assertTrue(originalFlag);
    ldap.setUpdateTraceLevel(TraceLevel.FAILURES);
    ldap.getProvision(AnyTypeKind.USER.name()).get().setObjectClass("ANOTHER");
    ldap.setRandomPwdIfNotProvided(false);
    resourceService.update(ldap);
    ldap = resourceService.read(RESOURCE_NAME_LDAP);
    assertNotEquals(originalTraceLevel, ldap.getUpdateTraceLevel());
    assertNotEquals(originalProvision.getObjectClass(), ldap.getProvision(AnyTypeKind.USER.name()).get().getObjectClass());
    assertNotEquals(originalFlag, ldap.isRandomPwdIfNotProvided());
    history = resourceHistoryService.list(RESOURCE_NAME_LDAP);
    assertEquals(pre + 1, history.size());
    resourceHistoryService.restore(history.get(0).getKey());
    ldap = resourceService.read(RESOURCE_NAME_LDAP);
    assertEquals(originalTraceLevel, ldap.getUpdateTraceLevel());
    assertEquals(originalProvision.getObjectClass(), ldap.getProvision(AnyTypeKind.USER.name()).get().getObjectClass());
    assertEquals(originalFlag, ldap.isRandomPwdIfNotProvided());
}
Also used : ResourceHistoryConfTO(org.apache.syncope.common.lib.to.ResourceHistoryConfTO) ResourceTO(org.apache.syncope.common.lib.to.ResourceTO) TraceLevel(org.apache.syncope.common.lib.types.TraceLevel) ProvisionTO(org.apache.syncope.common.lib.to.ProvisionTO) Test(org.junit.jupiter.api.Test)

Example 22 with ResourceTO

use of org.apache.syncope.common.lib.to.ResourceTO in project syncope by apache.

the class ResourceITCase method createWithSingleMappingItem.

@Test
public void createWithSingleMappingItem() {
    String resourceKey = RESOURCE_NAME_CREATE_SINGLE;
    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.setIntAttrName("key");
    item.setExtAttrName("userId");
    item.setConnObjectKey(true);
    item.setPurpose(MappingPurpose.PROPAGATION);
    mapping.setConnObjectKeyItem(item);
    provisionTO = new ProvisionTO();
    provisionTO.setAnyType(AnyTypeKind.GROUP.name());
    provisionTO.setObjectClass(ObjectClass.GROUP_NAME);
    resourceTO.getProvisions().add(provisionTO);
    mapping = new MappingTO();
    provisionTO.setMapping(mapping);
    item = new ItemTO();
    item.setIntAttrName("key");
    item.setExtAttrName("groupId");
    item.setConnObjectKey(true);
    item.setPurpose(MappingPurpose.PULL);
    mapping.setConnObjectKeyItem(item);
    Response response = resourceService.create(resourceTO);
    ResourceTO actual = getObject(response.getLocation(), ResourceService.class, ResourceTO.class);
    assertNotNull(actual);
    assertNotNull(actual.getProvision(AnyTypeKind.USER.name()).get().getMapping());
    assertNotNull(actual.getProvision(AnyTypeKind.USER.name()).get().getMapping().getItems());
    assertNotNull(actual.getProvision(AnyTypeKind.GROUP.name()).get().getMapping());
    assertNotNull(actual.getProvision(AnyTypeKind.GROUP.name()).get().getMapping().getItems());
    assertEquals(MappingPurpose.PULL, actual.getProvision(AnyTypeKind.GROUP.name()).get().getMapping().getConnObjectKeyItem().getPurpose());
    assertEquals(MappingPurpose.PROPAGATION, actual.getProvision(AnyTypeKind.USER.name()).get().getMapping().getConnObjectKeyItem().getPurpose());
}
Also used : Response(javax.ws.rs.core.Response) 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) Test(org.junit.jupiter.api.Test)

Example 23 with ResourceTO

use of org.apache.syncope.common.lib.to.ResourceTO in project syncope by apache.

the class ConnectorITCase method issueSYNCOPE10.

@Test
public void issueSYNCOPE10() {
    // ----------------------------------
    // Copy resource and connector in order to create new objects.
    // ----------------------------------
    // Retrieve a connector instance template.
    ConnInstanceTO connInstanceTO = connectorService.read("fcf9f2b0-f7d6-42c9-84a6-61b28255a42b", Locale.ENGLISH.getLanguage());
    assertNotNull(connInstanceTO);
    // check for resource
    List<ResourceTO> resources = resourceService.list().stream().filter(resource -> "fcf9f2b0-f7d6-42c9-84a6-61b28255a42b".equals(resource.getConnector())).collect(Collectors.toList());
    assertEquals(4, resources.size());
    // Retrieve a resource TO template.
    ResourceTO resourceTO = resources.get(0);
    // Make it new.
    resourceTO.setKey("newAbout103" + getUUIDString());
    // Make it new.
    connInstanceTO.setKey(null);
    connInstanceTO.setDisplayName("newDisplayName" + getUUIDString());
    // ----------------------------------
    // ----------------------------------
    // Create a new connector instance.
    // ----------------------------------
    Response response = connectorService.create(connInstanceTO);
    if (response.getStatusInfo().getStatusCode() != Response.Status.CREATED.getStatusCode()) {
        throw (RuntimeException) clientFactory.getExceptionMapper().fromResponse(response);
    }
    connInstanceTO = getObject(response.getLocation(), ConnectorService.class, ConnInstanceTO.class);
    assertNotNull(connInstanceTO);
    assertFalse(connInstanceTO.getCapabilities().contains(ConnectorCapability.AUTHENTICATE));
    final String connKey = connInstanceTO.getKey();
    // Link resourceTO to the new connector instance.
    resourceTO.setConnector(connKey);
    // ----------------------------------
    // ----------------------------------
    // Check for connector instance update after resource creation.
    // ----------------------------------
    response = resourceService.create(resourceTO);
    resourceTO = getObject(response.getLocation(), ResourceService.class, ResourceTO.class);
    assertNotNull(resourceTO);
    resources = resourceService.list().stream().filter(resource -> connKey.equals(resource.getConnector())).collect(Collectors.toList());
    assertEquals(1, resources.size());
    // ----------------------------------
    // ----------------------------------
    // Check for spring bean.
    // ----------------------------------
    ConnInstanceTO connInstanceBean = connectorService.readByResource(resourceTO.getKey(), Locale.ENGLISH.getLanguage());
    assertNotNull(connInstanceBean);
    assertFalse(connInstanceBean.getCapabilities().contains(ConnectorCapability.AUTHENTICATE));
    // ----------------------------------
    // ----------------------------------
    // Check for spring bean update after connector instance update.
    // ----------------------------------
    connInstanceTO.getCapabilities().add(ConnectorCapability.AUTHENTICATE);
    connectorService.update(connInstanceTO);
    ConnInstanceTO actual = connectorService.read(connInstanceTO.getKey(), Locale.ENGLISH.getLanguage());
    assertNotNull(actual);
    assertTrue(connInstanceTO.getCapabilities().contains(ConnectorCapability.AUTHENTICATE));
    // check for spring bean update
    connInstanceBean = connectorService.readByResource(resourceTO.getKey(), Locale.ENGLISH.getLanguage());
    assertTrue(connInstanceBean.getCapabilities().contains(ConnectorCapability.AUTHENTICATE));
// ----------------------------------
}
Also used : Assertions.assertThrows(org.junit.jupiter.api.Assertions.assertThrows) Assertions.fail(org.junit.jupiter.api.Assertions.fail) Assertions.assertNotNull(org.junit.jupiter.api.Assertions.assertNotNull) ProvisionTO(org.apache.syncope.common.lib.to.ProvisionTO) SyncopeClientException(org.apache.syncope.common.lib.SyncopeClientException) Assertions.assertNotEquals(org.junit.jupiter.api.Assertions.assertNotEquals) Assertions.assertNull(org.junit.jupiter.api.Assertions.assertNull) SerializationUtils(org.apache.commons.lang3.SerializationUtils) ConnConfPropSchema(org.apache.syncope.common.lib.types.ConnConfPropSchema) HashSet(java.util.HashSet) AnyTypeKind(org.apache.syncope.common.lib.types.AnyTypeKind) GuardedString(org.identityconnectors.common.security.GuardedString) ConnConfProperty(org.apache.syncope.common.lib.types.ConnConfProperty) Assertions.assertFalse(org.junit.jupiter.api.Assertions.assertFalse) BeforeAll(org.junit.jupiter.api.BeforeAll) Locale(java.util.Locale) ItemTO(org.apache.syncope.common.lib.to.ItemTO) ClientExceptionType(org.apache.syncope.common.lib.types.ClientExceptionType) Assertions.assertEquals(org.junit.jupiter.api.Assertions.assertEquals) AbstractITCase(org.apache.syncope.fit.AbstractITCase) EnumSet(java.util.EnumSet) SyncopeConstants(org.apache.syncope.common.lib.SyncopeConstants) Properties(java.util.Properties) ResourceTO(org.apache.syncope.common.lib.to.ResourceTO) MappingTO(org.apache.syncope.common.lib.to.MappingTO) Collection(java.util.Collection) Set(java.util.Set) IOException(java.io.IOException) UUID(java.util.UUID) ConnIdObjectClassTO(org.apache.syncope.common.lib.to.ConnIdObjectClassTO) ResourceService(org.apache.syncope.common.rest.api.service.ResourceService) Collectors(java.util.stream.Collectors) Test(org.junit.jupiter.api.Test) List(java.util.List) ConnInstanceHistoryConfTO(org.apache.syncope.common.lib.to.ConnInstanceHistoryConfTO) Response(javax.ws.rs.core.Response) ConnectorCapability(org.apache.syncope.common.lib.types.ConnectorCapability) ObjectClass(org.identityconnectors.framework.common.objects.ObjectClass) Assertions.assertTrue(org.junit.jupiter.api.Assertions.assertTrue) ConnectorService(org.apache.syncope.common.rest.api.service.ConnectorService) ConnInstanceTO(org.apache.syncope.common.lib.to.ConnInstanceTO) SyncopeClient(org.apache.syncope.client.lib.SyncopeClient) InputStream(java.io.InputStream) ExceptionUtils(org.apache.commons.lang3.exception.ExceptionUtils) ConnBundleTO(org.apache.syncope.common.lib.to.ConnBundleTO) ConnPoolConfTO(org.apache.syncope.common.lib.to.ConnPoolConfTO) Response(javax.ws.rs.core.Response) ResourceTO(org.apache.syncope.common.lib.to.ResourceTO) ConnInstanceTO(org.apache.syncope.common.lib.to.ConnInstanceTO) ResourceService(org.apache.syncope.common.rest.api.service.ResourceService) GuardedString(org.identityconnectors.common.security.GuardedString) ConnectorService(org.apache.syncope.common.rest.api.service.ConnectorService) Test(org.junit.jupiter.api.Test)

Example 24 with ResourceTO

use of org.apache.syncope.common.lib.to.ResourceTO in project syncope by apache.

the class ResourceWizardBuilder method buildModelSteps.

@Override
protected WizardModel buildModelSteps(final Serializable modelObject, final WizardModel wizardModel) {
    ResourceTO resourceTO = ResourceTO.class.cast(modelObject);
    wizardModel.add(new ResourceDetailsPanel(resourceTO, createFlag));
    wizardModel.add(new ResourceConnConfPanel(resourceTO, createFlag) {

        private static final long serialVersionUID = -1128269449868933504L;

        @Override
        protected Pair<Boolean, String> check(final AjaxRequestTarget target) {
            return resourceRestClient.check(modelObject);
        }

        @Override
        protected void onComponentTag(final ComponentTag tag) {
            tag.append("class", "scrollable-tab-content", " ");
        }
    });
    wizardModel.add(new ResourceConnCapabilitiesPanel(resourceTO, connectorRestClient.read(resourceTO.getConnector()).getCapabilities()));
    wizardModel.add(new ResourceSecurityPanel(resourceTO));
    return wizardModel;
}
Also used : AjaxRequestTarget(org.apache.wicket.ajax.AjaxRequestTarget) ResourceTO(org.apache.syncope.common.lib.to.ResourceTO) ComponentTag(org.apache.wicket.markup.ComponentTag) Pair(org.apache.commons.lang3.tuple.Pair)

Example 25 with ResourceTO

use of org.apache.syncope.common.lib.to.ResourceTO in project syncope by apache.

the class ResourceDataBinderTest method issue42.

@Test
public void issue42() {
    PlainSchema userId = plainSchemaDAO.find("userId");
    Set<MappingItem> beforeUserIdMappings = new HashSet<>();
    for (ExternalResource res : resourceDAO.findAll()) {
        if (res.getProvision(anyTypeDAO.findUser()).isPresent() && res.getProvision(anyTypeDAO.findUser()).get().getMapping() != null) {
            for (MappingItem mapItem : res.getProvision(anyTypeDAO.findUser()).get().getMapping().getItems()) {
                if (userId.getKey().equals(mapItem.getIntAttrName())) {
                    beforeUserIdMappings.add(mapItem);
                }
            }
        }
    }
    ResourceTO resourceTO = new ResourceTO();
    resourceTO.setKey("resource-issue42");
    resourceTO.setConnector("88a7a819-dab5-46b4-9b90-0b9769eabdb8");
    resourceTO.setEnforceMandatoryCondition(true);
    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.setIntAttrName("userId");
    item.setExtAttrName("campo1");
    item.setConnObjectKey(true);
    item.setMandatoryCondition("false");
    item.setPurpose(MappingPurpose.BOTH);
    mapping.setConnObjectKeyItem(item);
    ExternalResource resource = resourceDataBinder.create(resourceTO);
    resource = resourceDAO.save(resource);
    assertNotNull(resource);
    assertNotNull(resource.getProvision(anyTypeDAO.findUser()).get().getMapping());
    assertEquals(1, resource.getProvision(anyTypeDAO.findUser()).get().getMapping().getItems().size());
    resourceDAO.flush();
    ExternalResource actual = resourceDAO.find("resource-issue42");
    assertNotNull(actual);
    assertEquals(resource, actual);
    userId = plainSchemaDAO.find("userId");
    Set<MappingItem> afterUserIdMappings = new HashSet<>();
    for (ExternalResource res : resourceDAO.findAll()) {
        if (res.getProvision(anyTypeDAO.findUser()).isPresent() && res.getProvision(anyTypeDAO.findUser()).get().getMapping() != null) {
            for (MappingItem mapItem : res.getProvision(anyTypeDAO.findUser()).get().getMapping().getItems()) {
                if (userId.getKey().equals(mapItem.getIntAttrName())) {
                    afterUserIdMappings.add(mapItem);
                }
            }
        }
    }
    assertEquals(beforeUserIdMappings.size(), afterUserIdMappings.size() - 1);
}
Also used : MappingItem(org.apache.syncope.core.persistence.api.entity.resource.MappingItem) MappingTO(org.apache.syncope.common.lib.to.MappingTO) ResourceTO(org.apache.syncope.common.lib.to.ResourceTO) ProvisionTO(org.apache.syncope.common.lib.to.ProvisionTO) PlainSchema(org.apache.syncope.core.persistence.api.entity.PlainSchema) ExternalResource(org.apache.syncope.core.persistence.api.entity.resource.ExternalResource) ItemTO(org.apache.syncope.common.lib.to.ItemTO) HashSet(java.util.HashSet) Test(org.junit.jupiter.api.Test)

Aggregations

ResourceTO (org.apache.syncope.common.lib.to.ResourceTO)61 Test (org.junit.jupiter.api.Test)49 ItemTO (org.apache.syncope.common.lib.to.ItemTO)32 ProvisionTO (org.apache.syncope.common.lib.to.ProvisionTO)29 SyncopeClientException (org.apache.syncope.common.lib.SyncopeClientException)27 Response (javax.ws.rs.core.Response)23 MappingTO (org.apache.syncope.common.lib.to.MappingTO)23 UserTO (org.apache.syncope.common.lib.to.UserTO)17 ConnInstanceTO (org.apache.syncope.common.lib.to.ConnInstanceTO)14 ConnObjectTO (org.apache.syncope.common.lib.to.ConnObjectTO)12 ResourceService (org.apache.syncope.common.rest.api.service.ResourceService)11 UserPatch (org.apache.syncope.common.lib.patch.UserPatch)10 GroupTO (org.apache.syncope.common.lib.to.GroupTO)10 ConnConfProperty (org.apache.syncope.common.lib.types.ConnConfProperty)9 JdbcTemplate (org.springframework.jdbc.core.JdbcTemplate)9 AnyTypeKind (org.apache.syncope.common.lib.types.AnyTypeKind)8 Assertions.assertEquals (org.junit.jupiter.api.Assertions.assertEquals)8 Assertions.assertFalse (org.junit.jupiter.api.Assertions.assertFalse)8 Assertions.assertNotNull (org.junit.jupiter.api.Assertions.assertNotNull)8 Assertions.assertTrue (org.junit.jupiter.api.Assertions.assertTrue)8