数ヶ月後にプラグインが動作しなくなったのはなぜですか?

こんにちは。ユーザーがログインした後にJWTトークンを追加する非常に基本的なプラグインを記述しましたが、ほぼ1年間正常に動作していました。今日、証明書が何らかの理由で期限切れになったため(それ自体が興味深い)、フォーラムがダウンしました。そこで ./launcher app rebuild を試したところ、プラグインのエラーによりリビルドが失敗しました。

I, [2022-01-27T00:16:48.616458 #1]  INFO -- : > cd /var/www/discourse & su discourse -c 'bundle exec rake db:migrate'
** PLUGIN FAILURE **

You are unable to build Discourse due to this error during plugin
initialization:

uninitialized constant Auth::DefaultCurrentUserProvider

/var/www/discourse/plugins/discourse-jwt-session/lib/jwt_current_user_provider.rb:3:in `<main>'

プラグインの関連行は次のとおりです。

class JwtCurrentUserProvider < Auth::DefaultCurrentUserProvider

lib/auth/current_user_provider.rb に関連する変更はまったくないように見えるため、その定数はまだ存在するはずなので、これが突然機能しなくなった理由を想像できません。ライブラリとプラグインのロード順序に変更があった場合を除きます。

app.yaml でプラグインをコメントアウトすると、リビルドは正常に完了します。コメントを解除すると、再び失敗します。

参考までに、バージョン 2.8.0beta4 を実行しています。突然何が起こっているのか、何か考えはありますか?

私も同じ問題の解決策を探していて、このトピックを見つけました。その間、解決策を見つけました。

クラス定義の includeafter_initialize ブロック内にある必要があります。そうしないと、機能しなくなります。

「いいね!」 2

件名:

あなたの修正が @wilson29thid の問題を解決したことを確認します :slight_smile:

「いいね!」 1

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.