Spark 2.8.3 не работает поиск людей

Добрый день.

Есть на сегодняшний день такая проблема что в Spark не работает поиск людей (при любом запросе ничего не выдает).

Работает совместно с Openfire 4.1.1. Авторизация пользователей через AD. В самом Openfire все пользователи корректно находятся и отображаются.

Reported a few times already [SPARK-1873] Search doesn’t work with AD integration - IgniteRealtime JIRA

But no solution. We don’t have experienced Spark developers who are also LDAP experts.

Появилась такая же проблема после обновления сервера до 4.1.1 - не ищет на клиенте, на сервере порядок. Попробую вернуться на сервер 4.0.3 - там проблем не было. Версия Spark - 2.8.1, в 2.8.3 убрали все нужное - историю не посмотреть, завершить нормально работу клиента невозможно, только принудительно. Не было печали - апдейтов накачали…

Ответ про отсутствие специалистов по LDAP не лезет ни в какие ворота - с древней версии 3.6.4 все работало, а в новой 4.1.1 - нет.

Добавлено:

В том же домене на другом сервере с теми же параметрами поднят тестовый экземпляр OpenFire 4.0.2 и обновлен до 4.1.1 - поиск из клиента 2.8.1 работает без вопросов. Единственное отличие - в тестовом экземпляре используется встроенная база, в боевом - MySQL, потому что встроенная на 70-100 пользователей проявляет нездоровый аппетит к памяти, приводящий к необходимости периодически рестартовать сервис OpenFire или, в особо запущенных случаях - весь сервер.

But search worked even in OpenFire 3.6.4 + Spark 2.5.8, users from AD, no NTLM plugin, and doesn’t work in OpenFire 4.1.1 with same settings - it seems that something is wrong…

в 2.8.3 убрали все нужное

Update Client Control plugin on the server (or remove it, if it is not needed).

Ответ про отсутствие специалистов по LDAP не лезет ни в какие ворота - с древней версии 3.6.4 все работало, а в новой 4.1.1 - нет.

If software development could always work without affecting already existing code/features, that would be an ideal world. Everyone breaks something by adding new features, fixing bugs. But usually it is hard to tell what exactly is breaking things.

I have filed a ticket for Openfire based on your comment. It looks like it might be an issue with Openfire (4.1 was a major update, which changed lots of things). [OF-1284] Search in clients do not work with standalone database - IgniteRealtime JIRA

Finally - problem is solved - i just replaced Search plugin 1.7.1 with 1.7.0 - from old backup - and now search from client works. Openfire 4.1.1, Spark 2.8.1.

По-русски - помогла замена плагина поиска с версии 1.7.1 на старую 1.7.0 из бэкапа, даже OpenFire перезапускать не пришлось.

Как всегда - сам спросил, сам ответил…

1.7.1 only had this change [OF-1165] Stored Cross-Site Scripting - IgniteRealtime JIRA which was suggested by a security researcher. Looks like escaping characters breaks searches (though not in all cases). Actual change: OF-1165 fixed Stored Cross-Site Scripting vulnerability by wrooot · Pull Request #620 · igniterealtime/Openfire · GitHub

Подскажите, где взять старую версию плагина? 1.7.0? Если у кого-то есть, прошу отправить на asok@li.ru. Спасибо!

Here
search.jar (48622 Bytes)

1 Like

Благодарю, теперь все работает :slight_smile:

Мне к сожалению не помог не откат на старую версию Spark, не на старую версию плагина Search.

Написал в другой ветке связанной с openfire.xml возможно там подскажут в чём может быть проблема…

OpenFire 4.1.3
Search plugin 1.7.1

Spark 2.8.3 Build: 960 Ignite Realtime Apache License, Version 2.0 www.igniterealtime.org Smack Version: 4.1.9 (4.1.8-4-gaf6e80d 2016-11-19) JRE Version: 1.8.0_121

I install old search plugin 1.7.0 - did not help.

Old versions of Spark are searched correctly.

The debugger shows that the server issues the correct answer to the Spark’s request. But the client does not display the result of the search.

— RU version of message

Ставил search plugin 1.7.0 - не помогло.

Старые версии Spark ищут корректно.

В отладчике видно, что сервер выдает правильный ответ на запрос Spark. Но клиент не отображает полученный результат поиска.

example of server answer

<iq to="bigkaa@blah.ru/Spark" from="search.blah.ru" id="b0Phq-1598" type="result">
   <query xmlns="jabber:iq:search">
     <x xmlns="jabber:x:data" type="result">
       <reported>
         <field label="JID" var="jid" type="jid-single"/>
         <field label="Имя пользователя" var="Username" type="text-single"/>
         <field label="Имя" var="Name" type="text-single"/>
         <field label="Адрес e-mail" var="Email" type="text-single"/>
       </reported>
       <item>
         <field var="Адрес e-mail">
           <value/>
         </field>
         <field var="jid">
           <value>nikolaeva_a@blah.ru</value>
         </field>
         <field var="Имя">
           <value>Николаева Анна</value>
         </field>
         <field var="Имя пользователя">
           <value>nikolaeva_a</value>
         </field>
       </item>
       <field var="FORM_TYPE" type="hidden"/>
     </x>
   </query>
</iq>

There was a fix for search issues recently https://github.com/igniterealtime/Spark/pull/403. Anybody care to test with nightly build if maybe this issue is resolved also? http://www.igniterealtime.org/downloads/nightly_spark.jsp

1 Like

Hello.

I try spark_2_9_0-20180112 build. The search works.

Thank you.

1 Like

The search works, but the fields in the table are not populated. I marked them in the picture.

Anyone else care to test the latest nightly build and tell if search is working again with LDAP? https://www.igniterealtime.org/downloads/nightly_spark.jsp

Be warned that this version has bugs and is not ready for production, you can just test if search is working and go back to 2.8.3.

Scratch that, looks like search is not working at all in current builds after Smack 4.3 update. Will have to fix that first https://issues.igniterealtime.org/browse/SPARK-2107

Please try with 2.9.3 and report if it is still only returning usernames. @ilyaHlevnoy tested with LDAP integration and it works for him. https://igniterealtime.atlassian.net/browse/SPARK-2106