From 35139eeabcd9a8ff08adafca1b57103f9c09f3b0 Mon Sep 17 00:00:00 2001 From: D3ns0n Date: Sat, 13 Mar 2021 14:13:37 +0100 Subject: [PATCH] switch from 'redirect:' prefix to ResponseEntity for redirecting UI index --- .../springdoc/webmvc/ui/SwaggerWelcomeActuator.java | 3 ++- .../org/springdoc/webmvc/ui/SwaggerWelcomeCommon.java | 11 +++++++---- .../org/springdoc/webmvc/ui/SwaggerWelcomeWebMvc.java | 3 ++- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/springdoc-openapi-ui/src/main/java/org/springdoc/webmvc/ui/SwaggerWelcomeActuator.java b/springdoc-openapi-ui/src/main/java/org/springdoc/webmvc/ui/SwaggerWelcomeActuator.java index 7cfc147f0..1b37d9e81 100644 --- a/springdoc-openapi-ui/src/main/java/org/springdoc/webmvc/ui/SwaggerWelcomeActuator.java +++ b/springdoc-openapi-ui/src/main/java/org/springdoc/webmvc/ui/SwaggerWelcomeActuator.java @@ -12,6 +12,7 @@ import org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointProperties; import org.springframework.boot.actuate.endpoint.web.annotation.ControllerEndpoint; import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.ResponseBody; @@ -54,7 +55,7 @@ public SwaggerWelcomeActuator(SwaggerUiConfigProperties swaggerUiConfig, SpringD @Operation(hidden = true) @GetMapping(DEFAULT_PATH_SEPARATOR) @Override - public String redirectToUi(HttpServletRequest request) { + public ResponseEntity redirectToUi(HttpServletRequest request) { return super.redirectToUi(request); } diff --git a/springdoc-openapi-ui/src/main/java/org/springdoc/webmvc/ui/SwaggerWelcomeCommon.java b/springdoc-openapi-ui/src/main/java/org/springdoc/webmvc/ui/SwaggerWelcomeCommon.java index fb55bd023..75c66680e 100644 --- a/springdoc-openapi-ui/src/main/java/org/springdoc/webmvc/ui/SwaggerWelcomeCommon.java +++ b/springdoc-openapi-ui/src/main/java/org/springdoc/webmvc/ui/SwaggerWelcomeCommon.java @@ -9,8 +9,9 @@ import org.springdoc.core.SwaggerUiConfigProperties; import org.springdoc.ui.AbstractSwaggerWelcome; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; import org.springframework.web.servlet.support.ServletUriComponentsBuilder; -import org.springframework.web.servlet.view.UrlBasedViewResolver; import org.springframework.web.util.UriComponentsBuilder; import static org.springdoc.core.Constants.SWAGGER_UI_URL; @@ -26,15 +27,17 @@ public SwaggerWelcomeCommon(SwaggerUiConfigProperties swaggerUiConfig, SpringDoc super(swaggerUiConfig, springDocConfigProperties, swaggerUiConfigParameters); } - protected String redirectToUi(HttpServletRequest request) { + protected ResponseEntity redirectToUi(HttpServletRequest request) { buildConfigUrl(request.getContextPath(), ServletUriComponentsBuilder.fromCurrentContextPath()); - String sbUrl = swaggerUiConfigParameters.getUiRootPath() + SWAGGER_UI_URL; + String sbUrl = request.getContextPath() + swaggerUiConfigParameters.getUiRootPath() + SWAGGER_UI_URL; UriComponentsBuilder uriBuilder = getUriComponentsBuilder(sbUrl); // forward all queryParams from original request request.getParameterMap().forEach(uriBuilder::queryParam); - return UrlBasedViewResolver.REDIRECT_URL_PREFIX + uriBuilder.build().encode().toString(); + return ResponseEntity.status(HttpStatus.FOUND) + .location(uriBuilder.build().encode().toUri()) + .build(); } protected Map openapiJson(HttpServletRequest request) { diff --git a/springdoc-openapi-ui/src/main/java/org/springdoc/webmvc/ui/SwaggerWelcomeWebMvc.java b/springdoc-openapi-ui/src/main/java/org/springdoc/webmvc/ui/SwaggerWelcomeWebMvc.java index 88ad33f8c..37f4dc8b5 100644 --- a/springdoc-openapi-ui/src/main/java/org/springdoc/webmvc/ui/SwaggerWelcomeWebMvc.java +++ b/springdoc-openapi-ui/src/main/java/org/springdoc/webmvc/ui/SwaggerWelcomeWebMvc.java @@ -32,6 +32,7 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.ResponseBody; @@ -76,7 +77,7 @@ public SwaggerWelcomeWebMvc(SwaggerUiConfigProperties swaggerUiConfig, SpringDoc @Operation(hidden = true) @GetMapping(SWAGGER_UI_PATH) @Override - public String redirectToUi(HttpServletRequest request) { + public ResponseEntity redirectToUi(HttpServletRequest request) { return super.redirectToUi(request); }