spring security国际化资源文件修改方式

测试小哥拿刀提bug,吓尿开发小哥,bug如图

bug 图

分析问题原因:切换了时区导致请求头Accept-Language发生变化

postman 测试图

根据spring官网文档说明,对本地化配置有两种方式

spring 官网

spring过滤器源代码跟踪Accept-Language设置位置

spring 过滤器源代码跟踪图

解决方案

一、xml格式

<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
    <property name="basename" value="classpath:org/springframework/security/messages"/>
</bean>

二、配置类格式

import org.springframework.context.MessageSource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.support.ReloadableResourceBundleMessageSource;
 
import java.util.Locale;
@Configuration
public class SecurityMessageLocal {
 
    @Bean
    public MessageSource messageSource() {
        Locale.setDefault(Locale.CHINA);
        ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
//        messageSource.addBasenames("classpath:org/springframework/security/messages_zh_CN");
        messageSource.addBasenames("classpath:security/messages_zh_CN");
        return messageSource;
    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容