[jboss-dev-forums] [Design of JBoss Portal] - LDAP offset/limit search implementation

bdaw do-not-reply at jboss.com
Sat Mar 3 06:32:45 EST 2007


I have little problem with implementation of LDAP searches in portal. In our API we have methods such as:

Set findUsers(int offset, int limit)
  | Set findUsersFilteredByUserName(String filter, int offset, int limit)
  | Set findRoleMembers(String roleName, int offset, int limit, String userNameFilter)
  | 

For LDAP I use plain JNDI. Problem is that I don't see anything that can be used to implement offset/limit behaviour. In java 1.4 there is a BATCH size. But it doesn't seem to be enough because I don't see a guarantee that same searches will return same set of elements. Am I wrong about it? In typical usage scenario in portal (paginate view of users in UserPortlet) we perform several independent searches. 

I know that there is server side sorting control in for jndi but I'm quite sure it can't be considered as supported by all LDAP servers.

I also found that in java 1.5 (we need to be 1.4 compliant) there is a PagedResultControl which is quite cool. The funny thing is the statement:
anonymous wrote : Note: The Paged Search Control is supported by the Windows Active Directory Server. It's not supported by the Sun Java Directory Server version 5.2
Which for me it translates into: useless - unless you implement a dedicated solution. But still if we think about separate searches it may not be the exact solution.

At the moment implementation is dummy - retrieve all, sort and get a sub list - the least efficient solution if you think about LDAP with hundreds of thousand s of users...

The other possible solution is some kind of caching...

Any suggestion from LDAP/JNDI gury?


View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4024825#4024825

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4024825



More information about the jboss-dev-forums mailing list