Il giorno 16/apr/2013, alle ore 15.41, Maarten Winkels ha scritto:
> Hi Fabio,
>
> Thanks for your reply.
>
> I think I have a number of very basic questions on how syncope works with the
> connector:
> 1. Is Uid, that is created by the connector when the Account is created,
> stored by Syncope? Can I make Syncope pass it to the delete operation when
> that Account is deleted?
It have to be a mapping item.
> 2. How does the accountLink property work with creating/deleting Accounts? I
> understand that the __NAME__ attribute will be filled with the evaluated
> accountLink and the __UID__ with the AccountId (which is configured in the
> mapping).
__UID__ will be used during dele and update to resolve user/group
> 3. Should I store the Syncope ID in the resource as a separate field, to be
> able to search the resource on it?
not necessary
>
> Thanks!
>
> Maarten Winkels | IWelcome BV
>
> Wiersedreef 5-7
> 3433 ZX Nieuwegein
> The Netherlands
>
> Tel: +31 (0) 30 6592254
> Mob. +31 (0) 6 10038878
> Email: [email protected]
> Website: http://www.iwelcome.com
>
> <iWelcome Signature - ISO.jpg>
>
>
>
> The information in this Internet email is confidential and may be legally
> privileged. It is intended solely for the addressee. Access to this Internet
> email by anyone else is unauthorised. If you are not the intended recipient,
> any disclosure, copying, distribution or any action taken or omitted to be
> taken in reliance on it is prohibited and may be unlawful. When addressed to
> our clients any opinions or advice contained in this Internet email are
> subject to the terms and conditions expressed in any applicable governing
> Everett terms of business or client engagement letter.
>
>
>
> On Apr 16, 2013, at 2:38 PM, Fabio Martelli <[email protected]> wrote:
>
>>
>> Il giorno 16/apr/2013, alle ore 11.33, Maarten Winkels ha scritto:
>>
>>> Hello,
>>>
>>> We're currently developing a new connector with the connid framework. We
>>> run into some question on how the conn if connector API is used by Syncope.
>>>
>>> Implementing and integrating the create method was very simple: We can see
>>> account being provisioned to the resource.
>>>
>>> Question 1:
>>> Syncope seems (however) not to use the delete method correctly if the
>>> connector doesn't implement the SearchOp interface: First the current data
>>> is requested using the search operation and ONLY if this returns a
>>> ConnectorObject the delete is executed. If the SearchOp is not implemented
>>> or returns NULL, Syncope silently ignores the delete operation.
>>
>> Hi Maarten, yes this is the current behavior: Syncope search for user
>> (collect profile), then remove it if exists, and search again (collect new
>> profile - empty if deleted).
>> The two searches are currently used to report differences between before and
>> after op.
>>>
>>> <code
>>> location="org.apache.syncope.core.propagation.impl.AbstractPropagationTaskExecutor:287">
>>> // Try to read remote object (user / group) BEFORE any actual
>>> operation
>>> beforeObj = getRemoteObject(task, connector, false);
>>> </code>
>>>
>>> <code
>>> location="org.apache.syncope.core.propagation.impl.AbstractPropagationTaskExecutor:234">
>>> if (beforeObj == null) {
>>> LOG.debug("{} not found on external resource: ignoring delete",
>>> task.getAccountId());
>>> } else {...
>>> </code>
>>>
>>> Can this behaviour be configured?
>>
>> This behavior cannot be cunfigured. You can change it only overriding
>> methods.
>>
>>>
>>> Question 2:
>>> The resource assigns it's own id's, based on the location of the account in
>>> the tree. The connector returns the created ID as a Uid to Syncope. When
>>> deleting the account from Syncope, the assigned Uid is not used, but only
>>> the "Syncope-ID" is provided to the connector to delete the account.
>>> How should the connector retrieve the assigned ID?
>>
>> This is a configuration error: accountLink (if not empty) or AccountId (if
>> accountLink is empty) will always used as __NAME__ attribute; __UID__
>> attribute will be propagated with AccountId value.
>>
>> Regards,
>> F.
>