Skip to content

MockHttpServletRequest changes Accept-Language header values [SPR-17566] #22098

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
spring-projects-issues opened this issue Dec 4, 2018 · 2 comments
Assignees
Labels
in: test Issues in the test module status: backported An issue that has been backported to maintenance branches type: bug A general bug
Milestone

Comments

@spring-projects-issues
Copy link
Collaborator

spring-projects-issues commented Dec 4, 2018

Jan Engehausen opened SPR-17566 and commented

Greetings,

after switching to Spring 5 (via Spring Boot 2) I am unhappy with the behaviour of org.springframework.mock.web.MockHttpServletRequest in regards to handling the Accept-Language header. It seems that it is getting manipulated when values for this header are set. In short, I potentially do not get back the value I am setting. If I set a literal value, e.g. ru, fr;q=0.5, *;q=0.1 then I expect to get this back when I read it again. However, it gets transformed into e.g. ru, fr.

I am attaching a test showing the issue.

While I might work around this by subclassing the mock request where used directly, when I use fancier things like org.springframework.test.web.servlet.MockMvc this does not work (at least I don't know how). The request is built internally, and my code using that request sees the above demonstrated unexpected value.

public void testSomething() throws Exception {
 mockMvc.perform(
 get("/my/controller/url")
 .header(HttpHeaders.ACCEPT_LANGUAGE, "ru, fr;q=0.5, *;q=0.1")
 )
 .andExpect(status().isOk());
) 

Suggestions on how to circumvent this problem or a fix would be appreciated!

Thanks,
Jan


Affects: 5.0.11, 5.1.3

Attachments:

Issue Links:

Backported to: 5.0.12

@spring-projects-issues
Copy link
Collaborator Author

Juergen Hoeller commented

Fixed through preserving the original Accept-Language header value now, in addition to parsing the preferred locales.

@spring-projects-issues
Copy link
Collaborator Author

Jan Engehausen commented

Thanks Juergen, that was a light speed job :) (y)!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
in: test Issues in the test module status: backported An issue that has been backported to maintenance branches type: bug A general bug
Projects
None yet
Development

No branches or pull requests

2 participants