Если у вас сохранилась сессия, вы не столкнетесь с какими-либо проблемами. Однако, если вы попытаетесь войти сейчас, при нажатии на кнопку «Войти» URL изменится на: /auth/failure?message=csrf_detected, и мы получим сообщение об ошибке: «Время ожидания авторизации истекло, или вы сменили браузер. Пожалуйста, попробуйте снова.»
Знает ли кто-нибудь, могло ли недавнее изменение привести к такой ситуации?
Кстати, есть ли способ откатиться к предыдущей версии? Я искал информацию, и общий совет — отключить плагины (или конкретный проблемный плагин). Однако я не могу отключить этот, так как именно через него пользователи входят в платформу
Это не совсем поддерживается, но если у вас есть резервная копия, вы можете удалить директорию с данными PostgreSQL, добавить коммит в строку версии в app.yml, пересобрать и восстановить резервную копию.
Да, я сделал резервную копию и сейчас пытаюсь восстановить систему, используя SHA-хэш версии, которая у меня была, так как она работает нестабильно.
Параллельно у меня осталась последняя стабильная версия, и я пытаюсь понять, можно ли как-то исправить ситуацию.
Не знаю, есть ли у @david какие-либо советы, как предложил @codinghorror, но я готов попробовать что угодно, так как мои пользователи не могут войти в систему (если только они не сохранили свою сессию).
Краткое обновление: Попробовал использовать резервную версию с моментальной снимком машины на тот момент (до обновления). Нажатие кнопки «Войти» просто перезагружает главную страницу дважды. Попробовал пересобрать с тем же SHA коммита, что был у меня тогда, но не повезло — ошибка Rake для базы данных.
Искал другие сообщения о проблеме с LDAP, вроде бы их нет. Не может ли это быть вызвано внешним источником?
Проблема решена, найдена первопричина — она не связана с Discourse (извините, ребята!). Проблема заключалась в том, что сертификат был обновлён и раздается через HAP. Ранее мы не использовали HAP, и Discourse раздавал сертификат самостоятельно. Мы упустили этот нюанс, что и привело к ошибке CORS.
Извлечённые уроки:
Откат Discourse не является вариантом — лучше иметь резервную копию всей машины (к счастью, у нас она была).
Мне ещё предстоит понять, почему так сложно выполнить пересборку с конкретным SHA, следуя инструкциям, которые я прочитал здесь — у меня не получилось.
Сертификаты всегда лучше раздавать через HAP, но не забывайте об этом. (Для сведения: необходимо добавить флаг 'set-header X-Forwarded-Proto https', так как у Discourse есть собственный NGINX, и именно здесь происходила ошибка).
Тот факт, что никто не сообщал о той же проблеме (даже учитывая, что это крайний случай, поскольку плагин не является официальным), указывал в этом направлении (сообщество работает как задумано :P).
Проблема проявилась лишь спустя время (до такой степени, что мы уже не помнили об изменении сертификата) из-за пересборки, запущенной обновлением, на которой и произошла ошибка.