spring security国际化及UserCache的配置和使用

 更新时间:2017年09月22日 10:50:12   投稿:mrr  
这篇文章主要介绍下国际化的配置及UserCache的配置及使用教程,感兴趣的朋友参考下实现代码吧

国际化配置

<!-- 定义上下文返回的消息的国际化 --> 
<bean id="messageSource" 
  class="org.springframework.context.support.ReloadableResourceBundleMessageSource"> 
  <property name="basename" 
    value="classpath:config/messages_zh_CN"/> 
</bean> 

basename中配置的是消息文件的路径

在spring-security-core-3.2.0.M1.jar包中的org.springframework.security下可以找到国际化文件,可以直接拿来,这个类也可以用在项目中

@Autowired 
private MessageSource messageSource; 

这样就可以在类中引如MessageSource使用了,MessageSource提供了下面三个方法

1.String getMessage(String code, Object[] args, String defaultMessage, Locale locale);  

2.String getMessage(String code, Object[] args, Locale locale) throws NoSuchMessageException;  

3.String getMessage(MessageSourceResolvable resolvable, Locale locale) throws NoSuchMessageException;  

比如我们在property文件中定义了如下消息

1.UserDetails.isLocked=用户已被锁定  

2.UserDetails.userNotFound=用户{0}不存在  

然后使用getMessage方法

getMessage("UserDetails.isLocked",null,null) //用户已被锁定
getMessage("UserDetails.isLocked",new Object[]{“admin”},null) //用户admin不存在

UserCache配置,通过ecahe实现

<!-- 启用用户的缓存功能 --> 
<bean id="userCache" 
  class="org.springframework.security.core.userdetails.cache.EhCacheBasedUserCache"> 
  <property name="cache" ref="userEhCache" /> 
</bean> 
<bean id="userEhCache" class="org.springframework.cache.ehcache.EhCacheFactoryBean"> 
  <property name="cacheName" value="userCache" /> 
  <property name="cacheManager" ref="cacheManager" /> 
</bean>  
<bean id="cacheManager" 
class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean" /> 

ehcache.xml

<cache 
  name="userCache" 
  maxElementsInMemory="100" 
  eternal="false" 
  timeToIdleSeconds="600" 
  timeToLiveSeconds="3600" 
  overflowToDisk="true" 
/> 
注入ecache
@Autowired 
private UserCache userCache; 

这样在程序中就可以通过

this.userCache.getUserFromCache(username);获取到缓存中的用户对象

用户对象为UserDetails类型

总结

以上所述是小编给大家介绍的spring security国际化及UserCache的配置和使用,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • IDEA修改idea64.exe.vmoptions文件以及解决coding卡顿问题

    IDEA修改idea64.exe.vmoptions文件以及解决coding卡顿问题

    IDEA修改idea64.exe.vmoptions文件以及解决coding卡顿问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • 使用Spring MVC实现双向数据绑定

    使用Spring MVC实现双向数据绑定

    Spring MVC是一个广泛用于构建Java Web应用程序的框架,它提供了众多功能,包括双向数据绑定,在这篇文章中,我们将向Java新手介绍如何使用Spring MVC实现双向数据绑定,以及为什么这个特性如此重要,需要的朋友可以参考下
    2024-01-01
  • 详解Java ES多节点任务的高效分发与收集实现

    详解Java ES多节点任务的高效分发与收集实现

    ElasticSearch 是一个高可用开源全文检索和分析组件。提供存储服务,搜索服务,大数据准实时分析等。一般用于提供一些提供复杂搜索的应用
    2021-06-06
  • 解析Tomcat 6、7在EL表达式解析时存在的一个Bug

    解析Tomcat 6、7在EL表达式解析时存在的一个Bug

    这篇文章主要是对Tomcat 6、7在EL表达式解析时存在的一个Bug进行了详细的分析介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2013-12-12
  • Spring整合Mybatis方式之注册映射器

    Spring整合Mybatis方式之注册映射器

    这篇文章主要介绍了Spring整合Mybatis方式之注册映射器,MapperFactoryBean注册映射器的最大问题,就是需要一个个注册所有的映射器,而实际上mybatis-spring提供了扫描包下所有映射器接口的方法,每种方式给大家介绍的非常详细,需要的朋友参考下吧
    2024-03-03
  • SSH原理及两种登录方法图文详解

    SSH原理及两种登录方法图文详解

    SSH(Secure Shell)是一套协议标准,可以用来实现两台机器之间的安全登录以及安全的数据传送,其保证数据安全的原理是非对称加密。本文通过图文并茂的形式给大家介绍了SSH原理及两种登录方法,一起看看吧
    2018-08-08
  • Java中的CountDownLatch简单理解

    Java中的CountDownLatch简单理解

    这篇文章主要介绍了Java中的CountDownLatch简单理解,CountDownLatch是一个同步工具类,用来携调多个线程之间的同步,它是是使用一个计数器进行实现的,计数器初始值为线程数量,需要的朋友可以参考下
    2024-01-01
  • Java中的private修饰符失效了?

    Java中的private修饰符失效了?

    这篇文章主要介绍了Java中的private修饰符失效了?本文讨论在一个内部类里面可以访问外部类的private成员变量或者方法的一种现象,需要的朋友可以参考下
    2015-01-01
  • 详解HttpClient用法

    详解HttpClient用法

    HttpClient是Apache Jakarta Common下的子项目,用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,并且它支持HTTP协议最新的版本和建议,这篇文章主要介绍了详解HttpClient用法,需要的朋友可以参考下
    2021-01-01
  • 使用vue3.x+vite+element-ui+vue-router+vuex+axios搭建项目

    使用vue3.x+vite+element-ui+vue-router+vuex+axios搭建项目

    因为vue3出了一段时间了,element也出了基于vue3.x版本的element-plus,这篇文章就拿他们搭建一个项目,希望能给你带来帮助
    2021-08-08

最新评论