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

发布时间 - 2026-01-11 03:22:29    点击率:

国际化配置

<!-- 定义上下文返回的消息的国际化 --> 
<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的配置和使用,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# spring  # security  # 国际化  # usercache  # 配置  # Spring Boot Security 结合 JWT 实现无状态的分布式API接口  # spring security动态配置url权限的2种实现方法  # SpringBoot + Spring Security 基本使用及个性化登录配置详解  # 详解Spring Security 简单配置  # 详解spring security 配置多个AuthenticationProvider  # spring security在分布式项目下的配置方法(案例详解)  # 已被  # 不存在  # 小编  # 的是  # 在此  # 可以通过  # 给大家  # 可以直接  # 用在  # 中就  # 可以找到  # 所述  # 给我留言  # 感谢大家  # 就可以  # 类中  # 包中  # 疑问请  # 有任何  # 使用了 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: JavaScript如何实现倒计时_时间函数如何精确控制  Laravel的路由模型绑定怎么用_Laravel Route Model Binding简化控制器逻辑  linux写shell需要注意的问题(必看)  Python进程池调度策略_任务分发说明【指导】  Laravel如何发送系统通知_Laravel Notifications实现多渠道消息通知  javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】  Laravel怎么实现搜索高亮功能_Laravel结合Scout与Algolia全文检索【实战】  Laravel控制器是什么_Laravel MVC架构中Controller的作用与实践  如何确认建站备案号应放置的具体位置?  java ZXing生成二维码及条码实例分享  公司网站制作价格怎么算,公司办个官网需要多少钱?  如何用ChatGPT准备面试 模拟面试问答与职场话术练习教程  百度浏览器如何管理插件 百度浏览器插件管理方法  高性能网站服务器部署指南:稳定运行与安全配置优化方案  node.js报错:Cannot find module &#39;ejs&#39;的解决办法  JS中页面与页面之间超链接跳转中文乱码问题的解决办法  如何获取PHP WAP自助建站系统源码?  Laravel如何与Inertia.js和Vue/React构建现代单页应用  微信h5制作网站有哪些,免费微信H5页面制作工具?  如何在企业微信快速生成手机电脑官网?  Laravel如何实现登录错误次数限制_Laravel自带LoginThrottles限流配置【方法】  如何在云主机快速搭建网站站点?  Laravel如何发送系统通知?(Notification渠道示例)  青岛网站建设如何选择本地服务器?  Android Socket接口实现即时通讯实例代码  夸克浏览器网页跳转延迟怎么办 夸克浏览器跳转优化  html文件怎么打开证书错误_https协议的html打开提示不安全【指南】  Laravel如何使用Gate和Policy进行授权?(权限控制)  Laravel如何实现文件上传和存储?(本地与S3配置)  Laravel如何使用Livewire构建动态组件?(入门代码)  edge浏览器无法安装扩展 edge浏览器插件安装失败【解决方法】  Laravel模型事件有哪些_Laravel Model Event生命周期详解  香港服务器如何优化才能显著提升网站加载速度?  如何用花生壳三步快速搭建专属网站?  Laravel如何使用Eloquent进行子查询  如何在阿里云通过域名搭建网站?  如何用AI帮你把自己的生活经历写成一个有趣的故事?  Laravel如何实现用户密码重置功能?(完整流程代码)  js代码实现下拉菜单【推荐】  Laravel怎么解决跨域问题_Laravel配置CORS跨域访问  Laravel中的withCount方法怎么高效统计关联模型数量  如何在橙子建站中快速调整背景颜色?  Laravel项目怎么部署到Linux_Laravel Nginx配置详解  Laravel Octane如何提升性能_使用Laravel Octane加速你的应用  如何在香港服务器上快速搭建免备案网站?  如何快速搭建个人网站并优化SEO?  Python自然语言搜索引擎项目教程_倒排索引查询优化案例  如何基于PHP生成高效IDC网络公司建站源码?  Midjourney怎样加参数调细节_Midjourney参数调整技巧【指南】  详解jQuery中的事件