spring security國際化及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實現(xiàn)
<!-- 啟用用戶的緩存功能 --> <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類型
總結(jié)
以上所述是小編給大家介紹的spring security國際化及UserCache的配置和使用,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
IDEA修改idea64.exe.vmoptions文件以及解決coding卡頓問題
IDEA修改idea64.exe.vmoptions文件以及解決coding卡頓問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-04-04使用Spring MVC實現(xiàn)雙向數(shù)據(jù)綁定
Spring MVC是一個廣泛用于構(gòu)建Java Web應(yīng)用程序的框架,它提供了眾多功能,包括雙向數(shù)據(jù)綁定,在這篇文章中,我們將向Java新手介紹如何使用Spring MVC實現(xiàn)雙向數(shù)據(jù)綁定,以及為什么這個特性如此重要,需要的朋友可以參考下2024-01-01詳解Java ES多節(jié)點任務(wù)的高效分發(fā)與收集實現(xiàn)
ElasticSearch 是一個高可用開源全文檢索和分析組件。提供存儲服務(wù),搜索服務(wù),大數(shù)據(jù)準(zhǔn)實時分析等。一般用于提供一些提供復(fù)雜搜索的應(yīng)用2021-06-06解析Tomcat 6、7在EL表達(dá)式解析時存在的一個Bug
這篇文章主要是對Tomcat 6、7在EL表達(dá)式解析時存在的一個Bug進行了詳細(xì)的分析介紹,需要的朋友可以過來參考下,希望對大家有所幫助2013-12-12使用vue3.x+vite+element-ui+vue-router+vuex+axios搭建項目
因為vue3出了一段時間了,element也出了基于vue3.x版本的element-plus,這篇文章就拿他們搭建一個項目,希望能給你帶來幫助2021-08-08