imprv: Initialization for Passport strategies #9353
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
経緯 on Slack
Yu
Friday at 08:02
@yuki
大変お世話になっております。
本日 7.0.23 から 7.1.0 にアップグレードしたところ、OIDC 設定 が「セットアップが完了していません。」に戻っておりました。
何らかの理由で未設定状態に戻ることはあるでしょうか?
当方、普段は OIDC のみを有効にしているため、認証プロバイダとの接続が外れてしまうとログインできなくなってしまいます。
前バージョン中でログインしていたマシンから OIDC 設定の「更新」ボタンを押すことでセットアップが完了し、
再度 OIDC 認証できるようになりましたが、何か対策がありましたらご教授いただけると助かります。
(CLIからID/PASSを有効にしたりできたりしますか?)
設定が外れた環境は、docker v20.10.23 (Synology NAS/Container Manager)です。
yuki
Saturday at 05:09
v7.1 で特にそのあたりに変更は加えていないため、勝手に設定が変更されるということは考えにくいです。
ただ初期化時のソースを眺めてみて、疑わしい箇所はありました。
yuki
Saturday at 05:09
この両方で await していないので
https://github.com/weseek/growi/blob/master/apps/app/src/server/crowi/index.js#L385-L390
https://github.com/weseek/growi/blob/master/apps/app/src/server/service/passport.ts#L200
結果として初期化が完了しているフラグが true になるタイミングがかなり遅くなることがありそうです。
https://github.com/weseek/growi/blob/master/apps/app/src/server/service/passport.ts#L639
yuki
Saturday at 05:09
もしくはなんらかの外的原因で同メソッドで試行している OIDCIssuer.discover() に失敗したような時でも、同フラグが true にならないです。
yuki
Saturday at 05:10
そのため、「設定は生きているが、起動時にセットアップが完了していないように見えた」ということは起こり得ると思います。
画面からはそこの区別はつかないので申し訳ないです。ログを洗うと特定できるかもしれません。
仮に今書いたような憶測通りの症状が再度起こった場合は、特に設定を変更せずサーバーを再起動してみるだけで回避できると思います。 (edited)