2016-05-16 10 views
0

私は春のブートセキュリティアプリケーションをビルドします。 message.propertiesでカスタムバネセキュリティi18nとパラーム

とウェブで

${session[SPRING_SECURITY_LAST_EXCEPTION].message} 

ある:

AbstractUserDetailsAuthenticationProvider.badCredentials={0} username and password not correct ! 

iは上記PARAMを{0}をconfigのできますか?

+0

「上記パラメータ{0}を設定する」とはどういう意味ですか? '{0}'を 'message.properties'に必要なものに置き換えるのはなぜですか? – miensol

+0

@miensolログイン試行の傍受を追加します。つまり、ログインに10回失敗すると、カスタムIPがブロックされます。 '{0}'は失敗の左の時間を意味します。したがって、 'badCredentials = {0} username'はそこにあります。 –

答えて

1

AbstractUserDetailsAuthenticationProvider.badCredentialsは、そのメッセージをBadCredentialsExceptionをスローするように春(AbstractUserDetailsAuthenticationProvider)によって使用されます。

throw new BadCredentialsException(messages.getMessage(
       "AbstractUserDetailsAuthenticationProvider.badCredentials", 
       "Bad credentials")); 

直接例外コンストラクタにパラメータを提供する方法はありません。しかし、あなたの目標は、失敗したログイン試行を表示することです。 BadCredentialsExceptionメッセージの代わりに、またはその代わりに、セッションからのログイン試行カウンタを表示するように、表示ロジックを簡単に修正できます。これは、例外を投げるAuthenticationProviderでは利用できないセッションデータ(失敗試行カウンタ)を必要とするため、おそらく最良の方法です。