Openfire中的LDAP配置问题:NullPointerException

Openfire中的LDAP配置问题:NullPointerException,ldap,Ldap,下面是我的OpenLDAP结构: +-->dc=测试,dc=com(3) --->cn=管理员 +-->ou=groups(3)|-->cn=admin |-->cn=irc |-->cn=users |-->在此处创建新条目 +-->ou=users(4)|-->cn=user1 |-->cn=user2 |-->cn=user3 |-->cn=user4 Openfire中的设置: 步骤1: 港口:389 基本DN:ou=用户,dc=测试,dc=com 管理员DN:cn=admin,dc=t

下面是我的OpenLDAP结构:

+-->dc=测试,dc=com(3) --->cn=管理员 +-->ou=groups(3)|-->cn=admin |-->cn=irc |-->cn=users |-->在此处创建新条目 +-->ou=users(4)|-->cn=user1 |-->cn=user2 |-->cn=user3 |-->cn=user4

Openfire中的设置: 步骤1: 港口:389 基本DN:ou=用户,dc=测试,dc=com 管理员DN:cn=admin,dc=test,dc=com

步骤2:用户映射: 用户名字段:uid

步骤3:组映射 组字段:cn 成员字段:唯一成员 描述字段:描述

在单击“保存并继续”的下一个窗口中,出现以下异常:

HTTP错误500

访问/setup/setup-admin-settings.jsp时出现问题。原因:

Server Error
原因:

java.lang.NullPointerException 在org.jivesoftware.openfire.admin.setup.setup\u 002dadmin\u 002dsettings\u jsp.\u jsp服务(setup\u 002dadmin\u 002dsettings\u jsp.java:99) 位于org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97) 位于javax.servlet.http.HttpServlet.service(HttpServlet.java:820) 位于org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:547) 位于org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1359) 位于com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118) 位于com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52) 位于org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1330) 位于org.jivesoftware.util.LocaleFilter.doFilter(LocaleFilter.java:74) 位于org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1330) 位于org.jivesoftware.util.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:50) 位于org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1330) 位于org.jivesoftware.admin.PluginFilter.doFilter(PluginFilter.java:78) 位于org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1330) 位于org.jivesoftware.admin.AuthCheckFilter.doFilter(AuthCheckFilter.java:164) 位于org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1330) 位于org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:478) 位于org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119) 位于org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:520) 位于org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:227) 位于org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:941) 位于org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:409) 位于org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:186) 位于org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:875) 位于org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117) 位于org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:250) 位于org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:149) 位于org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:110) 位于org.eclipse.jetty.server.server.handle(server.java:349) 位于org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:441) 位于org.eclipse.jetty.server.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:919) http.HttpParser.parseNext(HttpParser.java:582) http.HttpParser.parseAvailable(HttpParser.java:218) 位于org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:51) 位于org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:586) 位于org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:44) 位于org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:598) 位于org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:533) 运行(Thread.java:701)

此外,我做了一些更改,可以看到添加管理员屏幕,但无法在此处添加任何现有LDAP用户。出现以下错误:

“未提供用户名或未找到指定的用户名。”

我重新启动了服务器,从那以后,NullPointerException又开始出现了。-(好吧,这值得再次讨论,一旦我完成了这个)

我哪里做错了

仅供参考,openfire和OpenLdap服务器都运行在相同的虚拟机上


感谢您的帮助。

我可以通过更改“用户映射”部分中的“高级设置”进入下一屏幕。我的更改是:Posix模式:无组筛选器:(objectClass=Group)

令人惊讶的是,当我到达添加管理员屏幕时,回来后我重置了这些字段,它仍然工作正常。我想知道重新启动服务器后它是否能工作

同样在步骤1中,确保在主机名中提供机器的ip地址。对于localhost,它对我来说不起作用

谢谢,
希望对你有帮助

对于我的另一个查询,我可以通过将我的基本DN修改为“基本DN:dc=test,dc=com”来添加管理员
通过指定ou,我似乎在限制用户。:)

如果你有这个问题,即使所有的测试都成功了(通过点击“保存并继续”按钮旁边的“测试”按钮),那是因为你花了太长时间才完成测试