私は素晴らしい解決策を見つけていませんが、解決策を見つけました。この質問はおそらく元の投稿者を助けるには古すぎるかもしれませんが、同じ質問を持つ他の人を助けるかもしれません.
拡張するカスタム パーミッション フィルターが既にFormAuthenticationFilter
あり、クライアントからの ajax 以外のリクエストはすべてこのフィルターを通過します。そのため、ユーザー アカウントがロックされているかどうかを確認するチェックを追加しましたisAccessAllowed(...)
。ロックされている場合は、ユーザーをログアウトしてフィルターを続行します。ログインページに送信されます。
これには 1 つの大きな欠点があります。アカウントがロックされているかどうかを確認するために、基本的にユーザー主導でデータベースをポーリングすることです。
アカウントをロックするプロセスが、ユーザーのセッションから正しいサブジェクトを取得し、そのセッションをログアウトできるとよいでしょう。ユーザーのセッションを取得できますが、正しいサブジェクト オブジェクトを取得できないため、役に立たないようです。セッションの変更は役に立たないようです。
Jared Bunting は別の良いアイデアを提案しましたが、残念ながら私にはうまくいきませんでした。彼の提案は、権限と役割を取得するときに確認し、ロックされたアカウントへの権限を誰かに与えないことでした。認証のみを使用してユーザーにアクセスを許可しているため、これは機能しませんでした (他の許可は必要ありません)。