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