Cannot synchonize LDAP to Syncope

classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

Cannot synchonize LDAP to Syncope

sasha gesta
Hi,

I was unable to pull users from LDAP to syncope. I did pretty much everything from this great tutorial : http://coheigea.blogspot.it/2016/08/pulling-users-and-groups-from-ldap-into.html
After executing PULL TASK I receive failure with following stacktrace :

15:49:33.239 DEBUG Enter: search(ObjectClass: __ACCOUNT__, null, org.apache.syncope.core.provisioning.java.ConnectorFacadeProxy$2@2ba80eb7, OperationOptions: {ATTRS_TO_GET:[__PASSWORD__,__NAME__,cn,__UID__,__ENABLE__],PAGE_SIZE:100})   Method: search
15:49:33.244 DEBUG Enter: executeQuery(ObjectClass: __ACCOUNT__, null, org.identityconnectors.framework.impl.api.local.operations.SearchImpl$1@4ebdf2d1, OperationOptions: {ATTRS_TO_GET:[__PASSWORD__,__NAME__,cn,__UID__,__ENABLE__],PAGE_SIZE:100})       Method: executeQuery
15:49:33.246 WARN  Attribute __ENABLE__ of object class __ACCOUNT__ is not mapped to an LDAP attribute  Method: getLdapAttribute
15:49:33.247 DEBUG Searching in [ou=Users,dc=example,dc=org] with filter (&(&(objectClass=top)(objectClass=person)(objectClass=organizationalPerson)(objectClass=inetOrgPerson))(cn=*)) and SearchControls: {returningAttributes=[cn, description, userPassword], scope=SUBTREE}     Method: doSearch
15:49:33.260 WARN  Attribute __ENABLE__ of object class __ACCOUNT__ is not mapped to an LDAP attribute  Method: getLdapAttribute
15:49:33.260 DEBUG Exception:   Method: executeQuery
java.lang.IllegalArgumentException: Must be a single value.
        at org.identityconnectors.framework.common.objects.AttributeBuilder.checkSingleValue(AttributeBuilder.java:200) ~[connector-framework-1.4.2.0.jar:?]
        at org.identityconnectors.framework.common.objects.AttributeBuilder.getSingleStringValue(AttributeBuilder.java:211) ~[connector-framework-1.4.2.0.jar:?]
        at org.identityconnectors.framework.common.objects.AttributeBuilder.build(AttributeBuilder.java:184) ~[connector-framework-1.4.2.0.jar:?]
        at net.tirasa.connid.bundles.ldap.schema.LdapSchemaMapping.createAttribute(LdapSchemaMapping.java:305) ~[net.tirasa.connid.bundles.ldap-1.5.1.jar:?]
        at net.tirasa.connid.bundles.ldap.search.LdapSearch.createConnectorObject(LdapSearch.java:285) ~[net.tirasa.connid.bundles.ldap-1.5.1.jar:?]
        at net.tirasa.connid.bundles.ldap.search.LdapSearch.access$000(LdapSearch.java:67) ~[net.tirasa.connid.bundles.ldap-1.5.1.jar:?]
        at net.tirasa.connid.bundles.ldap.search.LdapSearch$1.handle(LdapSearch.java:141) ~[net.tirasa.connid.bundles.ldap-1.5.1.jar:?]
        at net.tirasa.connid.bundles.ldap.search.PagedSearchStrategy.doSearch(PagedSearchStrategy.java:128) ~[net.tirasa.connid.bundles.ldap-1.5.1.jar:?]
        at net.tirasa.connid.bundles.ldap.search.LdapInternalSearch.execute(LdapInternalSearch.java:67) ~[net.tirasa.connid.bundles.ldap-1.5.1.jar:?]
        at net.tirasa.connid.bundles.ldap.search.LdapSearch.execute(LdapSearch.java:137) ~[net.tirasa.connid.bundles.ldap-1.5.1.jar:?]
        at net.tirasa.connid.bundles.ldap.LdapConnector.executeQuery(LdapConnector.java:136) ~[?:?]
        at net.tirasa.connid.bundles.ldap.LdapConnector.executeQuery(LdapConnector.java:57) ~[?:?]
        at org.identityconnectors.framework.impl.api.local.operations.SearchImpl.rawSearch(SearchImpl.java:171) ~[connector-framework-internal-1.4.2.0.jar:?]
        at org.identityconnectors.framework.impl.api.local.operations.SearchImpl.search(SearchImpl.java:130) ~[connector-framework-internal-1.4.2.0.jar:?]
        at sun.reflect.GeneratedMethodAccessor898.invoke(Unknown Source) ~[?:?]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_131]
        at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_131]
        at org.identityconnectors.framework.impl.api.local.operations.ConnectorAPIOperationRunnerProxy.invoke(ConnectorAPIOperationRunnerProxy.java:98) ~[connector-framework-internal-1.4.2.0.jar:?]
        at com.sun.proxy.$Proxy308.search(Unknown Source) ~[?:?]
        at sun.reflect.GeneratedMethodAccessor898.invoke(Unknown Source) ~[?:?]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_131]
        at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_131]
        at org.identityconnectors.framework.impl.api.local.operations.ThreadClassLoaderManagerProxy.invoke(ThreadClassLoaderManagerProxy.java:96) ~[connector-framework-internal-1.4.2.0.jar:?]
        at com.sun.proxy.$Proxy308.search(Unknown Source) ~[?:?]
        at sun.reflect.GeneratedMethodAccessor898.invoke(Unknown Source) ~[?:?]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_131]
        at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_131]
        at org.identityconnectors.framework.impl.api.BufferedResultsProxy$BufferedResultsHandler.run(BufferedResultsProxy.java:165) ~[connector-framework-internal-1.4.2.0.jar:?]

I'm missing something?

Regards,
Sasha



Reply | Threaded
Open this post in threaded view
|

Re: Cannot synchonize LDAP to Syncope

mdisabatino


Il 12/05/2017 16:06, sasha gesta ha scritto:

> Hi,
>
> I was unable to pull users from LDAP to syncope. I did pretty much
> everything from this great tutorial :
> http://coheigea.blogspot.it/2016/08/pulling-users-and-groups-from-ldap-into.html
> After executing PULL TASK I receive failure with following stacktrace :
>
> 15:49:33.239 DEBUG Enter: search(ObjectClass: __ACCOUNT__, null,
> org.apache.syncope.core.provisioning.java.ConnectorFacadeProxy$2@2ba80eb7,
> OperationOptions:
> {ATTRS_TO_GET:[__PASSWORD__,__NAME__,cn,__UID__,__ENABLE__],PAGE_SIZE:100})
>   Method: search
> 15:49:33.244 DEBUG Enter: executeQuery(ObjectClass: __ACCOUNT__, null,
> org.identityconnectors.framework.impl.api.local.operations.SearchImpl$1@4ebdf2d1,
> OperationOptions:
> {ATTRS_TO_GET:[__PASSWORD__,__NAME__,cn,__UID__,__ENABLE__],PAGE_SIZE:100})
>       Method: executeQuery
> 15:49:33.246 WARN  Attribute __ENABLE__ of object class __ACCOUNT__ is
> not mapped to an LDAP attribute  Method: getLdapAttribute
> 15:49:33.247 DEBUG Searching in [ou=Users,dc=example,dc=org] with
> filter
> (&(&(objectClass=top)(objectClass=person)(objectClass=organizationalPerson)(objectClass=inetOrgPerson))(cn=*))
> and SearchControls: {returningAttributes=[cn, description,
> userPassword], scope=SUBTREE}     Method: doSearch
> 15:49:33.260 WARN  Attribute __ENABLE__ of object class __ACCOUNT__ is
> not mapped to an LDAP attribute  Method: getLdapAttribute
> 15:49:33.260 DEBUG Exception:   Method: executeQuery
> java.lang.IllegalArgumentException: Must be a single value.
>         at
> org.identityconnectors.framework.common.objects.AttributeBuilder.checkSingleValue(AttributeBuilder.java:200)
> ~[connector-framework-1.4.2.0.jar:?]
>         at
> org.identityconnectors.framework.common.objects.AttributeBuilder.getSingleStringValue(AttributeBuilder.java:211)
> ~[connector-framework-1.4.2.0.jar:?]
>         at
> org.identityconnectors.framework.common.objects.AttributeBuilder.build(AttributeBuilder.java:184)
> ~[connector-framework-1.4.2.0.jar:?]
>         at
> net.tirasa.connid.bundles.ldap.schema.LdapSchemaMapping.createAttribute(LdapSchemaMapping.java:305)
> ~[net.tirasa.connid.bundles.ldap-1.5.1.jar:?]
>         at
> net.tirasa.connid.bundles.ldap.search.LdapSearch.createConnectorObject(LdapSearch.java:285)
> ~[net.tirasa.connid.bundles.ldap-1.5.1.jar:?]
>         at
> net.tirasa.connid.bundles.ldap.search.LdapSearch.access$000(LdapSearch.java:67)
> ~[net.tirasa.connid.bundles.ldap-1.5.1.jar:?]
>         at
> net.tirasa.connid.bundles.ldap.search.LdapSearch$1.handle(LdapSearch.java:141)
> ~[net.tirasa.connid.bundles.ldap-1.5.1.jar:?]
>         at
> net.tirasa.connid.bundles.ldap.search.PagedSearchStrategy.doSearch(PagedSearchStrategy.java:128)
> ~[net.tirasa.connid.bundles.ldap-1.5.1.jar:?]
>         at
> net.tirasa.connid.bundles.ldap.search.LdapInternalSearch.execute(LdapInternalSearch.java:67)
> ~[net.tirasa.connid.bundles.ldap-1.5.1.jar:?]
>         at
> net.tirasa.connid.bundles.ldap.search.LdapSearch.execute(LdapSearch.java:137)
> ~[net.tirasa.connid.bundles.ldap-1.5.1.jar:?]
>         at
> net.tirasa.connid.bundles.ldap.LdapConnector.executeQuery(LdapConnector.java:136)
> ~[?:?]
>         at
> net.tirasa.connid.bundles.ldap.LdapConnector.executeQuery(LdapConnector.java:57)
> ~[?:?]
>         at
> org.identityconnectors.framework.impl.api.local.operations.SearchImpl.rawSearch(SearchImpl.java:171)
> ~[connector-framework-internal-1.4.2.0.jar:?]
>         at
> org.identityconnectors.framework.impl.api.local.operations.SearchImpl.search(SearchImpl.java:130)
> ~[connector-framework-internal-1.4.2.0.jar:?]
>         at sun.reflect.GeneratedMethodAccessor898.invoke(Unknown
> Source) ~[?:?]
>         at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> ~[?:1.8.0_131]
>         at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_131]
>         at
> org.identityconnectors.framework.impl.api.local.operations.ConnectorAPIOperationRunnerProxy.invoke(ConnectorAPIOperationRunnerProxy.java:98)
> ~[connector-framework-internal-1.4.2.0.jar:?]
>         at com.sun.proxy.$Proxy308.search(Unknown Source) ~[?:?]
>         at sun.reflect.GeneratedMethodAccessor898.invoke(Unknown
> Source) ~[?:?]
>         at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> ~[?:1.8.0_131]
>         at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_131]
>         at
> org.identityconnectors.framework.impl.api.local.operations.ThreadClassLoaderManagerProxy.invoke(ThreadClassLoaderManagerProxy.java:96)
> ~[connector-framework-internal-1.4.2.0.jar:?]
>         at com.sun.proxy.$Proxy308.search(Unknown Source) ~[?:?]
>         at sun.reflect.GeneratedMethodAccessor898.invoke(Unknown
> Source) ~[?:?]
>         at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> ~[?:1.8.0_131]
>         at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_131]
>         at
> org.identityconnectors.framework.impl.api.BufferedResultsProxy$BufferedResultsHandler.run(BufferedResultsProxy.java:165)
> ~[connector-framework-internal-1.4.2.0.jar:?]
>
> I'm missing something?

Can you share your connector and resource configurations?

M


>
> Regards,
> Sasha
>
>
>

--
Dott. Marco Di Sabatino Di Diodoro
Tel. +39 3939065570

Tirasa S.r.l.
Viale D'Annunzio 267 - 65127 Pescara
Tel +39 0859116307 / FAX +39 0859111173
http://www.tirasa.net

Apache Syncope PMC Member
http://people.apache.org/~mdisabatino/

Reply | Threaded
Open this post in threaded view
|

Re: Cannot synchonize LDAP to Syncope

sasha gesta
Connector :

tcp port : 10389
principal : uid=admin,ou=system
password : ********
Base Contexts : ou=Users,dc=example,dc=org
Password Attribute : userPassword
Account Object Classes : inetOrgPerson
Account User Name Attributes : cn
LDAP Filter for Retrieving Accounts : cn=*
Uid Attribute : cn
Base Contexts to Synchronize : ou=Users,dc=examples,dc=org
Object Classes to Synchronize : inetOrgPerson
Status management class : net.tirasa.connid.bundles.ldap.commons.AttributeStatusManagement
Retrieve passwords with search : true

Capabilies : SEARCH,DELETE,CREATE,UPDATE


Resource :

Propagation Actions :
LDAPMembershipPropagation
LDAPPasswordPropagation

Provisioning rules :
username cn true remotekey checked
password __PASSWORD__ true password checked
Object Link : 'cn=' + username + ',ou=Users,dc=example,dc=org'
Reply | Threaded
Open this post in threaded view
|

Re: Cannot synchonize LDAP to Syncope

mdisabatino



Il 12/05/2017 17:10, sasha gesta ha scritto:
Connector :

tcp port : 10389
principal : uid=admin,ou=system
password : ********
Base Contexts : ou=Users,dc=example,dc=org
Password Attribute : userPassword
Account Object Classes : inetOrgPerson
Account User Name Attributes : cn
LDAP Filter for Retrieving Accounts : cn=*
Uid Attribute : cn
Base Contexts to Synchronize : ou=Users,dc=examples,dc=org
Object Classes to Synchronize : inetOrgPerson
Status management class : net.tirasa.connid.bundles.ldap.commons.AttributeStatusManagement
Retrieve passwords with search : true

Capabilies : SEARCH,DELETE,CREATE,UPDATE


Resource :

Propagation Actions :
LDAPMembershipPropagation
LDAPPasswordPropagation

Provisioning rules :
username cn true remotekey checked
password __PASSWORD__ true password checked
Object Link : 'cn=' + username + ',ou=Users,dc=example,dc=org'
Can you check if description is a multivalue field?

M
-- 
Dott. Marco Di Sabatino Di Diodoro
Tel. +39 3939065570

Tirasa S.r.l.
Viale D'Annunzio 267 - 65127 Pescara
Tel +39 0859116307 / FAX +39 0859111173
http://www.tirasa.net

Apache Syncope PMC Member
http://people.apache.org/~mdisabatino/
Reply | Threaded
Open this post in threaded view
|

Re: Cannot synchonize LDAP to Syncope

sasha gesta
How can I check it? In connector or in resource?

On Fri, May 12, 2017 at 6:55 PM, Marco Di Sabatino Di Diodoro <[hidden email]> wrote:



Il 12/05/2017 17:10, sasha gesta ha scritto:
Connector :

tcp port : 10389
principal : uid=admin,ou=system
password : ********
Base Contexts : ou=Users,dc=example,dc=org
Password Attribute : userPassword
Account Object Classes : inetOrgPerson
Account User Name Attributes : cn
LDAP Filter for Retrieving Accounts : cn=*
Uid Attribute : cn
Base Contexts to Synchronize : ou=Users,dc=examples,dc=org
Object Classes to Synchronize : inetOrgPerson
Status management class : net.tirasa.connid.bundles.ldap.commons.AttributeStatusManagement
Retrieve passwords with search : true

Capabilies : SEARCH,DELETE,CREATE,UPDATE


Resource :

Propagation Actions :
LDAPMembershipPropagation
LDAPPasswordPropagation

Provisioning rules :
username cn true remotekey checked
password __PASSWORD__ true password checked
Object Link : 'cn=' + username + ',ou=Users,dc=example,dc=org'
Can you check if description is a multivalue field?

M
-- 
Dott. Marco Di Sabatino Di Diodoro
Tel. <a href="tel:+39%20393%20906%205570" value="+393939065570" target="_blank">+39 3939065570

Tirasa S.r.l.
Viale D'Annunzio 267 - 65127 Pescara
Tel <a href="tel:+39%20085%20911%206307" value="+390859116307" target="_blank">+39 0859116307 / FAX <a href="tel:+39%20085%20911%201173" value="+390859111173" target="_blank">+39 0859111173
http://www.tirasa.net

Apache Syncope PMC Member
http://people.apache.org/~mdisabatino/

Reply | Threaded
Open this post in threaded view
|

Re: Cannot synchonize LDAP to Syncope

HugoCerdeira
Hi,
you can check it by going configurations > types > schemas and theres a field for multivalue,

or by sending a get request to /syncope/rest/schema/{type}/{key}



sasha gesta wrote
How can I check it? In connector or in resource?

On Fri, May 12, 2017 at 6:55 PM, Marco Di Sabatino Di Diodoro <
[hidden email]> wrote:

>
>
> Il 12/05/2017 17:10, sasha gesta ha scritto:
>
> *Connector* :
>
> host : ldap1.example.org
> tcp port : 10389
> principal : uid=admin,ou=system
> password : ********
> Base Contexts : ou=Users,dc=example,dc=org
> Password Attribute : userPassword
> Account Object Classes : inetOrgPerson
> Account User Name Attributes : cn
> LDAP Filter for Retrieving Accounts : cn=*
> Uid Attribute : cn
> Base Contexts to Synchronize : ou=Users,dc=examples,dc=org
> Object Classes to Synchronize : inetOrgPerson
> Status management class : net.tirasa.connid.bundles.ldap.commons.
> AttributeStatusManagement
> Retrieve passwords with search : true
>
> Capabilies : SEARCH,DELETE,CREATE,UPDATE
>
>
> *Resource* :
>
> Propagation Actions :
> LDAPMembershipPropagation
> LDAPPasswordPropagation
>
> Provisioning rules :
> username cn true remotekey checked
> password __PASSWORD__ true password checked
> Object Link : 'cn=' + username + ',ou=Users,dc=example,dc=org'
>
> Can you check if description is a multivalue field?
>
> M
>
> --
> Dott. Marco Di Sabatino Di Diodoro
> Tel. +39 3939065570 <+39%20393%20906%205570>
>
> Tirasa S.r.l.
> Viale D'Annunzio 267 - 65127 Pescara
> Tel +39 0859116307 <+39%20085%20911%206307> / FAX +39 0859111173 <+39%20085%20911%201173>http://www.tirasa.net
>
> Apache Syncope PMC Memberhttp://people.apache.org/~mdisabatino/
>
>
Reply | Threaded
Open this post in threaded view
|

Re: Cannot synchonize LDAP to Syncope

mdisabatino
In reply to this post by sasha gesta


Il 12 maggio 2017 18:14:24 CEST, sasha gesta <[hidden email]> ha scritto:
>How can I check it? In connector or in resource?
>
I reproduced your settings in my env and I'm able to pull users from ApacheDS to Syncope.

I think there is an user in ApacheDS that have one of the mapped attributes with a multi value.

Use jxplorer or ldapsearch to check it.

M


>On Fri, May 12, 2017 at 6:55 PM, Marco Di Sabatino Di Diodoro <
>[hidden email]> wrote:
>
>>
>>
>> Il 12/05/2017 17:10, sasha gesta ha scritto:
>>
>> *Connector* :
>>
>> host : ldap1.example.org
>> tcp port : 10389
>> principal : uid=admin,ou=system
>> password : ********
>> Base Contexts : ou=Users,dc=example,dc=org
>> Password Attribute : userPassword
>> Account Object Classes : inetOrgPerson
>> Account User Name Attributes : cn
>> LDAP Filter for Retrieving Accounts : cn=*
>> Uid Attribute : cn
>> Base Contexts to Synchronize : ou=Users,dc=examples,dc=org
>> Object Classes to Synchronize : inetOrgPerson
>> Status management class : net.tirasa.connid.bundles.ldap.commons.
>> AttributeStatusManagement
>> Retrieve passwords with search : true
>>
>> Capabilies : SEARCH,DELETE,CREATE,UPDATE
>>
>>
>> *Resource* :
>>
>> Propagation Actions :
>> LDAPMembershipPropagation
>> LDAPPasswordPropagation
>>
>> Provisioning rules :
>> username cn true remotekey checked
>> password __PASSWORD__ true password checked
>> Object Link : 'cn=' + username + ',ou=Users,dc=example,dc=org'
>>
>> Can you check if description is a multivalue field?
>>
>> M
>>
>> --
>> Dott. Marco Di Sabatino Di Diodoro
>> Tel. +39 3939065570 <+39%20393%20906%205570>
>>
>> Tirasa S.r.l.
>> Viale D'Annunzio 267 - 65127 Pescara
>> Tel +39 0859116307 <+39%20085%20911%206307> / FAX +39 0859111173
><+39%20085%20911%201173>http://www.tirasa.net
>>
>> Apache Syncope PMC Memberhttp://people.apache.org/~mdisabatino/
>>
>>

--
Marco Di Sabatino Di Diodoro
Reply | Threaded
Open this post in threaded view
|

Re: Cannot synchonize LDAP to Syncope

mdisabatino



Il 15/05/2017 14:24, sasha gesta ha scritto:
Thanks for suggestion. I found the problem was that I had multiple CN attributes in LDAP, after fixing that pulling started to work.

I forwarded the mail about Sasha Gesta.
The problem is resolved.

Marco

On Fri, May 12, 2017 at 11:40 PM, <[hidden email]> wrote:


Il 12 maggio 2017 18:14:24 CEST, sasha gesta <[hidden email]> ha scritto:
>How can I check it? In connector or in resource?
>
I reproduced your settings in my env and I'm able to pull users from ApacheDS to Syncope.

I think there is an user in ApacheDS that have one of the mapped attributes with a multi value.

Use jxplorer or ldapsearch to check it.

M


>On Fri, May 12, 2017 at 6:55 PM, Marco Di Sabatino Di Diodoro <
>[hidden email]> wrote:
>
>>
>>
>> Il 12/05/2017 17:10, sasha gesta ha scritto:
>>
>> *Connector* :
>>
>> host : ldap1.example.org
>> tcp port : 10389
>> principal : uid=admin,ou=system
>> password : ********
>> Base Contexts : ou=Users,dc=example,dc=org
>> Password Attribute : userPassword
>> Account Object Classes : inetOrgPerson
>> Account User Name Attributes : cn
>> LDAP Filter for Retrieving Accounts : cn=*
>> Uid Attribute : cn
>> Base Contexts to Synchronize : ou=Users,dc=examples,dc=org
>> Object Classes to Synchronize : inetOrgPerson
>> Status management class : net.tirasa.connid.bundles.ldap.commons.
>> AttributeStatusManagement
>> Retrieve passwords with search : true
>>
>> Capabilies : SEARCH,DELETE,CREATE,UPDATE
>>
>>
>> *Resource* :
>>
>> Propagation Actions :
>> LDAPMembershipPropagation
>> LDAPPasswordPropagation
>>
>> Provisioning rules :
>> username cn true remotekey checked
>> password __PASSWORD__ true password checked
>> Object Link : 'cn=' + username + ',ou=Users,dc=example,dc=org'
>>
>> Can you check if description is a multivalue field?
>>
>> M
>>
>> --
>> Dott. Marco Di Sabatino Di Diodoro
>> Tel. <a moz-do-not-send="true" href="tel:%2B39%203939065570" value="+393939065570">+39 3939065570 <+39%20393%20906%205570>
>>
>> Tirasa S.r.l.
>> Viale D'Annunzio 267 - 65127 Pescara
>> Tel <a moz-do-not-send="true" href="tel:%2B39%200859116307" value="+390859116307">+39 0859116307 <+39%20085%20911%206307> / FAX <a moz-do-not-send="true" href="tel:%2B39%200859111173" value="+390859111173">+39 0859111173
><+39%20085%20911%201173>http://www.tirasa.net
>>
>> Apache Syncope PMC Memberhttp://people.apache.org/~mdisabatino/
>>
>>

--
Marco Di Sabatino Di Diodoro


-- 
Dott. Marco Di Sabatino Di Diodoro
Tel. +39 3939065570

Tirasa S.r.l.
Viale D'Annunzio 267 - 65127 Pescara
Tel +39 0859116307 / FAX +39 0859111173
http://www.tirasa.net

Apache Syncope PMC Member
http://people.apache.org/~mdisabatino/