diff --git a/src/main/java/org/springframework/hateoas/server/reactive/WebFluxLinkBuilder.java b/src/main/java/org/springframework/hateoas/server/reactive/WebFluxLinkBuilder.java index baee60aa..40705119 100644 --- a/src/main/java/org/springframework/hateoas/server/reactive/WebFluxLinkBuilder.java +++ b/src/main/java/org/springframework/hateoas/server/reactive/WebFluxLinkBuilder.java @@ -255,7 +255,8 @@ public class WebFluxLinkBuilder extends TemplateVariableAwareLinkBuilderSupport< PathContainer contextPath = request.getPath().contextPath(); return UriComponentsBuilder.fromHttpRequest(request) // - .replacePath(contextPath.toString()); + .replacePath(contextPath.toString()) // + .replaceQuery(""); } private static Mono linkToInternal(Object invocation) { diff --git a/src/test/java/org/springframework/hateoas/server/reactive/WebFluxLinkBuilderTest.java b/src/test/java/org/springframework/hateoas/server/reactive/WebFluxLinkBuilderTest.java index 4900e7de..b1ddd85a 100644 --- a/src/test/java/org/springframework/hateoas/server/reactive/WebFluxLinkBuilderTest.java +++ b/src/test/java/org/springframework/hateoas/server/reactive/WebFluxLinkBuilderTest.java @@ -214,6 +214,19 @@ class WebFluxLinkBuilderTest { }); } + @Test // #1152 + void removesIncomingQueryParameters() { + + MockServerHttpRequest request = MockServerHttpRequest.get("http://localhost:8080/api?some=parameter") // + .build(); + + WebFluxLink link = linkTo(methodOn(TestController.class).deep()).withSelfRel(); + + verify(request, link, result -> { + assertThat(result.getHref()).endsWith("/api/employees"); + }); + } + private void verify(@Nullable MockServerHttpRequest request, WebFluxLink link, Consumer verifications) { Mono mono = link.toMono();