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)