home wiki.fukuchiharuki.me
Menu

キーワード

  • Spring Boot
  • Spring Security

したいこと

Spring Securityを使ったログインをするとき、ログインエラー時のメッセージをカスタマイズしたい。

どうやって

Thymeleafでエラーメッセージを表示したい箇所に次のように記述し、

<p th:if="${session['SPRING_SECURITY_LAST_EXCEPTION']} != null" 
   th:text="${session['SPRING_SECURITY_LAST_EXCEPTION'].message}">
ログインIDまはたパスワードが間違っています。
</p>

messages.propertiesに次のようにメッセージを定義する。

AbstractUserDetailsAuthenticationProvider.locked=アカウントはロックされています。
AbstractUserDetailsAuthenticationProvider.disabled=アカウントは使用できません。
AbstractUserDetailsAuthenticationProvider.expired=アカウントの有効期限が切れています。
AbstractUserDetailsAuthenticationProvider.credentialsExpired=パスワードの有効期限が切れています。
AbstractUserDetailsAuthenticationProvider.badCredentials=ログインIDまはたパスワードが間違っています。

ノート

次はログインエラーがあったときだけ表示する条件。

th:if="${session['SPRING_SECURITY_LAST_EXCEPTION']} != null" 

次はメッセージ定義の内容を表示するアクセサ。

th:text="${session['SPRING_SECURITY_LAST_EXCEPTION'].message}"

参考