mirror of
https://github.com/spring-projects/spring-framework
synced 2026-06-08 17:33:33 +00:00
Handle blank Accept-Language header in AcceptHeaderLocaleResolver
When the Accept-Language header is present but blank, defaultLocale was ignored and fell back to Locale.getDefault() (JVM system locale). A blank header represents the same intent as an absent header. Closes gh-36513 Signed-off-by: elgun.shukurov <elgun.sukurov@kapitalbank.az>
This commit is contained in:
committed by
Brian Clozel
parent
f92e810831
commit
4b211643bb
+1
-1
@@ -85,7 +85,7 @@ public class AcceptHeaderLocaleResolver extends AbstractLocaleResolver {
|
||||
@Override
|
||||
public Locale resolveLocale(HttpServletRequest request) {
|
||||
Locale defaultLocale = getDefaultLocale();
|
||||
if (defaultLocale != null && request.getHeader("Accept-Language") == null) {
|
||||
if (defaultLocale != null && !StringUtils.hasText(request.getHeader("Accept-Language"))) {
|
||||
return defaultLocale;
|
||||
}
|
||||
Locale requestLocale = request.getLocale();
|
||||
|
||||
+8
@@ -105,6 +105,14 @@ class AcceptHeaderLocaleResolverTests {
|
||||
assertThat(this.resolver.resolveLocale(request)).isEqualTo(US);
|
||||
}
|
||||
|
||||
@Test
|
||||
void defaultLocaleWithBlankAcceptLanguageHeader() {
|
||||
this.resolver.setDefaultLocale(JAPANESE);
|
||||
MockHttpServletRequest request = new MockHttpServletRequest();
|
||||
request.addHeader("Accept-Language", "");
|
||||
assertThat(this.resolver.resolveLocale(request)).isEqualTo(JAPANESE);
|
||||
}
|
||||
|
||||
|
||||
private HttpServletRequest request(Locale... locales) {
|
||||
MockHttpServletRequest request = new MockHttpServletRequest();
|
||||
|
||||
Reference in New Issue
Block a user