Springセキュリティでのカスタムエラーメッセージの表示

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」にメッセージを保存しました。次の図を参照してください。

message.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)