← 输入框|github.com|刷新
Skip to content

FormHttpMessageConverter should support non-String form values [SPR-17645] #22174

Closed

Description

@spring-projects-issues

wsy opened SPR-17645 and commented

HttpEntity takes generic type T as request body.

When T is MultiValueMap<String, Object>, and the values of the map contains non-string values such as Integer, an invoke to RestTemplate (with Content-Type "application/x-www-form-urlencoded") will cause ClassCastException.

I've attached a demo project that can re-produce this bug. 

MultiValueMap<String, Object> body = new LinkedMultiValueMap<String, Object>();
body.add("Parameter1", "Value1"); // This is fine
body.add("Parameter2", 2147483647); // This value will trigger the bug after calling RestTemplate to send out this request.

I've already submitted a pull request. Pull Request #2078
 


Affects: 5.1.2

Attachments:

Referenced from: pull request #2078, and commits a82f049

Activity

  1. spring-projects-issues commented on Jan 8, 2019

    @spring-projects-issues
    CollaboratorAuthor

    Juergen Hoeller commented

    I've merged your commit as part of an improvement where we're supporting MultiValueMap<String, Object> for form data as well now. I've also added a corresponding note to FormHttpMessageConverter's javadoc.

  2. added this to the 5.1.4 milestone on Jan 11, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

in: webIssues in web modules (web, webmvc, webflux, websocket)type: enhancementA general enhancement

Type

No type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions