spring security 信息提示

本文介绍通过SpringWebMVC的本地化类CookieLocaleResolver实现SS的汉化,包括配置应用上下文、安全上下文及注入messageSource等步骤。还提供了解压资源文件至项目classpath下的方法,并通过配置messageSource实现汉化。通过调整配置和注入messageSource,确保应用在使用错误用户名密码登录时显示正确的中文提示。
摘要由CSDN通过智能技术生成

通过实践,有两种方式是可实现SS的汉化

第一种,利用Spring webmvc的本地化类CookieLocaleResolver

这种方式需要引用springframework webmvc的jar包;

在applicationContext.xml里定义它,并制定默认本地语言

  1. <bean
  2. id=“localeResolver”
  3. class=“org.springframework.web.servlet.i18n.CookieLocaleResolver”>
  4. <property
  5. name=“defaultLocale”
  6. value=“zh_CN” />
  7. </bean>

同时在security.xml中指定messageSource所在位置:

  1. <beans:bean
  2. id=“messageSource”
  3. class=“org.springframework.context.support.ResourceBundleMessageSource”>
  4. <beans:property
  5. name=“basenames”>
  6. <beans:list>
  7. <beans:value>messages</beans:value>
  8. <beans:value>org/springframework/security/messages</beans:value>
  9. </beans:list>
  10. </beans:property>
  11. </beans:bean>

注意:我的applicationContext.xml和security.xml定义bean的命名空间不一样;

这时候重新启动应用,尝试用错误的用户名密码登录,看提示有没有变化,是否跟下图一样

SS的中文化也确认让人蛋疼的,命名用户名错误,翻译成了坏的凭证,这个问题可以修改下Messages_zh_CN.properties中的定义

 

第二种方案:解压出messages_zh_CN.properties放置到项目的classpath(resources)下

资源文件位于spring-security-core*.*的jar包的org.springframework.security目录下,将其解压后把messages_zh_CN.properties复制到resources的目录下

在security.xml中定义messageSource

  1. <beans:bean
  2. id=“messageSource”
  3. class=“org.springframework.context.support.ReloadableResourceBundleMessageSource”>
  4. <beans:property
  5. name=“basename”
  6. value=“classpath:messages_zh_CN” />
  7. </beans:bean>

再将其注入到authProvider

  1. <beans:property
  2. name=“messageSource”
  3. ref=“messageSource” />

重启应用,用错误用户名,密码登录同样可看到应用汉化了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值