Springセキュリティでのカスタムエラーメッセージの表示
Spring Securityでは、認証に失敗すると、あらかじめ定義されたエラーメッセージが表示されます。
Spring display : Bad credentials
この記事では、上記のエラーメッセージをオーバーライドしてカスタムエラーメッセージを表示する方法を説明します。例えば、
Spring display : Bad credentials You want override it with this message : Invalid username or password
解決策
「
spring-security-core.jar
」内の「
messages.properties
」にメッセージが格納されます。
イメージ://wp-content/uploads/2011/08/message-properties-spring-security.png[message.properties、title = “message-properties-spring-security”、width = 528、height = 455]
それを無効にするには、spring security
message.properties
ファイルでどのキーを生成してエラーメッセージを生成するかを見つけ、独自のプロパティファイルで再定義します。
1.キーとメッセージを上書きする
新しいプロパティファイルを作成し、プロジェクトのクラスパスに配置し、カスタムエラーメッセージでSpringの「キー」を上書きします。この場合、 “AbstractUserDetailsAuthenticationProvider.badCredentials`”をオーバーライドしてください。
ファイル:mymessages.properties
AbstractUserDetailsAuthenticationProvider.badCredentials=Invalid username or password
2. ResourceBundleMessageSourceを登録する
上記のプロパティファイルをロードするには、Spring bean設定ファイルに `ResourceBundleMessageSource`を定義します。
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource"> <property name="basenames"> <list> <value>mymessages</value> </list> </property> </bean>
認証に失敗すると、デフォルトの「
Bad credentials
」の代わりにカスタムエラーメッセージ「
Invalid username or password
」が表示されます。
ソースコードをダウンロードする
それをダウンロードしてください://wp-content/uploads/2011/08/Spring-Security-Display-Custom-Error-Msg.zip[Spring-Security-Display-Custom-Error-Msg.zip](9 KB)