Skip to content

Commit e758d41

Browse files
committed
Changes report: Redirection to UI broken with query-config-enabled when any other boolean parameter is defined #1621
1 parent b0b6ea5 commit e758d41

File tree

3 files changed

+49
-10
lines changed

3 files changed

+49
-10
lines changed

springdoc-openapi-starter-common/src/main/java/org/springdoc/ui/AbstractSwaggerIndexTransformer.java

+1-9
Original file line numberDiff line numberDiff line change
@@ -174,15 +174,7 @@ protected String addParameters(String html) throws JsonProcessingException {
174174
.filter(entry -> !SwaggerUiConfigParameters.URL_PROPERTY.equals(entry.getKey()))
175175
.filter(entry -> !SwaggerUiConfigParameters.URLS_PROPERTY.equals(entry.getKey()))
176176
.filter(entry -> SwaggerUiConfigParameters.VALIDATOR_URL_PROPERTY.equals(entry.getKey())
177-
|| SwaggerUiConfigParameters.DISPLAY_OPERATION_ID_PROPERTY.equals(entry.getKey())
178-
|| SwaggerUiConfigParameters.DEEP_LINKING_PROPERTY.equals(entry.getKey())
179-
|| SwaggerUiConfigParameters.DISPLAY_REQUEST_DURATION_PROPERTY.equals(entry.getKey())
180-
|| SwaggerUiConfigParameters.SHOW_EXTENSIONS_PROPERTY.equals(entry.getKey())
181-
|| SwaggerUiConfigParameters.SHOW_COMMON_EXTENSIONS_PROPERTY.equals(entry.getKey())
182-
|| SwaggerUiConfigParameters.TRY_IT_ENABLED_PROPERTY.equals(entry.getKey())
183-
|| SwaggerUiConfigParameters.PERSIST_AUTHORIZATION_PROPERTY.equals(entry.getKey())
184-
|| SwaggerUiConfigParameters.WITH_CREDENTIALS_PROPERTY.equals(entry.getKey())
185-
|| StringUtils.isNotEmpty((String) entry.getValue()))
177+
|| ((entry.getValue() instanceof String) ? StringUtils.isNotEmpty((String) entry.getValue()) : entry.getValue() != null))
186178
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue,(e1, e2) -> e2,
187179
LinkedHashMap::new));
188180

springdoc-openapi-starter-common/src/main/java/org/springdoc/ui/AbstractSwaggerWelcome.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ protected UriComponentsBuilder getUriComponentsBuilder(String sbUrl) {
162162
.filter(entry -> !SwaggerUiConfigParameters.OAUTH2_REDIRECT_URL_PROPERTY.equals(entry.getKey()))
163163
.filter(entry -> !SwaggerUiConfigParameters.URL_PROPERTY.equals(entry.getKey()))
164164
.filter(entry -> !entry.getKey().startsWith(SwaggerUiConfigParameters.URLS_PROPERTY))
165-
.filter(entry -> StringUtils.isNotEmpty((String) entry.getValue()))
165+
.filter(entry -> (entry.getValue() instanceof String) ? StringUtils.isNotEmpty((String) entry.getValue()) : entry.getValue() != null)
166166
.forEach(entry -> uriBuilder.queryParam(entry.getKey(), entry.getValue()));
167167
uriBuilder.queryParam(SwaggerUiConfigParameters.CONFIG_URL_PROPERTY, swaggerUiConfigParameters.getConfigUrl());
168168
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
/*
2+
*
3+
* * Copyright 2019-2020 the original author or authors.
4+
* *
5+
* * Licensed under the Apache License, Version 2.0 (the "License");
6+
* * you may not use this file except in compliance with the License.
7+
* * You may obtain a copy of the License at
8+
* *
9+
* * https://www.apache.org/licenses/LICENSE-2.0
10+
* *
11+
* * Unless required by applicable law or agreed to in writing, software
12+
* * distributed under the License is distributed on an "AS IS" BASIS,
13+
* * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
* * See the License for the specific language governing permissions and
15+
* * limitations under the License.
16+
*
17+
*/
18+
19+
package test.org.springdoc.ui.app31;
20+
21+
import org.junit.jupiter.api.Test;
22+
import test.org.springdoc.ui.AbstractSpringDocTest;
23+
24+
import org.springframework.boot.autoconfigure.SpringBootApplication;
25+
import org.springframework.test.context.TestPropertySource;
26+
27+
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
28+
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.header;
29+
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
30+
31+
@TestPropertySource(properties = {
32+
"springdoc.swagger-ui.path=/api/",
33+
"springdoc.swagger-ui.show-extensions=true",
34+
"springdoc.swagger-ui.query-config-enabled=true",
35+
})
36+
public class SpringDocApp31Test extends AbstractSpringDocTest {
37+
38+
@SpringBootApplication
39+
static class SpringDocTestApp {}
40+
41+
@Test
42+
public void test_query_config() throws Exception {
43+
mockMvc.perform(get("/api/"))
44+
.andExpect(status().isFound())
45+
.andExpect(header().string("Location", "/api/swagger-ui/index.html?showExtensions=true&configUrl=/v3/api-docs/swagger-config"));
46+
}
47+
}

0 commit comments

Comments
 (0)