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的配置和使用,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
如何通過properties文件配置web.xml中的參數(shù)
這篇文章主要介紹了如何通過properties文件配置web.xml中的參數(shù)方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08
IntelliJ IDEA設(shè)置JVM運行參數(shù)的操作方法
這篇文章主要介紹了IntelliJ IDEA設(shè)置JVM運行參數(shù)的操作方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2018-03-03

