Grails アプリケーションに Spring Security プラグインと Spring Security REST プラグインを使用しており、パスワード変更ポリシーを実装しようとしています。フロントエンドでは、ログインしていないときにアプリケーションが 401 エラーをキャッチしていますが、パスワードの有効期限が切れている場合は、まったく同じ HTTP 応答が返されます。変える方法がないか探しています。
AbstractAuthenticationFailureEvent をキャッチして、それが AuthenticationFailureCredentialsExpired イベントによるものかどうかを判断できますが、そのイベントを取得して、これが単なるパスワード ログインの失敗ではないことを示す意味のあるものを API から送信する方法がわかりません。
余談ですが、パスワードを期限切れにしてそのポリシーを適用できるので、それは問題ではありません。主な問題は、この API のコンシューマが、失敗したユーザー名/パスワードのチャレンジと「パスワードを変更する必要がある」シナリオをどのように区別できるかです。