認証フローをいじっていて、Web サーバーを再起動すると URL が機能しなくなり、それらがすべて無効になっていることに気付きました。デバッグについて説明しましたが、正確な理由についてはまだ少し迷っていますが、それが発生する理由はたくさんあります (そして、あなたもそうだと確信しています)。
複数のコンテナーに分散されるサービスを作成したいのですが、要求が届いたときにそれらのいずれかがそれを提供できます。解決策は現在のところ、可能にするために変更を加える必要があるようです。
URL を無効にしているのは正確には何ですか? また、提案したソリューションを実現するためにどのような変更を加えることができますか?
前もって感謝します。
オハードのコメントに応えて:
1. URL が無効な理由
エラーが発生する方法を教えてください。戦争を展開し、忘れたパスワードを送信します。メールを受け取ってパスワードをリセットし、戦争を止めてください。それが発生すると、パスワードのリセット ページで enc が抽出されます。次に、戦争を停止して再展開します。/rest/setNewPassword マッピングへの enc と新しいパスワードを含む REST 要求を送信した後、次を受け取ります。
2016 年 1 月 9 日 03:50:48,799 [http-nio-8082-exec-1] エラー web.rest.UserActionRestController - URL コンテンツ aX8uaOWkqAUQN2xOzlPAOHJjPZaxBwho7.yoMeUtMnJA の復号化に失敗しました
ohadr \crypto\service\CryptoService.javaの 261 行目に例外があります。
throw new CryptoException("URL コンテンツの復号化に失敗しました" + based64EncryptedContent, e);
次に、ブレークポイントを使用して次を見つけます。
java aes javax.crypto.BadPaddingException: 指定された最終ブロックが適切にパディングされていない
この問題を再現しようとすると、同じ結果が得られると確信しています...
注: 再デプロイせずにこれを行うと、すべてがうまく機能します!
2. auth-flows を SaaS として機能させる方法
このサービスで満たしてほしい 3 つのユース ケースがあります。
現在、私がサービスをホストしていて、それがフェイルオーバーせずにダウンした場合、URL を持っている人は、サービスが復旧したときにリンクを使用できなくなります。関係なくリンクを使用できるようにしてほしい。
(テストされていませんが、すぐに実行されます) 2 番目と同様に、このサービスを複数の Docker コンテナーでホストする場合、元はそのコンテナーから取得されたものではないリンクを受け取ることができないため、コンテナーは並べ替えられていない負荷を共有できませんでした。 . enc のいずれかを読み取って処理できる必要があります。
編集:
1. URL が無効な理由
これをテストするさらに簡単な方法は、忘れたパスワードを送信し、電子メールを取得して戦争を停止することです。再デプロイしてから、リンクをクリックします。私はこのスタックトレースを得ました:
https://drive.google.com/file/d/0Bwa-JXbjFUDueXVMWWJibjY2Zm8/view?usp=sharing
csrf が有効になっていないことを心配する必要はありません。