Gold Плагин Авторизация BaronessAuth [3.39.0]

  • Переработана система хранения паролей. Старые пароли совместимы.
    Старые пароли использовали первые 8 байт как fingerprint для определения формата. Новые пароли используют для этой же цели 2 байта, уменьшая пароли с 49 до 43 байт (-12%).
    Внутренняя организация форматов паролей стала более безопасной и эффективной, улучшая производительность и снижая риск проблем в будущем (найденных проблем не было, это предосторожность).
    Реализации части алгоритмов пересмотрены и заменены. BaronessAuth использует много разных алгоритмов для обратной совместимости, многие реализации оставались на своём месте чисто по историческим причинам. Например, плагин использовал SHA512 от JVM, хотя он не гарантируется Java SE, то есть плагин мог быть несовместим с альтернативными JVM типа OpenJ9.
    Теперь для SHA1 и SHA256 используется JVM, для остального BouncyCastle, а для совсем специфичного уже отдельные решения. К примеру, прежде кое-где использовались Guava Hashing и JackSum.
    Все форматы паролей покрыты unit-тестами, что гарантирует их корректность ещё на этапе сборки, это делает обновления безопаснее.
    Для сравнения массивов байт в паролях теперь используется constant-time алгоритм вместо fail-fast.
  • Всем ботам добавлен параметр ignore-messages-starting-with, который позволяет задать, какие сообщения BaronessAuth будет игнорировать.
  • Обновлены внутренние библиотеки.
  • Обновлён встроенный сервер paper (1.8.8).
  • Обновлён встроенный сервер paper (latest).
  • Обновлён BungeeGuard для встроенных серверов paper.
Автор: bobobo

Общие изменения:​

  • Дефектный пароль в бекапе версии 2.11.0 больше не останавливает всю загрузку, а показывает предупреждение и пропускается.
  • Улучшена обработка ошибок при неудачной перезагрузке или выключении того или иного компонента. Это всё ещё не делает неудачную перезагрузку допустимой в продакшне, но уменьшает вероятность, что её последствия нельзя будет исправить без полного рестарта.
  • Обновлены внутренние библиотеки.
  • Новый режим Forwarding auto сам подбирает способ связи с прокси, анализируя окружение. Он используется в новых конфигах по умолчанию, уже настроенные серверы это не затронет.
  • Серверы теперь могут вытерпеть несколько неудачных пингов, а не перезапускаться сразу: в advanced.yml вынесено это число. По умолчанию 2 (рестарт на второй ошибке).
  • Теперь при /auth reload серверы заново регистрируются в BungeeCord. Это возвращает их в список серверов, например после выполнения /nullcordx servers reload.
  • Теперь папки встроенных серверов, которые были выключены или удалены из конфигурации, автоматически удаляются.

Изменения встроенных серверов​

Серверы на Java (paper, nanolimbo)​

  • Пересмотрены JVM-флаги, чтобы экономнее использовать ЦП и ОЗУ и быстрее обслуживать подключения игроков.
  • Обновлена Java в поставщике automatic.

Серверы Paper​

Сервер paper (latest)​

  • Пересмотрены все файлы настроек ядра и FAWE, чтобы понизить потребление ЦП и ОЗУ.
  • Теперь использует FMA и io_uring для оптимизации, когда это возможно.
  • Теперь держит чанки схематики в ОЗУ, чтобы мир быстрее загружался.

Изменения API​

  • Добавлен метод sendDiscordMessage.
  • Добавлен метод аутентификации bypass, который позволяет аддону принять решение об аутентификации самостоятельно. Проверка может быть мгновенной или асинхронной; во втором случае игрок может ждать её завершения на auth. Метод по умолчанию выключен. Инструкция и примеры.
Автор: bobobo

📦 Обновлено​

  • Встроенный сервер picolimbo (снова совместим со старыми glibc).
  • Встроенный сервер paper (1.8.8).
  • Встроенный сервер paper (latest).
  • ViaVersion, ViaBackwards для встроенных серверов paper.
  • Поставщик Java automatic для встроенных серверов paper и nanolimbo.
  • Внутренние библиотеки.
Автор: bobobo
  • Лайк 0
Реакции:2 пользователей

✨ Новое​

  • В advanced.yml добавлена секция delay-before-sending-first-visuals, которая позволяет настроить, с какой задержкой игрок будет видеть ту или иную визуальную функцию (chat, title и bossbar). Это исправляет проблему, когда первое сообщение в чате не было видно, потому что оно отправлялось слишком рано. Кроме того, теперь повторные bossbar появляются без задержки. Ранее они появлялись с задержкой 2 секунды, даже если игрок уже давно вошёл.

📦 Обновлено​

  • Встроенный сервер paper (1.8.8).
  • Встроенный сервер paper (latest).
  • Внутренние библиотеки.
Автор: bobobo

✨ Новое​

  • В API добавлен метод createPasswordFromBcryptMcfString. Он позволяет превратить типичную BCrypt MCF строку в ProfilePassword. Это в основном нужно для самописных миграций.

📦 Обновлено​

  • Встроенный сервер picolimbo.
  • Встроенный сервер paper (1.8.8).
  • Внутренние библиотеки.
Автор: bobobo

🔧 Исправлено​

  • Миграции с NLogin, LibreLogin не сохраняли последний логин. Теперь сохраняются и первый, и последний.

📦 Обновлено​

  • Внутренние библиотеки.
Автор: bobobo

✨ Новое​

  • Встроенный сервер picolimbo теперь принудительно включает полёт, если схематика не указана (чтобы игрок не падал).
  • Обновлён текст в книге, которая выдаётся в лобби-заглушке, чтобы было лучше понятно, что это за заглушка такая.
  • Переработаны некоторые пережитки начала 3.x.x версии: улучшена система сборки, удалён более неактуальный код. Это едва ли влияет на продакшн, но плагин теперь в целом чуть меньше и чуть чище.

🔧 Исправлено​

  • Встроенный сервер paper (1.8.8) не запускался.

📦 Обновлено​

  • Внутренние библиотеки.
  • Встроенный сервер picolimbo.
  • Встроенный сервер nanolimbo.
  • Встроенный сервер paper (1.8.8).
  • Плагины ViaVersion, ViaBackwards для встроенных серверов paper.
Автор: bobobo

✨ Новое​

  • У команды /auth find player by ip теперь есть страницы. Изначально не задумывалось, что у неё будет вывод на тысячи строк, что привело к ошибкам при выполнении и большому расходу ОЗУ на крупных серверах. Скриншот ниже.

🔧 Исправлено​

  • В некоторых случаях, скорее как следствие недоработок BungeeCord и других плагинов, BaronessAuth мог бесконечно накапливать некоторые данные в ОЗУ (утечка памяти). Теперь этой проблемы нет, вне зависимости от окружения.

📦 Обновлено​

  • Внутренние библиотеки.
  • Встроенный сервер paper (1.8.8).
  • Встроенный сервер paper (latest).
Автор: bobobo

✨ Новое​

  • Добавлена миграция с LibreLogin - вот инструкция.
  • Включены небольшие peephole оптимизации байткода, чтобы плагин работал чуть-чуть быстрее в некоторых местах.
  • Теперь в advanced.yml можно включить, чтобы мгновенные методы аутентификации (session, premium) держали игрока в auth какое-то время, а не сразу пускали в lobby. Видео ниже.
  • Теперь в advanced.yml можно отключить пинг встроенных серверов, если он часто ложно проваливается.
  • Теперь у встроенных серверов есть 10 секунд, чтобы ответить на пинг, а не 5.

🔧 Исправлено​

  • В general.yml, в секции automatic-backups был параметр для контроля уровня сжатия бекапов. Он никогда не использовался, плагин всегда выставлял уровень 9, что требовало слишком много ОЗУ для создания файла. Этот параметр перенесён в advanced.yml и теперь по умолчанию равняется 6 - бекапы будут создаваться быстрее, требовать меньше ОЗУ, а файлы станут немного больше (вы можете отрегулировать это значение, чтобы уменьшить файлы вновь).

📦 Обновлено​

  • Внутренние библиотеки.
  • Встроенный сервер paper (1.8.8).
Автор: bobobo

✨ Новое​

  • Теперь отключение от сервера не приводит к инвалидации кода привязки.
  • Теперь confirmation в ботах работает, даже если игрок оффлайн (сообщение с кодом отправит при следующем входе).

📦 Обновлено​

  • Внутренние библиотеки.
  • Встроенный сервер paper (1.8.8).
  • Встроенный сервер paper (latest).
Автор: bobobo
ВерхНиз