Запутанное/неотредактированное сообщение об ошибке при использовании Discourse в качестве провайдера SSO

Если вы неправильно настроите параметр sso provider secrets при использовании Discourse в качестве провайдера SSO, в браузере появится общее сообщение об ошибке 500, а в логах — запутанное сообщение об ошибке:

TypeError (неявное преобразование nil в String) /var/www/discourse/lib/single_sign_on.rb:114:in `hexdigest’

Судя по пути выполнения кода, это случайность, и я считаю, что это сообщение об ошибке следует улучшить:

  • В логах указывать, что провайдер SSO настроен неправильно или была предпринята несанкционированная попытка
  • В браузере показывать более подходящее сообщение об ошибке (вероятно, HTTP 400 Bad Request или 403 Forbidden)

Детали здесь (возможно, администратор или модератор сможет переместить этот пост в эту новую тему за меня):

Обратите внимание, что это происходит в контексте плагина wp-discourse для WordPress, но сама проблема не связана конкретно с этим плагином.

Вы имеете в виду оставить его пустым или внести туда случайные данные?

Это происходит, если настройка оставлена пустой (более конкретно, я полагаю, что это случается, когда для домена, связанного с входящим запросом SSO, нет секретного ключа).

Ага, если настройка пустая, я предлагаю добавить здесь более понятное сообщение об ошибке. @eviltrout, сможешь это сделать или назначить кому-то?

@Osama сделал это, и изменения уже приняты:

6 лайков