Перейти к содержанию

Aleksey_antonyuk

Пользователи
  • Постов

    5
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные Aleksey_antonyuk

  1. В файле \system\Login\Handler\LDAP\LDAP.php

    Добавил проверку на пустой пароль.

    protected function _passwordIsValid( $result, $providedPassword )
        { if (empty($providedPassword))
            {
                return FALSE;
            }
            else    
            {        
            return (bool) @ldap_bind( $this->_ldap(), ldap_get_dn( $this->_ldap(), $result ), ( $this->settings['pw_required'] ? $providedPassword : '' ) );
            }
        }

    Ранее было

    protected function _passwordIsValid( $result, $providedPassword )
    
    {        
           return (bool) @ldap_bind( $this->_ldap(), ldap_get_dn( $this->_ldap(), $result ), ( $this->settings['pw_required'] ? $providedPassword : '' ) );
    
    }

     

  2. После обновления до версии 4.3.6 у меня Авторизация LDAP позволяет теперь авторизироваться просто указав имейл??? При этом под любым пользователем.

    Хотя в настройках метода авториации стоит проверять пароль.

    Проверять пароль не проверяет.  

    Это  так надо?

  3. 1 час назад, Aleksey_antonyuk сказал:

    Всем привет.

    Такая же проблема, появилась после обновления форума. Ничего не переносил. БД выгружал и перезливал - результата нет. Подскажите где в Базе копать?

     

    Заменил в файле system\Login\Handler\LDAP\LDAP.PHP

    В фунции public function authenticateUsernamePassword( \IPS\Login $login, $usernameOrEmail, $password )

    INSERT на REPLACE

    catch ( \IPS\Login\Exception $exception )
                    {
                        if ( $exception->getCode() === \IPS\Login\Exception::MERGE_SOCIAL_ACCOUNT )
                        {
                            \IPS\Db::i()->insertreplace( 'core_login_links', array(
                                'token_login_method'    => $this->id,
                                'token_member'            => $exception->member->member_id,
                                'token_identifier'        => $attrs[ $this->settings['uid_field'] ][0],
                                'token_linked'            => 0,
                            ) );
                        }
                        
                        throw $exception;

     и все заработало

    Проблема скорее всего появилась после того как изменился пароль на сервере LDAP.  После всего этого в профиле пользователя появилась надпись,  reauthorization required.

    Ну и сама ошибка EX1062 при попытке авторизации. После исправления, которое написано выше, форум запросил опять объединить записи.

    Теперь необходимо найти где указан срок действия LDAP записи.  Через какой период он устанавливает требование на reauthorization required.  

×
×
  • Создать...