Etherpad-lite: Не могу войти в админку, окно учетных данных спрашивает снова и снова и снова ...

Созданный на 1 нояб. 2019  ·  5Комментарии  ·  Источник: ether/etherpad-lite

У меня свежая и чистая установка epl, и я не могу войти на страницу администратора. Он снова и снова просит ввести учетные данные. Я не использую плагин аутентификации.

Версия: 1.8.0beta

settings.conf

{
  "users": {
     "admin": {
        "is_admin": true,
        "password": ****
     }
  },

  "skinName": "colibris",
  "ip": "127.0.0.1",
  "port": 9001,
  "showSettingsInAdminPage": true,
  "dbType" : "mysql",
  "dbSettings" : {
    "user":     ****,
    "host":     "localhost",
    "port":     3306,
    "password": ****,
    "database": "etherpad_lite_db",
    "charset":  "utf8mb4"
  },
  "suppressErrorsInPadText": false,
  "requireSession": false,
  "editOnly": false,
  "sessionNoPassword": false,
  "minify": true,
  "maxAge": 21600, // 60 * 60 * 6 = 6 hours
   "abiword": "/usr/bin/abiword",
  "soffice": null,
  "tidyHtml": "/usr/bin/tidy",
  "allowUnknownFileEnds": true,
  "requireAuthentication": false,
  "requireAuthorization": false,
  "trustProxy": false,
  "disableIPlogging": true,
  "automaticReconnectionTimeout": 0,
  "socketTransportProtocols" : ["xhr-polling", "jsonp-polling", "htmlfile"],
  "loadTest": false,
  "exposeVersion": false,
  "loglevel": "INFO",
  [...]
}

Я поискал в сети, но не нашел ни одной темы, касающейся моей проблемы. Любая идея?

-- Обновлять:

Вернулся к 1.7.5, где доступен админ.

Admin Bug

Самый полезный комментарий

Изменение, реализовавшее # 3648 (7c099fef5e08), было неправильным и привело к отключению всех пользователей при запуске.

Проблема была двоякой:

  1. _.filter() для объекта возвращает массив перечислимых значений объекта и удаляет ключи. Это изменило расположение объекта пользователя, фактически уничтожив всех.
    См. Https://stackoverflow.com/questions/11697702/how-to-use-underscore-js-filter-with-an-object
    Для фильтрации объекта необходимо использовать функцию _.pick() ;
  2. Логическое условие для userProperties.password было совершенно неверным (должно было быть И вместо ИЛИ).

Спасибо @ g4rf за обнаружение этой ошибки.

Все 5 Комментарий

Привет, это в новинку для меня.

Какие-либо предложения? В журнале сообщений нет.

Возможно, я неправильно понял управление пользователями:

Дело только в разделе "пользователи" в settings.json, не так ли?

"users": {
    "admin": {
        "is_admin": true,
        "password": ****
    }
}

-- Обновлять:

Вернулся к 1.7.5, где доступен админ.

Большое спасибо за обновление.

Если переход на 1.7.5 решил проблему для вас, то где-то может быть регресс. Стоит копнуть глубже.

И вот мы: это регрессия, представленная в 7c099fef5e08.

Последняя рабочая версия (4e758a9f4a50):

git checkout 4e758a9f4a50
node <base>/node_modules/ep_etherpad-lite/node/server.js
curl --silent --output /dev/null --write-out "HTTP/%{http_code}\n" --basic --user admin:password http://localhost:9001/admin/
HTTP/200

Регрессированная версия (7c099fef5e08):

git checkout 7c099fef5e08
node <base>/node_modules/ep_etherpad-lite/node/server.js
curl --silent --output /dev/null --write-out "HTTP/%{http_code}\n" --basic --user admin:password http://localhost:9001/admin/
HTTP/401

Спасибо, что заметили это!

Изменение, реализовавшее # 3648 (7c099fef5e08), было неправильным и привело к отключению всех пользователей при запуске.

Проблема была двоякой:

  1. _.filter() для объекта возвращает массив перечислимых значений объекта и удаляет ключи. Это изменило расположение объекта пользователя, фактически уничтожив всех.
    См. Https://stackoverflow.com/questions/11697702/how-to-use-underscore-js-filter-with-an-object
    Для фильтрации объекта необходимо использовать функцию _.pick() ;
  2. Логическое условие для userProperties.password было совершенно неверным (должно было быть И вместо ИЛИ).

Спасибо @ g4rf за обнаружение этой ошибки.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги