zoukankan      html  css  js  c++  java
  • Spring Security教程(5)---- 国际化配置及UserCache

    这一章是为了给后面的讲解打基础的,主要介绍下国际化的配置及UserCache的配置及使用

    国际化配置

    [html] view plain copy
     
     在CODE上查看代码片派生到我的代码片
    1. <!-- 定义上下文返回的消息的国际化 -->  
    2. <bean id="messageSource"  
    3.     class="org.springframework.context.support.ReloadableResourceBundleMessageSource">  
    4.     <property name="basename"  
    5.         value="classpath:config/messages_zh_CN"/>  
    6. </bean>  

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

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

    [java] view plain copy
     
     在CODE上查看代码片派生到我的代码片
    1. @Autowired  
    2. private MessageSource messageSource;  

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

    [html] view plain copy
     
     在CODE上查看代码片派生到我的代码片
    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文件中定义了如下消息

    [java] view plain copy
     
     在CODE上查看代码片派生到我的代码片
    1. UserDetails.isLocked=用户已被锁定  
    2. UserDetails.userNotFound=用户{0}不存在  

    然后使用getMessage方法
    getMessage("UserDetails.isLocked",null,null)  //用户已被锁定

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

    UserCache配置,通过ecahe实现

    [java] view plain copy
     
     在CODE上查看代码片派生到我的代码片
    1. <!-- 启用用户的缓存功能 -->  
    2. <bean id="userCache"  
    3.     class="org.springframework.security.core.userdetails.cache.EhCacheBasedUserCache">  
    4.     <property name="cache" ref="userEhCache" />  
    5. </bean>  
    6.   
    7. <bean id="userEhCache" class="org.springframework.cache.ehcache.EhCacheFactoryBean">  
    8.     <property name="cacheName" value="userCache" />  
    9.     <property name="cacheManager" ref="cacheManager" />  
    10. </bean>  
    11.   
    12. <bean id="cacheManager"  
    13.     class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean" />  

    ehcache.xml

    [html] view plain copy
     
     在CODE上查看代码片派生到我的代码片
    1. <cache  
    2.     name="userCache"  
    3.     maxElementsInMemory="100"  
    4.     eternal="false"  
    5.     timeToIdleSeconds="600"  
    6.     timeToLiveSeconds="3600"  
    7.     overflowToDisk="true"  
    8. />  

    注入ecache

    [java] view plain copy
     
     在CODE上查看代码片派生到我的代码片
    1. @Autowired  
    2. private UserCache userCache;  

    这样在程序中就可以通过

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

    用户对象为UserDetails类型

  • 相关阅读:
    JQuery的摸索之路(一)
    C#操作excel(NPOI篇)
    Mschart学习(MSchart介绍)
    JQuery的摸索之路(二比较)
    Mschart学习(开篇)
    Mschart学习(官方demo共享)
    SQL进阶提升(疑惑篇order by)学习sql server2005 step by step(十一)
    一步一步学习C#(二C#基础)
    NickLee的学习
    Linux 命令学习一
  • 原文地址:https://www.cnblogs.com/haore147/p/5213626.html
Copyright © 2011-2022 走看看