昨天我们在我们的websphere应用服务器7.0上安装了fixpack 21。 我们的一个java web应用程序是使用LDAP对用户进行身份验证,以允许他们访问网站。由于我们安装了fixpack,因此我们无法访问我们的网站。 在日志文件中,我收到以下错误消息:
javax.naming.directory.InvalidSearchFilterException:无效的属性描述;剩余名称'o = testsite.com,c = be' 在com.sun.jndi.ldap.Filter.encodeSimpleFilter(Filter.java:417) 在com.sun.jndi.ldap.Filter.encodeFilter(Filter.java:152) at com.sun.jndi.ldap.Filter.encodeFilterString(Filter.java:56) 在com.sun.jndi.ldap.LdapClient.search(LdapClient.java:520) 在com.sun.jndi.ldap.LdapCtx.doSearch(LdapCtx.java:1962) 在com.sun.jndi.ldap.LdapCtx.searchAux(LdapCtx.java:1824) 在com.sun.jndi.ldap.LdapCtx.c_search(LdapCtx.java:1749) at com.sun.jndi.toolkit.ctx.ComponentDirContext.p_search(ComponentDirContext.java:368) 在com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.search(PartialCompositeDirContext.java:338) at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.search(PartialCompositeDirContext.java:321) 在javax.naming.directory.InitialDirContext.search(InitialDirContext.java:248) 在com.testsite.directory.core.DSProxy.getUserGroupsInContext(DSProxy.java:527) 在com.testsite.directory.core.DSProxy.getAllGroups(DSProxy.java:569) 在com.testsite.directory.core.IntranetUser.getUserProfile(IntranetUser.java:112) 在com.testsite.intranet.security.common.UserProvider.getUser(UserProvider.java:22) 在com.testsite.intranet.security.authenticator.Authenticator.checkUserAndPassword(Authenticator.java:220) 在com.testsite.intranet.security.authenticator.Authenticator.checkWebsealAuthentication(Authenticator.java:137) 在com.testsite.intranet.security.authenticator.Authenticator.getUser(Authenticator.java:271) 在com.testsite.intranet.security.authenticator.AuthenticatorFilter.doFilter(AuthenticatorFilter.java:50) 在com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:188) 在com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:116) 在org.apache.myfaces.component.html.util.ExtensionsFilter.doFilter(ExtensionsFilter.java:122) 在com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:188) 在com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:116) 在com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:77) 在com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:908) 在com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:934) 在com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:502) 在com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:179) 在com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3935) 在com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:276) 在com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:931) 在com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1592) 在com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:186) 在com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:452) 在com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:511) 在com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:305) 在com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:83) at com.ibm.ws.ssl.channel.impl.SSLReadServiceContext $ SSLReadCompletedCallback.complete(SSLReadServiceContext.java:1784) at com.ibm.ws.tcp.channel.impl.WorkQueueManager.requestComplete(WorkQueueManager.java:557) 在com.ibm.ws.tcp.channel.impl.WorkQueueManager.attemptIO(WorkQueueManager.java:607) 在com.ibm.ws.tcp.channel.impl.WorkQueueManager.workerRun(WorkQueueManager.java:984) 在com.ibm.ws.tcp.channel.impl.WorkQueueManager $ Worker.run(WorkQueueManager.java:1069) 在com.ibm.ws.util.ThreadPool $ Worker.run(ThreadPool.java:1604)
在安装修订包之前,我们没有遇到此问题。 我在互联网上搜索了这个特定的错误,但是我找不到任何可以与WAS的fixpack安装相关联的东西。是否有人有同样的问题或有任何建议让它再次发挥作用?
提前致谢。
汤姆
答案 0 :(得分:1)
您的回复中提供的过滤器是无效的搜索过滤器。在 ' '
之后(uniqueMember
之前)的空格=
在搜索过滤器中是非法的。 ' '
之后的=
是合法的,但是,它可能不是您想要的。
答案 1 :(得分:1)
我们将Websphere 7.0 Fixpack 11升级到Fixpack 19,当然包括Java SDK。这给了我们一些使用ldap搜索的应用程序错误。似乎新的Java SDK对ldap搜索过滤器的解析比旧的更加严格。例如,我们的搜索过滤器具有不平衡的paranthesis和属性名称,非法字符如p_number,在升级之前工作正常。