powered by Jive Software

Possible bug? Group search filter being applied twice

Using Openfire 3.8.2 on Linux with Active Directory 2003.

With the following group filter: (&(objectClass=group)(name=OF_*))

I get two groups returned when I use any other LDAP filtering tool:

OF_testgroup

OF_All_Users

Which is what I expect.

When you goto the openfire console: Users/Groups > Groups > Group summary.

I see Total Groups: 2

But no groups listed!

I then open wireshark on my domain controller to learn after it gets list of groups using the above mentioned filter, it reapplies the filter to the group when it tries to gather membership.

The expanded filter after the first lookup:

Filter: (&(cn=OF_testgroup)(&(objectClass=group)(name=OF_OF_testgroup)))

While I understand that the filter is expanded using the groupname to replace the {0}, but why would it use the filter while trying to attach to the group to persumably get more info. The search filter should only be applied to limit the list of groups and not while looking for a single group.

Any ideas?!?

Debug:

2014.01.28 16:11:19 org.jivesoftware.openfire.ldap.LdapManager - LdapManager: Trying to find a groups's DN based on it's groupname. cn: OF_All_Users, Base DN: dc="xx",dc="xx",dc="com"... 2014.01.28 16:11:19 org.jivesoftware.openfire.ldap.LdapManager - LdapManager: Creating a DirContext in LdapManager.getContext()... 2014.01.28 16:11:19 org.jivesoftware.openfire.ldap.LdapManager - LdapManager: Warning: Using unencrypted connection to LDAP service! 2014.01.28 16:11:19 org.jivesoftware.openfire.ldap.LdapManager - LdapManager: Created hashtable with context values, attempting to create context... 2014.01.28 16:11:19 org.jivesoftware.openfire.ldap.LdapManager - LdapManager: ... context created successfully, returning. 2014.01.28 16:11:19 org.jivesoftware.openfire.ldap.LdapManager - LdapManager: Starting LDAP search... 2014.01.28 16:11:19 org.jivesoftware.openfire.ldap.LdapManager - LdapManager: ... search finished 2014.01.28 16:11:19 org.jivesoftware.openfire.ldap.LdapManager - LdapManager: Group DN based on groupname 'OF_All_Users' not found. 2014.01.28 16:11:19 org.jivesoftware.openfire.ldap.LdapManager - LdapManager: Exception thrown when searching for groupDN based on groupname 'OF_All_Users' org.jivesoftware.openfire.group.GroupNotFoundException: Groupname OF_All_Users not found at org.jivesoftware.openfire.ldap.LdapManager.findGroupDN(LdapManager.java:1109) at org.jivesoftware.openfire.ldap.LdapManager.findGroupDN(LdapManager.java:1036) at org.jivesoftware.openfire.ldap.LdapGroupProvider.getGroup(LdapGroupProvider.java:82) at org.jivesoftware.openfire.group.GroupManager.getGroup(GroupManager.java:330) at org.jivesoftware.openfire.group.GroupManager.getGroup(GroupManager.java:309) at org.jivesoftware.openfire.group.GroupCollection$GroupIterator.getNextElement(GroupCollection.java:113) at org.jivesoftware.openfire.group.GroupCollection$GroupIterator.hasNext(GroupCollection.java:76) at org.jivesoftware.openfire.admin.group_002dsummary_jsp._jspService(group_002dsummary_jsp.java:211) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97) at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:547) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1359) at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118) at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1330) at org.jivesoftware.util.LocaleFilter.doFilter(LocaleFilter.java:74) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1330) at org.jivesoftware.util.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:50) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1330) at org.jivesoftware.admin.PluginFilter.doFilter(PluginFilter.java:78) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1330) at org.jivesoftware.admin.AuthCheckFilter.doFilter(AuthCheckFilter.java:164) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1330) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:478) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:520) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:227) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:941) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:409) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:186) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:875) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117) at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:250) at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:149) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:110) at org.eclipse.jetty.server.Server.handle(Server.java:349) at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:441) at org.eclipse.jetty.server.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:919) at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:582) at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:218) at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:51) at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:586) at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:44) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:598) at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:533) at java.lang.Thread.run(Thread.java:679)