我的网络应用程序中有一个弹簧安全设置。我想用我的自定义消息替换一些spring security的消息,即
而不是Bad Credentials
我希望AbstractUserDetailsAuthenticationProvider.badCredentials
具有值invalid 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
的{{1}}中创建了文件夹。在此文件夹中有一个名为messages
的文件。在这个文件里面是一行:
messages.properties
我在这里做错了什么?
更新:
此servlet-context在web xml中定义:
AbstractUserDetailsAuthenticationProvider.badCredentials=invalid username or password, please try again
问题解决了,将messageSource bean定义移动到另一个上下文。
答案 0 :(得分:1)
一切看起来都很正确。尝试使用spring message标记获取消息,以检查问题是否与您的配置或安全消息有关:
<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>
另外,检查bean是否在Spring知道的应用程序上下文文件中声明。