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 13:29:31 GMT
and with the same LDIF, it works ok on openldap...
if there are some ways to debug this, I can get that done...

M

2009/4/22 Mert Çalışkan <mcaliskan@gmail.com>

> 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.
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>
>>>
>>
>

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