directory-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mert Çalışkan <mcalis...@gmail.com>
Subject Re: classcast on ApacheDS
Date Wed, 22 Apr 2009 17:53:57 GMT
Hey,

There was a bug in seam's LdapIdentityStore class (that holds the userExists
method) while doing the filtering..
Problem solved now.

Thanks all,

M.


2009/4/22 Alex Karasulu <akarasulu@gmail.com>

> Hi Mert, Yiannis,
>
> Yiannis is right on this one.  We fixed a lot of bugs in 1.5.5 and I think
> it may impact this scenario.  Give it a try and let us know.  1.5.5 should
> be out here in a week or so.  We apologize for the delays.
>
>
> 2009/4/22 Yiannis Mavroukakis <imavroukakis@gameaccount.com>
>
> > I go via the "build your own" route to be honest, just get the entire
> > source tree via SVN and do a mvn -Dmaven.test.skip=true install
> >
> > Y.
> >
> >
> > Mert Çalışkan wrote:
> >
> >> ok,
> >> is there any nightly builds? or I should do it myself?
> >>
> >> 2009/4/22 Yiannis Mavroukakis <imavroukakis@gameaccount.com>
> >>
> >>
> >>
> >>> Sorry I meant build off of the SVN branch, this is what I am using.
> >>>
> >>>
> >>> Mert Çalışkan wrote:
> >>>
> >>>
> >>>
> >>>> 1.5.5?
> >>>> latest downloads are only for 1.5.4, no?
> >>>> http://directory.apache.org/apacheds/1.5/downloads.html
> >>>>
> >>>> 2009/4/22 Yiannis Mavroukakis <imavroukakis@gameaccount.com>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>> Have you tried this with 1.5.5 ?
> >>>>>
> >>>>>
> >>>>> Mert Çalışkan wrote:
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>> yes, when that method executes, my ApacheDS server (standalone
> working
> >>>>>> one)
> >>>>>> throws that error.
> >>>>>>
> >>>>>>
> >>>>>> 2009/4/22 Yiannis Mavroukakis <imavroukakis@gameaccount.com>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>> Are you getting the same ClassCastException as the root
cause of
> the
> >>>>>>> search?
> >>>>>>>
> >>>>>>>
> >>>>>>> Mert Çalışkan wrote:
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>> Hey,
> >>>>>>>>
> >>>>>>>> via jdni calls I guess, seam's ldap-identity-store is
taking care
> >>>>>>>> of...
> >>>>>>>> lemme elaborate the case,
> >>>>>>>>
> >>>>>>>> Actually before creating a user, the seam framework
is doing a
> >>>>>>>> search
> >>>>>>>> with
> >>>>>>>> userExists method.
> >>>>>>>>
> >>>>>>>>  public boolean userExists(String name)
> >>>>>>>>  {
> >>>>>>>>   InitialLdapContext ctx = null;
> >>>>>>>>   try
> >>>>>>>>   {
> >>>>>>>>      ctx = initialiseContext();
> >>>>>>>>
> >>>>>>>>      String[] userAttr = {getUserNameAttribute()};
> >>>>>>>>
> >>>>>>>>      SearchControls controls = new SearchControls();
> >>>>>>>>      controls.setSearchScope(searchScope);
> >>>>>>>>      controls.setReturningAttributes(userAttr);
> >>>>>>>>      controls.setTimeLimit(getSearchTimeLimit());
> >>>>>>>>
> >>>>>>>>      StringBuilder userFilter = new StringBuilder();
> >>>>>>>>
> >>>>>>>>      Object[] filterArgs = new
> >>>>>>>> Object[getUserObjectClasses().length];
> >>>>>>>>      for (int i = 0; i < getUserObjectClasses().length;
i++)
> >>>>>>>>      {
> >>>>>>>>         userFilter.append("(");
> >>>>>>>>         userFilter.append(getObjectClassAttribute());
> >>>>>>>>         userFilter.append("={");
> >>>>>>>>         userFilter.append(i);
> >>>>>>>>         userFilter.append("})");
> >>>>>>>>         filterArgs[i] = getUserObjectClasses()[i];
> >>>>>>>>      }
> >>>>>>>>
> >>>>>>>>      NamingEnumeration answer = ctx.search(getUserContextDN(),
> >>>>>>>> userFilter.toString(), filterArgs, controls);
> >>>>>>>>      while (answer.hasMore())
> >>>>>>>>      {
> >>>>>>>>         SearchResult sr = (SearchResult) answer.next();
> >>>>>>>>         Attributes attrs = sr.getAttributes();
> >>>>>>>>         Attribute user = attrs.get(getUserNameAttribute());
> >>>>>>>>
> >>>>>>>>         for (int i = 0; i < user.size(); i++)
> >>>>>>>>         {
> >>>>>>>>            Object value = user.get(i);
> >>>>>>>>            if (name.equals(value))
> >>>>>>>>            {
> >>>>>>>>               answer.close();
> >>>>>>>>               return true;
> >>>>>>>>            }
> >>>>>>>>         }
> >>>>>>>>      }
> >>>>>>>>      answer.close();
> >>>>>>>>      return false;
> >>>>>>>>   }
> >>>>>>>>   catch (NamingException ex)
> >>>>>>>>   {
> >>>>>>>>      throw new IdentityManagementException("Error getting
users",
> >>>>>>>> ex);
> >>>>>>>>   }
> >>>>>>>>   finally
> >>>>>>>>   {
> >>>>>>>>      if (ctx != null)
> >>>>>>>>      {
> >>>>>>>>         try
> >>>>>>>>         {
> >>>>>>>>            ctx.close();
> >>>>>>>>         }
> >>>>>>>>         catch (NamingException ex) {}
> >>>>>>>>      }
> >>>>>>>>   }
> >>>>>>>>  }
> >>>>>>>>
> >>>>>>>> and this is throwing out,
> >>>>>>>>
> >>>>>>>>  Caused by:
> >>>>>>>> org.jboss.seam.security.management.IdentityManagementException:
> >>>>>>>> Error getting users
> >>>>>>>>  at
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> org.jboss.seam.security.management.LdapIdentityStore.userExists(LdapIdentityStore.java:1235)
> >>>>>>>>  at
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> org.jboss.seam.security.management.IdentityManager.userExists(IdentityManager.java:172)
> >>>>>>>>  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:597)
> >>>>>>>>  at
> >>>>>>>>
> >>>>>>>>
> org.jboss.el.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:335)
> >>>>>>>>  ... 79 more
> >>>>>>>> Caused by: javax.naming.CommunicationException: Request:
2
> >>>>>>>> cancelled;
> >>>>>>>> remaining name 'ou=people,o=mycompany'
> >>>>>>>>  at com.sun.jndi.ldap.LdapRequest.getReplyBer(LdapRequest.java:60)
> >>>>>>>>  at com.sun.jndi.ldap.Connection.readReply(Connection.java:411)
> >>>>>>>>
> >>>>>>>> M
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> On Wed, Apr 22, 2009 at 3:55 PM, Yiannis Mavroukakis
<
> >>>>>>>> imavroukakis@gameaccount.com> wrote:
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>> How are you creating this new person? Via JNDI calls
or through
> the
> >>>>>>>>> DS
> >>>>>>>>> API?
> >>>>>>>>>
> >>>>>>>>> Y.
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> Mert Çalışkan wrote:
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>> Hi,
> >>>>>>>>>>
> >>>>>>>>>> I'm integrating the seam framework's user management
module with
> >>>>>>>>>> ApacheDS
> >>>>>>>>>> ldap. For creating a new user (person objectClass)
in the DS I
> got
> >>>>>>>>>> the
> >>>>>>>>>> error
> >>>>>>>>>> below,
> >>>>>>>>>> So apacheDS is forcing the client to close the
conn since it
> gets
> >>>>>>>>>> a
> >>>>>>>>>> classcast. I'm on 1.5.4 version. How to debug
& solve this? Any
> >>>>>>>>>> clues?
> >>>>>>>>>>
> >>>>>>>>>> Thanks,
> >>>>>>>>>>
> >>>>>>>>>> M
> >>>>>>>>>>
> >>>>>>>>>> Trace:
> >>>>>>>>>>
> >>>>>>>>>> [15:39:46] WARN
> >>>>>>>>>> [org.apache.directory.server.ldap.LdapProtocolHandler]
> >>>>>>>>>> -
> >>>>>>>>>> [/
> >>>>>>>>>> 127.0.0.1:2453] Unexpected exception forcing
> >>>>>>>>>> session to close: sending disconnect notice
to client.
> >>>>>>>>>> *org.apache.mina.filter.codec.ProtocolDecoderException:
> >>>>>>>>>> java.lang.ClassCastException:
> org.apache.directory.shared.ldap.co
> >>>>>>>>>> dec.search.AttributeValueAssertionFilter cannot
be cast to
> >>>>>>>>>> org.apache.directory.shared.ldap.codec.search.ConnectorFilter*
> >>>>>>>>>> (Hexdump: 30 81 82 02 01 02 63 60 04 17 6F 75
3D 70 65 6F 70 6C
> 65
> >>>>>>>>>> 2C
> >>>>>>>>>> 6F
> >>>>>>>>>> 3D
> >>>>>>>>>> 6F 6E 74 6F 6D 65 74 72 69 63 73 0A 01 02 0
> >>>>>>>>>> A 01 03 02 01 00 02 01 0B 01 01 00 A3 15 04
0B 6F 62 6A 65 63 74
> >>>>>>>>>> 43
> >>>>>>>>>> 6C
> >>>>>>>>>> 61
> >>>>>>>>>> 73
> >>>>>>>>>> 73 04 06 70 65 72 73 6F 6E A3 18 04 0B 6F 6
> >>>>>>>>>> 2 6A 65 63 74 43 6C 61 73 73 04 09 75 69 64
4F 62 6A 65 63 74 30
> >>>>>>>>>> 05
> >>>>>>>>>> 04
> >>>>>>>>>> 03
> >>>>>>>>>> 75
> >>>>>>>>>> 69 64 A0 1B 30 19 04 17 32 2E 31 36 2E 38 3
> >>>>>>>>>> 4 30 2E 31 2E 31 31 33 37 33 30 2E 33 2E 34
2E 32)
> >>>>>>>>>>   at
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:165)
> >>>>>>>>>>   at
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:299)
> >>>>>>>>>>   at
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:53)
> >>>>>>>>>>   at
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:6
> >>>>>>>>>> 48)
> >>>>>>>>>>   at
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilter.java:220)
> >>>>>>>>>>   at
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.run(ExecutorFilter.java:264)
> >>>>>>>>>>   at
> >>>>>>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown
> >>>>>>>>>> Source)
> >>>>>>>>>>   at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown
> >>>>>>>>>> Source)
> >>>>>>>>>>   at java.lang.Thread.run(Unknown Source)
> >>>>>>>>>> Caused by: java.lang.ClassCastException:
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> org.apache.directory.shared.ldap.codec.search.AttributeValueAssertionFilter
> >>>>>>>>>> can
> >>>>>>>>>> not be cast to
> >>>>>>>>>> org.apache.directory.shared.ldap.codec.search.ConnectorFilter
> >>>>>>>>>>   at
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> org.apache.directory.shared.ldap.codec.search.SearchRequest.addCurrentFilter(SearchRequest.java:356)
> >>>>>>>>>>   at
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> org.apache.directory.shared.ldap.codec.actions.InitEqualityMatchFilterAction.action(InitEqualityMatchFilterAc
> >>>>>>>>>> tion.java:70)
> >>>>>>>>>>   at
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> org.apache.directory.shared.asn1.ber.grammar.AbstractGrammar.executeAction(AbstractGrammar.java:153)
> >>>>>>>>>>   at
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> org.apache.directory.shared.asn1.ber.Asn1Decoder.treatTLVDoneState(Asn1Decoder.java:620)
> >>>>>>>>>>   at
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> org.apache.directory.shared.asn1.ber.Asn1Decoder.decode(Asn1Decoder.java:796)
> >>>>>>>>>>   at
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> org.apache.directory.shared.ldap.codec.TwixDecoder.decode(TwixDecoder.java:110)
> >>>>>>>>>>   at
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> org.apache.directory.shared.ldap.message.MessageDecoder.decode(MessageDecoder.java:150)
> >>>>>>>>>>   at
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> org.apache.directory.shared.asn1.codec.Asn1CodecDecoder.decode(Asn1CodecDecoder.java:53)
> >>>>>>>>>>   at
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:158)
> >>>>>>>>>>   ... 8 more
> >>>>>>>>>> [15:39:46] WARN
> >>>>>>>>>> [org.apache.directory.server.ldap.LdapProtocolHandler]
> >>>>>>>>>> -
> >>>>>>>>>> Null LdapSession given to cleanUpSession.
> >>>>>>>>>> [15:39:46] WARN
> >>>>>>>>>> [org.apache.directory.server.ldap.LdapProtocolHandler]
> >>>>>>>>>> -
> >>>>>>>>>> Null LdapSession given to cleanUpSession.
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>
> >>>>
> >>>
> >>
> >>
> >
>
>
> --
> Alex Karasulu
> My Blog :: http://www.jroller.com/akarasulu/
> Apache Directory Server :: http://directory.apache.org
> Apache MINA :: http://mina.apache.org
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message