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

2021-05-14  本文已影响0人  邓立_全栈UncleLi

测试小哥拿刀提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;
    }
}
上一篇 下一篇

猜你喜欢

热点阅读