您好,我写了一个非常基础的插件,它在用户登录后会添加一个 JWT 令牌,并且已经正常运行了将近一年。今天我们的论坛宕机了,因为不知何故证书过期了(这本身就很奇怪),所以我尝试运行 ./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。您是否知道突然发生这种情况的原因?