溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

spring security國際化及UserCache的配置和使用

發布時間:2020-08-29 04:05:28 來源:腳本之家 閱讀:259 作者:mrr 欄目:編程語言

國際化配置

<!-- 定義上下文返回的消息的國際化 --> 
<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的配置和使用,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對億速云網站的支持!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女