directory-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Yiannis Mavroukakis <imavrouka...@gameaccount.com>
Subject Re: classcast on ApacheDS
Date Thu, 23 Apr 2009 10:24:53 GMT
aaah...evil seam...all the same, I'd go for 1.5.5, loads of fixes, plus 
uses "new" MINA.

Mert Çalışkan wrote:
> 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
View raw message