Spring Securityでカスタムエラーメッセージを表示する
Spring Securityでは、認証が失敗すると、次の事前定義されたエラーメッセージが表示されます:
Spring display : Bad credentials
この記事では、上記のエラーメッセージを上書きし、カスタムエラーメッセージを表示する方法を示します。 例えば、
Spring display : Bad credentials You want override it with this message : Invalid username or password
溶液
Spring Securityは、「spring-security-core.jar」内の「messages.properties」にメッセージを保存しました。次の図を参照してください。
これを上書きするには、Spring Securitymessage.propertiesファイルでどのキーがどのエラーメッセージを生成するかを見つけ、独自のプロパティファイルで再定義します。
1. キーとメッセージをオーバーライドする
新しいプロパティファイルを作成し、プロジェクトクラスパスに配置し、カスタムエラーメッセージでSpringの「キー」をオーバーライドします。 この場合、「AbstractUserDetailsAuthenticationProvider.badCredentials
」をオーバーライドするだけです。
ファイル:mymessages.properties
AbstractUserDetailsAuthenticationProvider.badCredentials=Invalid username or password
2. ResourceBundleMessageSourceを登録する
上記のプロパティファイルをロードするには、Spring Bean構成ファイルでResourceBundleMessageSource
を定義します。
mymessages
これで、認証が失敗すると、デフォルトの「Bad credentials」ではなく、カスタムエラーメッセージ「Invalid username or password」が表示されます。
Note
このトリックを使用すると、SpringSecurityメッセージを簡単に上書きできます。
ソースコードをダウンロード
ダウンロード–Spring-Security-Display-Custom-Error-Msg.zip(9 KB)