Skip to content

Commit 19dae24

Browse files
committed
Remove security schemes without marking them x-internal
1 parent 9ce866a commit 19dae24

2 files changed

Lines changed: 32 additions & 34 deletions

File tree

modules/openapi-generator/src/main/java/org/openapitools/codegen/OpenAPINormalizer.java

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -627,9 +627,13 @@ protected void normalizeComponentsSecuritySchemes() {
627627
}
628628
}
629629

630-
for (String schemeKey : schemes.keySet()) {
630+
Iterator<Map.Entry<String, SecurityScheme>> it = schemes.entrySet().iterator();
631+
while (it.hasNext()) {
632+
Map.Entry<String, SecurityScheme> entry = it.next();
633+
String schemeKey = entry.getKey();
634+
SecurityScheme scheme = entry.getValue();
635+
631636
if (schemeKey.equals(bearerAuthSecuritySchemeName)) {
632-
SecurityScheme scheme = schemes.get(schemeKey);
633637
scheme.setType(SecurityScheme.Type.HTTP);
634638
scheme.setScheme("bearer");
635639
scheme.setIn(null);
@@ -646,8 +650,10 @@ protected void normalizeComponentsSecuritySchemes() {
646650
// It may happen that bearer scheme will be filtered out on this step.
647651
// To keep the scheme - change filter input.
648652
if (filter != null && filter.hasFilter()) {
649-
SecurityScheme scheme = schemes.get(schemeKey);
650-
filter.apply(schemeKey, scheme);
653+
boolean keep = filter.apply(schemeKey, scheme);
654+
if (!keep) {
655+
it.remove();
656+
}
651657
}
652658
}
653659
}
@@ -2220,13 +2226,13 @@ protected boolean hasCustomFilterMatch(String schemeKey, SecurityScheme scheme)
22202226
return false;
22212227
}
22222228

2223-
public void apply(String schemeKey, SecurityScheme scheme) {
2229+
public boolean apply(String schemeKey, SecurityScheme scheme) {
22242230
boolean found = false;
22252231
found |= logIfMatch(KEY, schemeKey, hasKey(schemeKey));
22262232
found |= logIfMatch(TYPE, schemeKey, hasType(scheme.getType().toString()));
22272233
found |= hasCustomFilterMatch(schemeKey, scheme);
22282234

2229-
scheme.addExtension(X_INTERNAL, !found);
2235+
return found;
22302236
}
22312237

22322238
private boolean hasKey(String key) {

modules/openapi-generator/src/test/java/org/openapitools/codegen/OpenAPINormalizerTest.java

Lines changed: 20 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -938,20 +938,16 @@ public void testSecuritySchemesFilter() {
938938

939939
new OpenAPINormalizer(openAPI, options).normalize();
940940

941-
assertEquals(openAPI.getComponents().getSecuritySchemes().get("api_key1").getExtensions().get(X_INTERNAL),
942-
false);
943-
assertEquals(openAPI.getComponents().getSecuritySchemes().get("api_key2").getExtensions().get(X_INTERNAL),
944-
true);
945-
assertEquals(openAPI.getComponents().getSecuritySchemes().get("http1").getExtensions().get(X_INTERNAL), true);
946-
assertEquals(openAPI.getComponents().getSecuritySchemes().get("http2").getExtensions().get(X_INTERNAL), true);
947-
assertEquals(openAPI.getComponents().getSecuritySchemes().get("mutualTLS1").getExtensions().get(X_INTERNAL), true);
948-
assertEquals(openAPI.getComponents().getSecuritySchemes().get("mutualTLS2").getExtensions().get(X_INTERNAL), true);
949-
assertEquals(openAPI.getComponents().getSecuritySchemes().get("oauth2_1").getExtensions().get(X_INTERNAL),
950-
false);
951-
assertEquals(openAPI.getComponents().getSecuritySchemes().get("oauth2_2").getExtensions().get(X_INTERNAL),
952-
false);
953-
assertEquals(openAPI.getComponents().getSecuritySchemes().get("openIdConnect1").getExtensions().get(X_INTERNAL), true);
954-
assertEquals(openAPI.getComponents().getSecuritySchemes().get("openIdConnect2").getExtensions().get(X_INTERNAL), true);
941+
assertEquals(openAPI.getComponents().getSecuritySchemes().containsKey("api_key1"), true);
942+
assertEquals(openAPI.getComponents().getSecuritySchemes().containsKey("api_key2"), false);
943+
assertEquals(openAPI.getComponents().getSecuritySchemes().containsKey("http1"), false);
944+
assertEquals(openAPI.getComponents().getSecuritySchemes().containsKey("http2"), false);
945+
assertEquals(openAPI.getComponents().getSecuritySchemes().containsKey("mutualTLS1"), false);
946+
assertEquals(openAPI.getComponents().getSecuritySchemes().containsKey("mutualTLS2"), false);
947+
assertEquals(openAPI.getComponents().getSecuritySchemes().containsKey("oauth2_1"), true);
948+
assertEquals(openAPI.getComponents().getSecuritySchemes().containsKey("oauth2_2"), true);
949+
assertEquals(openAPI.getComponents().getSecuritySchemes().containsKey("openIdConnect1"), false);
950+
assertEquals(openAPI.getComponents().getSecuritySchemes().containsKey("openIdConnect2"), false);
955951
}
956952

957953
@Test
@@ -964,23 +960,19 @@ public void testSecuritySchemesFilterAndBearerAuthName() {
964960

965961
new OpenAPINormalizer(openAPI, options).normalize();
966962

967-
assertEquals(openAPI.getComponents().getSecuritySchemes().get("api_key1").getExtensions().get(X_INTERNAL),
968-
false);
963+
assertEquals(openAPI.getComponents().getSecuritySchemes().containsKey("api_key1"), true);
969964
SecurityScheme scheme = openAPI.getComponents().getSecuritySchemes().get("api_key1");
970965
assertEquals(scheme.getType(), SecurityScheme.Type.HTTP);
971966
assertEquals(scheme.getScheme(), "bearer");
972-
assertEquals(openAPI.getComponents().getSecuritySchemes().get("api_key2").getExtensions().get(X_INTERNAL),
973-
true);
974-
assertEquals(openAPI.getComponents().getSecuritySchemes().get("http1").getExtensions().get(X_INTERNAL), true);
975-
assertEquals(openAPI.getComponents().getSecuritySchemes().get("http2").getExtensions().get(X_INTERNAL), true);
976-
assertEquals(openAPI.getComponents().getSecuritySchemes().get("mutualTLS1").getExtensions().get(X_INTERNAL), true);
977-
assertEquals(openAPI.getComponents().getSecuritySchemes().get("mutualTLS2").getExtensions().get(X_INTERNAL), true);
978-
assertEquals(openAPI.getComponents().getSecuritySchemes().get("oauth2_1").getExtensions().get(X_INTERNAL),
979-
true);
980-
assertEquals(openAPI.getComponents().getSecuritySchemes().get("oauth2_2").getExtensions().get(X_INTERNAL),
981-
true);
982-
assertEquals(openAPI.getComponents().getSecuritySchemes().get("openIdConnect1").getExtensions().get(X_INTERNAL), true);
983-
assertEquals(openAPI.getComponents().getSecuritySchemes().get("openIdConnect2").getExtensions().get(X_INTERNAL), true);
967+
assertEquals(openAPI.getComponents().getSecuritySchemes().containsKey("api_key2"), false);
968+
assertEquals(openAPI.getComponents().getSecuritySchemes().containsKey("http1"), false);
969+
assertEquals(openAPI.getComponents().getSecuritySchemes().containsKey("http2"), false);
970+
assertEquals(openAPI.getComponents().getSecuritySchemes().containsKey("mutualTLS1"), false);
971+
assertEquals(openAPI.getComponents().getSecuritySchemes().containsKey("mutualTLS2"), false);
972+
assertEquals(openAPI.getComponents().getSecuritySchemes().containsKey("oauth2_1"), false);
973+
assertEquals(openAPI.getComponents().getSecuritySchemes().containsKey("oauth2_2"), false);
974+
assertEquals(openAPI.getComponents().getSecuritySchemes().containsKey("openIdConnect1"), false);
975+
assertEquals(openAPI.getComponents().getSecuritySchemes().containsKey("openIdConnect2"), false);
984976
}
985977

986978
@Test

0 commit comments

Comments
 (0)