Identica: Credential Provider

Плагин Identica: Credential Provider 3.0.0

Создайте и подтвердите аккаунт для скачивания
Обновление 3.0.0 — Более надёжная Identica

Identica 3.0.0 исправляет десятки проблем со входом, сессиями и репликацией, разделяет конфигурацию на понятные документы по разделам и сама обновляет установку 2.2.1 при первом запуске.

Главное

  • Меньше способов сломать вход. Прогресс входа остаётся за соединением, которое его набрало, поэтому второй клиент с тем же ником не может перехватить начатый вход; пока одно соединение входит, остальные с этим ником получают просьбу повторить попытку чуть позже. Команды, введённые до появления подсказки, больше не теряются, коды аутентификатора срабатывают только один раз, а отказы провайдеров (например, блокировки) нельзя обойти через другой провайдер.
  • Сессии и репликация устойчивы на нескольких прокси. У аккаунта одна активная сессия, а сессии упавшего прокси завершаются в течение 30 секунд. Два прокси, одновременно записывающие один и тот же вход или сессию, больше не перезаписывают друг друга: тот, что оказался вторым, отключает своего игрока с сообщением «Reconnect to try again.» (engine.concurrentChangeKick). Подсказки и регистрация работают с репликацией через Redis, а прокси с общей базой данных запускаются и сохраняют данные одновременно без ошибок.
  • Конфигурация разделена по разделам. У настроек, движка, маршрутизации, конфликтов ников и каждой функции свой документ, а файлы содержат версию, поэтому Identica обновляет их сама, начиная с вашей конфигурации и базы данных 2.2.1.
  • Ники уникальны без учёта регистра. Игрок не сможет зарегистрировать alice, если аккаунт уже занимает Alice, а игрок Credential, зарегистрированный как Alice и зашедший как alice, попадает в тот же аккаунт, с его паролем и UUID. Правила конфликтов решают, кому остаётся ник, например, когда владелец лицензии заходит под ником, который занимает аккаунт Credential.
  • Провайдер выбирается надёжнее. Хост провайдера, подтверждённая привязка аккаунта или идущая миграция определяют провайдера раньше, чем догадки по нику. Цели маршрутизации могут следовать forced hosts прокси, а Premium умеет распознавать лицензионные клиенты по профилю (экспериментально, по умолчанию выключено).
  • Статистика. Помимо bStats, Identica отправляет анонимную статистику и отчёты об ошибках в FastStats, в том числе входы по провайдерам, использование 2FA и версии клиентов. Ники, уникальные идентификаторы и адреса игроков никогда не отправляются.

Обновление

  • Перед первым запуском: остановите все прокси, использующие базу данных, и сделайте резервную копию базы данных и папки с данными. Первый запущенный прокси обновит и то, и другое.
  • Версии: Identica обновляется с 2.2.1 и новее. На более старой установке сначала один раз запустите 2.2.1. Требуется MySQL 8.0.19 или новее; на более старом сервере Identica остановится, не изменив ни одной таблицы. Для MariaDB минимальной версии нет.
  • Конфигурация: все настройки, сообщения и команды, которые вы меняли в 2.2.1, переносятся в документ, где они находятся теперь, а изменённые при обновлении файлы копируются в .strata/backup/.
  • Файлы провайдеров в providers/Credential/ и providers/Premium/ не обновляются: значение, у которого изменилось имя или место, вернётся к значению по умолчанию, поэтому сверьте их со страницами провайдеров.
  • Удалённые настройки: connection.sessions.activeTtl (сессии теперь истекают через replication.heartbeatTimeout после остановки их прокси), advanceLockTtl сценария, а также сообщения advanceBusy и pipelineKick. Ошибка синхронизации ника теперь одно сообщение, pipeline.identity.synchronizationFailed, с текстом сценария аутентификации из 2.2.1.
  • У аккаунта теперь одна сессия, поэтому политики одновременных сессий ALLOW_MULTIPLE больше нет. Обновление заменяет её на REPLACE_EXISTING в настройках и в настройках сессии провайдера, так что побеждает самый новый вход; укажите REJECT_NEW, чтобы вместо этого оставлять первый вход.
  • Ники: аккаунты, которые уже делят ник в двух регистрах, продолжают входить через свои провайдеры; ник остаётся за самым старым из них. Консоль перечисляет их при каждом запуске, а /identica admin username duplicates показывает их; ничего менять не нужно.
  • /identica credential register только создаёт новые аккаунты: команда больше не привязывает Credential к существующему аккаунту и отказывает для ника, который занимает любой аккаунт, в любом регистре и через любой провайдер, называя этот аккаунт. Новый аккаунт получает UUID, зарезервированный для его ника через /identica admin reservation set, поэтому аккаунты, перенесённые из другого плагина, могут сохранить свои UUID.
  • У правил конфликтов из 2.2.1 (format_display) нет аналога. Identica заменяет их новыми правилами по умолчанию и удаляет providers/conflicts; задайте свои правила заново в новом формате. Сообщения pipeline.policy.conflictDenied и pipeline.policy.entrypointRequired удалены.
  • Redis: перед первым запуском удалите ключи сессий 2.2.1 (identica:sessions:* при именах ключей по умолчанию), например командой redis-cli --scan --pattern 'identica:sessions:*' | xargs redis-cli del. Эта версия хранит сессии иначе.
  • Redis ACL: пользователю Redis с ограниченным набором команд нужны также evalsha и script — для записей, которые проходят только поверх прочитанного значения.
  • Статистика: FastStats отключается в plugins/faststats/config.properties; на странице «Статистика» перечислено, что отправляется.

Для разработчиков дополнений

  • Доступ: IdenticaAPI теперь интерфейс. Получайте его через IdenticaAPI.get() или IdenticaAPI.whenReady(...), если ваше дополнение может запуститься раньше: IdenticaAPI.getEventManager() становится IdenticaAPI.get().getEventManager(), getService(...) стал findService(...) и возвращает Optional, а getPresenceService() стал getIdentityService().
  • Запуск: Identica запускается по фазам, и RuntimeLifecycle указывает свою StartupPhase. IdenticaBootstrappedEvent вызывается после запуска функций, IdenticaReadyEvent — в конце, когда провайдеры загружены и соединения обрабатываются.
  • Ники: ник хранится в отдельной таблице и читается и меняется через AccountUsernamePersistenceService (find, findHolder, setSource, rename), который заменяет AccountUsernameStatePersistenceService, AccountUsernameHistoryPersistenceService и AccountPersistenceService.updateUsername. AccountService.create, AccountPersistenceService.create и rename возвращают UsernameWriteResult, а create принимает источник ника и провайдера. AccountUsernameDuplicatePersistenceService перечисляет общие ники.
  • Провайдеры и конфликты: ProviderTrait стал ProviderGuarantee, AUTHORITATIVE_USERNAME — OWNED_USERNAME, а ProviderClaimOrigin.ENTRYPOINT — HOSTNAME. Конфликты решаются правилами ConflictService и регистрируемыми ConflictOutcome, которые провайдер добавляет через IdenticaProvider.conflictOutcomes(); UsernameAssigner заменяет UsernameConflictHandler, а резолверы, guard'ы и типы конфликтов удалены.
  • Сессии и входы: у аккаунта одна сессия: SessionConcurrencyPolicy.ALLOW_MULTIPLE и SessionService.findAllByUniqueId удалены. SessionService.open завершается с ConcurrentSessionChangeException, если тем временем был открыт другой вход аккаунта. PipelineStateReference указывает на соединение. UsernameHeldEvent и LoginSupersededEvent сообщают об отклонённых и вытесненных входах.
  • Репликация: ReplicatedCache читает с ревизией (read, возвращает Versioned) и записывает или удаляет только поверх прочитанного (write, remove); ReplicationAdapter реализует compareAndPut и compareAndInvalidate. PipelineStateStore.save возвращает, удалось ли сохранить, clear(reference, read) очищает только прочитанное состояние, а update удалён.

Список изменений

Новое


Улучшения


Исправления

  • Аутентификация: второе соединение больше не может перехватить начатый вход (You must be logged in to see this link.)
  • Аутентификация: хосты провайдеров снова выбирают своего провайдера (You must be logged in to see this link.)
  • Аутентификация: команды, введённые до появления подсказки, больше не игнорируются (You must be logged in to see this link.)
  • Аутентификация: отказы провайдера, например блокировки, больше нельзя обойти через другой провайдер (You must be logged in to see this link.)
  • Команды: /identica admin reload больше не сообщает об успехе, ничего не перезагрузив (You must be logged in to see this link.)
  • Команды: /identica admin reservation снова работает, а зарезервированные UUID учитываются после удаления аккаунта (You must be logged in to see this link.)
  • Конфигурация: обновлённые конфигурации 2.2.1 с политикой сессий ALLOW_MULTIPLE снова загружаются (You must be logged in to see this link.)
  • Credential: игрокам больше не отказывают при другом регистре ника, а регистрация из консоли учитывает зарезервированные UUID и не привязывает существующие аккаунты (You must be logged in to see this link.)
  • Credential: введённые пароли больше не сохраняются вместе с состоянием незавершённого входа, в том числе в Redis (You must be logged in to see this link.)
  • Credential: /identica credential register больше не оставляет игрока без аккаунта (You must be logged in to see this link.)
  • База данных: H2 больше не отвергает относительный путь к файлу в папке с данными (You must be logged in to see this link.)
  • База данных: два прокси больше не падают, одновременно сохраняя данные одного игрока (You must be logged in to see this link.)
  • База данных: сообщения запуска базы данных снова видны в консоли прокси (You must be logged in to see this link.)
  • База данных: повреждённый persistence.yml больше не запускает Identica на пустой базе SQLite (You must be logged in to see this link.)
  • База данных: прокси больше не падают при одновременном создании схемы (You must be logged in to see this link.)
  • Сообщения: очищенные сообщения больше не отключают действие, к которому относятся (You must be logged in to see this link.)
  • Миграция: команды миграции теперь видят миграцию, которую удерживает идущий конвейер (You must be logged in to see this link.)
  • Миграция: перенос аккаунта Premium в Credential больше не отменяется при повторном входе (You must be logged in to see this link.)
  • Платформа: Velocity больше не игнорирует отказ во входе на этапе профиля (You must be logged in to see this link.)
  • Платформа: игроки больше не заходят без аутентификации, если Identica не смогла запуститься (You must be logged in to see this link.)
  • Premium: игрок без лицензии больше не может занять ник аккаунта Premium после неудачного лицензионного входа (You must be logged in to see this link.)
  • Репликация: запись поверх значения, изменившегося после чтения, теперь отклоняется (You must be logged in to see this link.)
  • Репликация: регистрация больше не падает на /passconfirm при включённой репликации Redis (You must be logged in to see this link.)
  • Репликация: игроки снова получают подсказку входа или регистрации при включённой репликации Redis (You must be logged in to see this link.)
  • Маршрутизация: сообщения сценария об отсутствующем сервере маршрутизации больше не игнорируются (You must be logged in to see this link.)
  • Маршрутизация: сообщения входа и регистрации отправляются и без цели завершения (You must be logged in to see this link.)
  • Сессии: вход через другой прокси учитывает политику одновременных сессий и отключает нужное соединение (You must be logged in to see this link.)
  • Верификация: коды аутентификатора больше не принимаются повторно (You must be logged in to see this link.)

Зависимости


Для разработчиков


Полный список изменений: You must be logged in to see this link.

Поддержка

Если нужна помощь с установкой, настройкой или обновлением, заходите к нам в You must be logged in to see this link.. Если вы нашли ошибку или хотите предложить функцию, пишите на You must be logged in to see this link..
Обновление 2.2.1 – Premium остаётся Premium

Это обновление посвящено исправлениям авторизации в смешанных конфигурациях с premium и credential-провайдерами.

Теперь premium-аутентификация корректно работает как в seamless-, так и в interactive-сценариях, а резервная авторизация сохраняет правильный контекст провайдера и больше не подменяет реальные сообщения об ошибках общим сбоем аутентификации.

Что изменилось

Исправления
  • Premium: Исправлена premium-аутентификация в seamless-режиме, чтобы игроки больше не переключались на credential без необходимости от whereareiam
  • Engine: Исправлена передача provider subject при переключении на fallback-провайдеры от whereareiam
  • Engine: Исправлено сохранение реальных сообщений отказа от fallback-провайдера вместо общего сообщения о сбое аутентификации от whereareiam

Полный список изменений: You must be logged in to see this link.
Обновление 2.2.0 – Универсальный плагин для всех

Identica теперь поставляется в виде универсального плагина, что упрощает установку и поддержку разных платформ.

Также в обновлении исправлены небольшие проблемы с командами и улучшена безопасность при пропуске авторизации.

Что изменилось

Что нового

Улучшения

Исправления

Полный список изменений: You must be logged in to see this link.
Обновление 2.1.1 – Исправления ошибок

Что изменилось

Исправления

Полный список изменений: You must be logged in to see this link.
Обновление 2.1.0 – Укрощение гремлинов

Это обновление сосредоточено на более плавных сценариях для игроков, более единообразных сообщениях и устранении проблем с аутентификацией.

Что изменилось

Что нового

Улучшения
  • Сообщения: Обеспечена единообразная подача сообщений после завершения миграции — whereareiam в You must be logged in to see this link.

Исправления
  • Конфигурация: Несуществующие поля больше не сохраняются в конфигурации — whereareiam в You must be logged in to see this link.
  • Маршрутизация: Завершены маршрутизирующие намерения, которые уже достигли своей цели — whereareiam в You must be logged in to see this link.
  • Движок: Гарантировано, что сценарий всегда задан — whereareiam в You must be logged in to see this link.
  • Движок: Исправлены кики по тайм-ауту после аутентификации за счёт передачи UUID аккаунта в ссылки на ожидающие потоки — whereareiam в You must be logged in to see this link.
  • Сессии: Исправлена ситуация, когда при первом входе с учётными данными показывалось завершение повторно используемой сессии — whereareiam в You must be logged in to see this link.
  • Команды: Help теперь формирует точное количество страниц для текущего числа команд — whereareiam в You must be logged in to see this link.
  • Premium: Исправлена бесконечная очередь premium-handshake — whereareiam в You must be logged in to see this link.

Полный список изменений: You must be logged in to see this link.
Обновление 2.0.0 – Bungee-переход

Это обновление сосредоточено на более плавных обновлениях, более чистой работе с конфигурацией и улучшенной безопасности.

Добавлена поддержка BungeeCord-прокси, файлы конфигурации теперь автоматически подготавливаются и мигрируются, а сессии теперь могут распознавать недоверенные IP-адреса для дополнительной защиты.

Также были очищены и упрощены несколько внутренних систем, благодаря чему плагин стал стабильнее и удобнее в поддержке.

Что изменилось

Критические изменения

Что нового

Улучшения

Полный список изменений: You must be logged in to see this link.
  • Мне нравится (+1)
Реакции: ScarDay
Обновление 1.2.1 – Исправление ошибки

Что изменилось

Исправления

Полный список изменений: You must be logged in to see this link.
  • Мне нравится (+1)
Реакции: ScarDay
Обновление 1.2.0 – Меньше хаоса, больше результата

Это обновление сосредоточено на улучшении управления конфигурацией и повышении понятности настройки.

Файлы конфигурации теперь поддерживают автоматическую миграцию, что уменьшает необходимость ручных действий при обновлении версий. Настройки и конфигурации провайдеров также были упрощены для лучшей читаемости и более удобного обслуживания.

Документация была расширена более понятными объяснениями для premium и offline провайдеров, благодаря чему процесс настройки и аутентификации стал проще для понимания.

В целом, этот релиз делает обновление более плавным, конфигурацию — более чистой, а настройку — менее болезненной.

Что изменилось

Что нового

Улучшения

Полный список изменений: You must be logged in to see this link.
  • Мне нравится (+1)
Реакции: ScarDay
Обновление 1.1.0 — Маршрутизация, но лучше

Это обновление улучшает логику маршрутизации сценариев, гарантируя, что игроки всегда попадают на нужный сервер.

Также была расширена документация плагина, включая разделы по конфигурации, руководствам по установке и использованию API для разработчиков.

Эти изменения направлены на повышение общей стабильности и упрощение настройки и интеграции для разработчиков.

Что изменилось

Новое

Полный список изменений: You must be logged in to see this link.
  • Мне нравится (+1)
Реакции: ScarDay
Назад
Сверху Снизу