2323import javax .servlet .http .HttpServletRequest ;
2424
2525import io .swagger .v3 .oas .annotations .Operation ;
26+ import org .apache .commons .lang3 .StringUtils ;
2627import org .springdoc .core .SpringDocConfigProperties ;
2728import org .springdoc .core .SpringDocConfiguration ;
2829import org .springdoc .core .SwaggerUiConfigProperties ;
2930
31+ import org .springframework .beans .factory .annotation .Value ;
3032import org .springframework .boot .autoconfigure .condition .ConditionalOnBean ;
3133import org .springframework .boot .autoconfigure .condition .ConditionalOnProperty ;
32- import org .springframework .boot .autoconfigure .web .servlet .WebMvcProperties ;
3334import org .springframework .http .MediaType ;
3435import org .springframework .stereotype .Controller ;
3536import org .springframework .web .bind .annotation .GetMapping ;
3637import org .springframework .web .bind .annotation .ResponseBody ;
3738import org .springframework .web .servlet .support .ServletUriComponentsBuilder ;
3839import org .springframework .web .util .UriComponentsBuilder ;
3940
41+ import static org .springdoc .core .Constants .MVC_SERVLET_PATH ;
4042import static org .springdoc .core .Constants .SPRINGDOC_SWAGGER_UI_ENABLED ;
4143import static org .springdoc .core .Constants .SWAGGER_CONFIG_URL ;
4244import static org .springdoc .core .Constants .SWAGGER_UI_PATH ;
4345import static org .springdoc .core .Constants .SWAGGER_UI_URL ;
44- import static org .springframework .util .AntPathMatcher .DEFAULT_PATH_SEPARATOR ;
4546import static org .springframework .web .servlet .view .UrlBasedViewResolver .REDIRECT_URL_PREFIX ;
4647
4748@ Controller
4849@ ConditionalOnProperty (name = SPRINGDOC_SWAGGER_UI_ENABLED , matchIfMissing = true )
4950@ ConditionalOnBean (SpringDocConfiguration .class )
5051public class SwaggerWelcome extends AbstractSwaggerWelcome {
5152
52- private final WebMvcProperties webMvcProperties ;
53+ @ Value (MVC_SERVLET_PATH )
54+ private String mvcServletPath ;
5355
54- public SwaggerWelcome (SwaggerUiConfigProperties swaggerUiConfig , SpringDocConfigProperties springDocConfigProperties , WebMvcProperties webMvcProperties ) {
56+ public SwaggerWelcome (SwaggerUiConfigProperties swaggerUiConfig , SpringDocConfigProperties springDocConfigProperties ) {
5557 super (swaggerUiConfig , springDocConfigProperties );
56- this .webMvcProperties = webMvcProperties ;
5758 }
5859
5960 @ Operation (hidden = true )
@@ -75,17 +76,15 @@ public Map<String, Object> openapiYaml(HttpServletRequest request) {
7576
7677 @ Override
7778 protected void calculateUiRootPath (StringBuilder ... sbUrls ) {
78- String mvcServletPath = webMvcProperties .getServlet ().getPath ();
7979 StringBuilder sbUrl = new StringBuilder ();
80- if (! DEFAULT_PATH_SEPARATOR . equals (mvcServletPath ))
80+ if (StringUtils . isNotBlank (mvcServletPath ))
8181 sbUrl .append (mvcServletPath );
8282 super .calculateUiRootPath (sbUrl );
8383 }
8484
8585 @ Override
8686 protected String buildUrl (String contextPath , final String docsUrl ) {
87- String mvcServletPath = webMvcProperties .getServlet ().getPath ();
88- if (!DEFAULT_PATH_SEPARATOR .equals (mvcServletPath ))
87+ if (StringUtils .isNotBlank (mvcServletPath ))
8988 contextPath += mvcServletPath ;
9089 return super .buildUrl (contextPath ,docsUrl );
9190 }
0 commit comments