Skip to content

Refine default filtered headers for web data binding #34182

@ioanclarke

Description

@ioanclarke

Here's a minimal reproducible example of, what I believe is, a bug in Spring Boot 3.4.0.

I have a Spring Boot web app with a controller that looks like this:

@RestController
@RequestMapping("/sftp")
public class SftpController {
    @GetMapping
    public ResponseEntity<Void> find(SftpSearchRequest searchRequest) {
        System.out.println(searchRequest.getHost());
        return ResponseEntity.ok().build();
    }
}

where SftpSearchRequest looks like this:

public class SftpSearchRequest {
    private String id;
    private String host;

    public String getId() { return id; }

    public void setId(String id) { this.id = id; }

    public String getHost() { return host; }

    public void setHost(String host) { this.host = host; }
}

I have the app running on port 8088 and I am sending a request that looks like this: GET http://localhost:8088/sftp?id=123.

  • When using Spring Boot 3.3.5, "null" is printed to the console
  • When using Spring Boot 3.4.0, "localhost:8088" is printed to the console

I believe Spring Boot attempts to following SemVer - and this appears to be a breaking change - which is why I believe this may be a bug, especially since I haven't found this behaviour change mentioned in release notes.

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