File tree Expand file tree Collapse file tree 2 files changed +16
-0
lines changed
main/java/org/springframework/http
test/java/org/springframework/http Expand file tree Collapse file tree 2 files changed +16
-0
lines changed Original file line number Diff line number Diff line change @@ -502,6 +502,9 @@ public void setAcceptLanguage(List<Locale.LanguageRange> languages) {
502
502
*/
503
503
public List <Locale .LanguageRange > getAcceptLanguage () {
504
504
String value = getFirst (ACCEPT_LANGUAGE );
505
+ if (value != null ) {
506
+ value = StringUtils .trimTrailingCharacter (value , ';' );
507
+ }
505
508
return (StringUtils .hasText (value ) ? Locale .LanguageRange .parse (value ) : Collections .emptyList ());
506
509
}
507
510
Original file line number Diff line number Diff line change @@ -489,6 +489,19 @@ void acceptLanguage() {
489
489
assertThat (headers .getAcceptLanguageAsLocales ()).element (0 ).isEqualTo (Locale .FRANCE );
490
490
}
491
491
492
+ @ Test
493
+ void acceptLanguageTrailingSemicolon () {
494
+ String headerValue = "en-us,en;" ;
495
+ headers .set (HttpHeaders .ACCEPT_LANGUAGE , headerValue );
496
+ assertThat (headers .getFirst (HttpHeaders .ACCEPT_LANGUAGE )).isEqualTo (headerValue );
497
+
498
+ List <Locale .LanguageRange > expectedRanges = Arrays .asList (
499
+ new Locale .LanguageRange ("en-us" ),
500
+ new Locale .LanguageRange ("en" )
501
+ );
502
+ assertThat (headers .getAcceptLanguage ()).isEqualTo (expectedRanges );
503
+ }
504
+
492
505
@ Test // SPR-15603
493
506
void acceptLanguageWithEmptyValue () {
494
507
this .headers .set (HttpHeaders .ACCEPT_LANGUAGE , "" );
You can’t perform that action at this time.
0 commit comments