cancel
Showing results for 
Search instead for 
Did you mean: 

Alfresco 3.2r2 and Sun directory user/group synchronization

eli101
Champ in-the-making
Champ in-the-making
We are evaluating alfresco for our company instead of Microsoft exchange, All our users/groups are stored in a Sun Directory server and I was trying to get alfresco authentication to work with our sun directory server, I followed the alfresco wiki how to setup LDAP authentication & synchronization, authentication works great but as soon as I turn on synchronization with "ldap.synchronization.active=true" things brake.

The alfresco version is 3.2r2, The Sun Directory server is version 6.3.1, the OS is solaris10 x86.

When we enable synchronization in the alfresco-global.properties the alfresco error logs display "LDAP: error code 12 - Unavailable Critical Extension" (full alfresco.log output is below) and alfresco won't come up. one of the interesting things I have seen in the directory server logs every time alfresco starts a user account name "cn=daftAsABrush,dc=woof" tries to connect I am not sure from where that comes, below are all my alfresco & directory server logs.

ldap configuration the tomcat/shared/classes/alfresco-global.properties
#
# The default authentication chain
# To configure external authentication subsystems see:
# http://wiki.alfresco.com/wiki/Alfresco_Authentication_Subsystems
#————-
#authentication.chain=alfrescoNtlm1:alfrescoNtlm
authentication.chain=alfrescoNtlm1:alfrescoNtlm,ldap1:ldap
ldap.authentication.active=true
ldap.authentication.allowGuestLogin=true

ldap.authentication.userNameFormat=uid\=%s,OU\=Computer_IT,ou\=People,o\=company.com,dc\=company,dc\=com
ldap.authentication.java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory
ldap.authentication.java.naming.provider.url=ldap://ldap.company.com:389
ldap.authentication.java.naming.security.authentication=simple
ldap.authentication.escapeCommasInBind=false
ldap.authentication.escapeCommasInUid=false
ldap.authentication.defaultAdministratorUserNames=admin
ldap.synchronization.active=true
ldap.synchronization.java.naming.security.principal=cn\=user,ou\=profile,dc\=company,dc\=com
ldap.synchronization.java.naming.security.credentials=password
ldap.synchronization.queryBatchSize=5000
ldap.synchronization.groupQuery=(objectclass\=posixGroup)
ldap.synchronization.groupDifferentialQuery=(&(objectclass\=posixGroup)(!(modifyTimestamp<\={0})))
ldap.synchronization.personQuery=(objectclass\=inetOrgPerson)
ldap.synchronization.personDifferentialQuery=(&(objectclass\=inetOrgPerson)(!(modifyTimestamp<\={0})))
ldap.synchronization.modifyTimestampAttributeName=modifyTimestamp
ldap.synchronization.timestampFormat=yyyyMMddHHmmss'Z'
ldap.synchronization.userIdAttributeName=uid
ldap.synchronization.userFirstNameAttributeName=givenName
ldap.synchronization.userLastNameAttributeName=sn
ldap.synchronization.userEmailAttributeName=mail
ldap.synchronization.groupIdAttributeName=cn
ldap.synchronization.groupType=posixGroup
#ldap.synchronization.userOrganizationalIdAttributeName=msExchALObjectVersion
ldap.synchronization.defaultHomeFolderProvider=homeDirectory
ldap.synchronization.groupSearchBase=ou\=Group,o\=bhphoto.com,dc\=company,dc\=com
ldap.synchronization.userSearchBase=OU\=Computer_IT,ou\=People,o\=company.com,dc\=company,dc\=com
ldap.synchronization.groupMemberAttributeName=memberUid
ldap.synchronization.synchronizeChangesOnly=true
ldap.synchronization.import.cron
ldap.synchronization.syncOnStartup=true
ldap.synchronization.syncWhenMissingPeopleLogIn=true
ldap.synchronization.autoCreatePeopleOnLogin=false
ldap.synchronization.personType=inetOrgPerson

Output from the alfresco.log
11:25:52,830 INFO  [org.alfresco.config.JndiPropertyPlaceholderConfigurer] Loading properties file from class path resource [alfresco/alfresco-shared.properties]
11:25:52,894 INFO  [org.alfresco.repo.security.sync.ChainingUserRegistrySynchronizer] Synchronizing users and groups with user registry 'ldap1'
11:25:52,899 INFO  [org.alfresco.repo.security.sync.ChainingUserRegistrySynchronizer] Retrieving all groups from user registry 'ldap1'
11:25:52,991 ERROR [org.alfresco.repo.security.sync.ChainingUserRegistrySynchronizer] Synchronization aborted due to error
org.alfresco.error.AlfrescoRuntimeException: 10270000 User and group import failed
        at org.alfresco.repo.security.sync.ldap.LDAPUserRegistry.processQuery(LDAPUserRegistry.java:826)
        at org.alfresco.repo.security.sync.ldap.LDAPUserRegistry.getGroups(LDAPUserRegistry.java:593)
        at org.alfresco.repo.security.sync.ChainingUserRegistrySynchronizer.syncWithPlugin(ChainingUserRegistrySynchronizer.java:521)
        at org.alfresco.repo.security.sync.ChainingUserRegistrySynchronizer.synchronize(ChainingUserRegistrySynchronizer.java:396)
        at org.alfresco.repo.security.sync.ChainingUserRegistrySynchronizer$7.doWork(ChainingUserRegistrySynchronizer.java:1217)
        at org.alfresco.repo.security.authentication.AuthenticationUtil.runAs(AuthenticationUtil.java:514)
        at org.alfresco.repo.security.sync.ChainingUserRegistrySynchronizer.onBootstrap(ChainingUserRegistrySynchronizer.java:1211)
        at org.alfresco.util.AbstractLifecycleBean.onApplicationEvent(AbstractLifecycleBean.java:62)
        at org.springframework.context.event.SimpleApplicationEventMulticaster$1.run(SimpleApplicationEventMulticaster.java:77)
        at org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:49)
        at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:75)
        at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:246)
        at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:617)
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:355)
        at org.alfresco.repo.management.subsystems.ChildApplicationContextFactory$ApplicationContextState.start(ChildApplicationContextFactory.java:637)
        at org.alfresco.repo.management.subsystems.AbstractPropertyBackedBean.start(AbstractPropertyBackedBean.java:454)
        at org.alfresco.repo.management.subsystems.AbstractPropertyBackedBean.onApplicationEvent(AbstractPropertyBackedBean.java:377)
        at org.springframework.context.event.SimpleApplicationEventMulticaster$1.run(SimpleApplicationEventMulticaster.java:77)
        at org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:49)
        at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:75)
        at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:246)
        at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:617)
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:355)
        at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:246)
        at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:189)
        at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:49)
        at org.alfresco.web.app.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:69)
        at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3843)
        at org.apache.catalina.core.StandardContext.start(StandardContext.java:4342)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
        at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:627)
        at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:553)
        at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:488)
        at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1149)
        at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
        at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
        at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
        at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
        at org.apache.catalina.core.StandardService.start(StandardService.java:516)
        at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:592)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by: javax.naming.OperationNotSupportedException: [LDAP: error code 12 - Unavailable Critical Extension]; remaining name 'ou=Group,o=company.com,dc=company,dc=com'
        at com.sun.jndi.ldap.LdapCtx.mapErrorCode(LdapCtx.java:3077)
        at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2963)
        at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2769)
        at com.sun.jndi.ldap.LdapCtx.searchAux(LdapCtx.java:1822)
        at com.sun.jndi.ldap.LdapCtx.c_search(LdapCtx.java:1745)
        at com.sun.jndi.toolkit.ctx.ComponentDirContext.p_search(ComponentDirContext.java:368)
        at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.search(PartialCompositeDirContext.java:338)
        at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.search(PartialCompositeDirContext.java:321)
        at javax.naming.directory.InitialDirContext.search(InitialDirContext.java:248)
        at org.alfresco.repo.security.sync.ldap.LDAPUserRegistry.processQuery(LDAPUserRegistry.java:814)
        … 50 more
11:25:53,017 WARN  [org.alfresco.repo.security.sync.ChainingUserRegistrySynchronizer] Failed initial synchronize with user registries
org.alfresco.error.AlfrescoRuntimeException: 10270000 User and group import failed
        at org.alfresco.repo.security.sync.ldap.LDAPUserRegistry.processQuery(LDAPUserRegistry.java:826)
        at org.alfresco.repo.security.sync.ldap.LDAPUserRegistry.getGroups(LDAPUserRegistry.java:593)
        at org.alfresco.repo.security.sync.ChainingUserRegistrySynchronizer.syncWithPlugin(ChainingUserRegistrySynchronizer.java:521)
        at org.alfresco.repo.security.sync.ChainingUserRegistrySynchronizer.synchronize(ChainingUserRegistrySynchronizer.java:396)
        at org.alfresco.repo.security.sync.ChainingUserRegistrySynchronizer$7.doWork(ChainingUserRegistrySynchronizer.java:1217)
        at org.alfresco.repo.security.authentication.AuthenticationUtil.runAs(AuthenticationUtil.java:514)
        at org.alfresco.repo.security.sync.ChainingUserRegistrySynchronizer.onBootstrap(ChainingUserRegistrySynchronizer.java:1211)
        at org.alfresco.util.AbstractLifecycleBean.onApplicationEvent(AbstractLifecycleBean.java:62)
        at org.springframework.context.event.SimpleApplicationEventMulticaster$1.run(SimpleApplicationEventMulticaster.java:77)
        at org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:49)
        at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:75)
        at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:246)
        at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:617)
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:355)
        at org.alfresco.repo.management.subsystems.ChildApplicationContextFactory$ApplicationContextState.start(ChildApplicationContextFactory.java:637)
        at org.alfresco.repo.management.subsystems.AbstractPropertyBackedBean.start(AbstractPropertyBackedBean.java:454)
        at org.alfresco.repo.management.subsystems.AbstractPropertyBackedBean.onApplicationEvent(AbstractPropertyBackedBean.java:377)
        at org.springframework.context.event.SimpleApplicationEventMulticaster$1.run(SimpleApplicationEventMulticaster.java:77)
        at org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:49)
        at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:75)
        at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:246)
        at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:617)
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:355)
        at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:246)
        at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:189)
        at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:49)
        at org.alfresco.web.app.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:69)
        at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3843)
        at org.apache.catalina.core.StandardContext.start(StandardContext.java:4342)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
        at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:627)
        at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:553)
        at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:488)
        at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1149)
        at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
        at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
        at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
        at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
        at org.apache.catalina.core.StandardService.start(StandardService.java:516)
        at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:592)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by: javax.naming.OperationNotSupportedException: [LDAP: error code 12 - Unavailable Critical Extension]; remaining name 'ou=Group,o=company.com,dc=company,dc=com'
        at com.sun.jndi.ldap.LdapCtx.mapErrorCode(LdapCtx.java:3077)
        at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2963)
        at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2769)
        at com.sun.jndi.ldap.LdapCtx.searchAux(LdapCtx.java:1822)
        at com.sun.jndi.ldap.LdapCtx.c_search(LdapCtx.java:1745)
        at com.sun.jndi.toolkit.ctx.ComponentDirContext.p_search(ComponentDirContext.java:368)
        at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.search(PartialCompositeDirContext.java:338)
        at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.search(PartialCompositeDirContext.java:321)
        at javax.naming.directory.InitialDirContext.search(InitialDirContext.java:248)
        at org.alfresco.repo.security.sync.ldap.LDAPUserRegistry.processQuery(LDAPUserRegistry.java:814)
        … 50 more
11:25:53,018 INFO  [org.alfresco.repo.management.subsystems.ChildApplicationContextFactory] Startup of 'Synchronization' subsystem, ID: [Synchronization, default] complete
11:25:53,264 INFO  [org.alfresco.service.descriptor.DescriptorService] Alfresco JVM - v1.5.0_20-b02; maximum heap size 826.000MB
[…] snip

I made bold what looks strange to me, any help is appreciated
———
tail -f access
[27/Nov/2009:11:24:28 -0500] conn=356185 op=-1 msgId=-1 - fd=396 slot=396 LDAP connection from 10.100.0.173:38787 to 10.100.12.55
[27/Nov/2009:11:24:28 -0500] conn=356185 op=0 msgId=1 - BIND dn="" method=128 version=3
[27/Nov/2009:11:24:28 -0500] conn=356185 op=0 msgId=1 - RESULT err=0 tag=97 nentries=0 etime=0 dn=""
[27/Nov/2009:11:24:29 -0500] conn=356185 op=1 msgId=2 - UNBIND
[27/Nov/2009:11:24:29 -0500] conn=356185 op=1 msgId=-1 - closing from 10.100.0.173:38787 - U1 - Connection closed by unbind client -
[27/Nov/2009:11:24:29 -0500] conn=356185 op=-1 msgId=-1 - closed.
——–
[27/Nov/2009:11:24:28 -0500] conn=356186 op=-1 msgId=-1 - fd=397 slot=397 LDAP connection from 10.100.0.173:38788 to 10.100.12.55
[27/Nov/2009:11:24:28 -0500] conn=356186 op=0 msgId=1 - BIND dn="daftAsABrush" method=128 version=3, Invalid DN
[27/Nov/2009:11:24:28 -0500] conn=356186 op=0 msgId=1 - RESULT err=34 tag=97 nentries=0 etime=0, Invalid DN
[27/Nov/2009:11:24:28 -0500] conn=356186 op=1 msgId=0 - RESULT err=80 tag=120 nentries=0 etime=0
[27/Nov/2009:11:24:28 -0500] conn=356186 op=-1 msgId=-1 - closing from 10.100.0.173:38788 - A1 - Client aborted connection -
[27/Nov/2009:11:24:28 -0500] conn=356186 op=-1 msgId=-1 - closed.
——–
[27/Nov/2009:11:24:28 -0500] conn=356187 op=-1 msgId=-1 - fd=397 slot=397 LDAP connection from 10.100.0.173:38789 to 10.100.12.55
[27/Nov/2009:11:24:28 -0500] conn=356187 op=0 msgId=1 - BIND dn="cn=daftAsABrush,dc=woof" method=128 version=3
[27/Nov/2009:11:24:28 -0500] conn=356187 op=0 msgId=1 - RESULT err=32 tag=97 nentries=0 etime=0
[27/Nov/2009:11:24:28 -0500] conn=356187 op=1 msgId=0 - RESULT err=80 tag=120 nentries=0 etime=0
[27/Nov/2009:11:24:28 -0500] conn=356187 op=-1 msgId=-1 - closing from 10.100.0.173:38789 - A1 - Client aborted connection -
[27/Nov/2009:11:24:28 -0500] conn=356187 op=-1 msgId=-1 - closed.
—— We get error 49 even the user password is correct
[27/Nov/2009:11:24:28 -0500] conn=356188 op=-1 msgId=-1 - fd=397 slot=397 LDAP connection from 10.100.0.173:38790 to 10.100.12.55
[27/Nov/2009:11:24:28 -0500] conn=356188 op=0 msgId=1 - BIND dn="cn=user,ou=profile,dc=company,dc=com" method=128 version=3
[27/Nov/2009:11:24:28 -0500] conn=356188 op=0 msgId=1 - RESULT err=49 tag=97 nentries=0 etime=0
[27/Nov/2009:11:24:28 -0500] conn=356188 op=1 msgId=0 - RESULT err=80 tag=120 nentries=0 etime=0
[27/Nov/2009:11:24:28 -0500] conn=356188 op=-1 msgId=-1 - closing from 10.100.0.173:38790 - A1 - Client aborted connection -
[27/Nov/2009:11:24:28 -0500] conn=356188 op=-1 msgId=-1 - closed.
——-
[27/Nov/2009:11:24:29 -0500] conn=356189 op=-1 msgId=-1 - fd=397 slot=397 LDAP connection from 10.100.0.173:38791 to 10.100.12.55
[27/Nov/2009:11:24:29 -0500] conn=356189 op=0 msgId=1 - BIND dn="cn=user,ou=profile,dc=company,dc=com" method=128 version=3
[27/Nov/2009:11:24:29 -0500] conn=356189 op=0 msgId=1 - RESULT err=0 tag=97 nentries=0 etime=0 dn="cn=user,ou=profile,dc=company,dc=com"
——-
[27/Nov/2009:11:24:29 -0500] conn=356190 op=-1 msgId=-1 - fd=398 slot=398 LDAP connection from 10.100.0.173:38792 to 10.100.12.55
[27/Nov/2009:11:24:29 -0500] conn=356190 op=0 msgId=1 - BIND dn="cn=user,ou=profile,dc=company,dc=com" method=128 version=3
[27/Nov/2009:11:24:29 -0500] conn=356190 op=0 msgId=1 - RESULT err=0 tag=97 nentries=0 etime=0 dn="cn=user,ou=profile,dc=company,dc=com"
[27/Nov/2009:11:24:29 -0500] conn=356190 op=1 msgId=2 - SRCH base="ou=Group,o=company.com,dc=company,dc=com" scope=2 filter="(objectClass=posixGroup)", unsupported critical extension
[27/Nov/2009:11:24:29 -0500] conn=356190 op=1 msgId=2 - RESULT err=12 tag=101 nentries=0 etime=0

Any help is greatly appreciated,
-Eli
4 REPLIES 4

mrogers
Star Contributor
Star Contributor
Looks like you are suffering from https://issues.alfresco.com/jira/browse/ETHREEOH-3595.

eli101
Champ in-the-making
Champ in-the-making
Thank you so much for the response, I tried finding the issue/url you posted but couldn't find it, I also searched on issues.alfresco.com for this issue number and wasn't able to find it, would you mind pointing me in the right direction.
Thanks in advance for your help.
Eli

dward
Champ on-the-rise
Champ on-the-rise
My guess is that your directory doesn't support the paged results control.

Try this

ldap.synchronization.queryBatchSize=0

eli101
Champ in-the-making
Champ in-the-making
Thanks a million, the change helped. I so a similar problem/solution on this forum, I just wasn't sure what change will help, I tried commenting out the ldap.synchronization.queryBatchSize, but that didn't help (looks like it has a default value), but setting it to 0 helped. The sun directory doesn't support simple paged results control but has something more advanced called VLV index's, The VLV Control allows a client to request the server in a manageable list of entries.

From sun blogs on VLV index's
The Control provides following options to the client
1. before:after:index:count
before: Specify the number of entries before the target entry
after: Specify the number of entries after the target entry
index: Offset to the target entry. Number 1 means first entry
count: Number of the size of result set for a search filter.

More information is available on sun blogs http://blogs.sun.com/kanthi/entry/ldap_paged_results_more, it looks like alfresco doesn't support the VLV paged results, please let me know if I am wrong.
Thanks again for the help.