0

Webアプリにスプリングセキュリティの設定があります。春のセキュリティのいくつかのメッセージをカスタムメッセージに置き換えたい、つまり

代わりに私は価値を持ちBad CredentialsたいAbstractUserDetailsAuthenticationProvider.badCredentialsinvalid username or password, please try again

これは私の春のセットアップです:

<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basename" value="/WEB-INF/messages/messages"/>
<!-- Tried this as well <property name="basename" value="/WEB-INF/messages/messages.properties"/> -->
<property name="cacheSeconds" value="0" />
<property name="defaultEncoding" value="UTF-8" />
</bean>

そして、WEB-INFと呼ばれるにフォルダを作成しましたmessages。このフォルダ内に。というファイルがありますmessages.properties。このファイルの中には1行あります:

AbstractUserDetailsAuthenticationProvider.badCredentials=invalid username or password, please try again

私はここで何が間違っているのですか?

アップデート :

このサーブレットコンテキストは、Webxmlで定義されています。

<!-- Processes application requests -->
    <servlet>
        <servlet-name>appServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/spring/servlet-context.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>appServlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

問題が解決し、messageSourceBean定義を別のコンテキストに移動しました。

4

1 に答える 1

1

すべてが正しく見えます。問題が構成にあるのかセキュリティメッセージにあるのかを確認するために、springメッセージタグを使用してメッセージを取得してみてください。

<spring:message code="AbstractUserDetailsAuthenticationProvider.badCredentials" />

これが機能する場合、問題は構成にありません(私には問題ないように見えます)。

とにかく、メッセージファイルをクラスパス(ソースフォルダ)に入れてみてください。

<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
    <property name="basename" value="classpath:messages/messages"/>
    <property name="cacheSeconds" value="0" />
    <property name="defaultEncoding" value="UTF-8" />
</bean>

また、Springが認識しているアプリケーションコンテキストファイルでBeanが宣言されていることを確認してください。

于 2012-07-04T12:41:19.173 に答える