Skip to content

Commit 3555acc

Browse files
committed
added extensions for security functions to be read by flask output code.
1 parent f5f7f51 commit 3555acc

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/FlaskConnexionCodegen.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
import io.swagger.models.Operation;
1111
import io.swagger.models.Path;
1212
import io.swagger.models.Swagger;
13+
import io.swagger.models.auth.AbstractSecuritySchemeDefinition;
14+
import io.swagger.models.auth.SecuritySchemeDefinition;
1315
import io.swagger.models.parameters.Parameter;
1416
import io.swagger.models.properties.*;
1517
import io.swagger.util.Yaml;
@@ -342,6 +344,7 @@ public void preprocessSwagger(Swagger swagger) {
342344
}
343345
}
344346
}
347+
addSecurityExtensions(swagger.getSecurityDefinitions());
345348
}
346349

347350
@SuppressWarnings("unchecked")
@@ -681,6 +684,27 @@ public void postProcessParameter(CodegenParameter parameter){
681684
postProcessPattern(parameter.pattern, parameter.vendorExtensions);
682685
}
683686

687+
protected void addSecurityExtensions(Map<String, SecuritySchemeDefinition> securitySchemes) {
688+
if (securitySchemes == null || securitySchemes.isEmpty()) {
689+
return;
690+
}
691+
for (String securityName : securitySchemes.keySet()) {
692+
final AbstractSecuritySchemeDefinition securityScheme = (AbstractSecuritySchemeDefinition) securitySchemes.get(securityName);
693+
final String functionName = controllerPackage + ".authorization_controller.check_" + securityName;
694+
695+
if ("oauth2".equalsIgnoreCase(securityScheme.getType())) {
696+
securityScheme.getVendorExtensions().put("x-tokenInfoFunc", functionName);
697+
securityScheme.getVendorExtensions().put("x-scopeValidateFunc", controllerPackage + ".authorization_controller.validate_scope_" + securityName);
698+
} else if ("basic".equalsIgnoreCase(securityScheme.getType())) {
699+
securityScheme.getVendorExtensions().put("x-basicInfoFunc", functionName);
700+
} else if ("apiKey".equalsIgnoreCase(securityScheme.getType())) {
701+
securityScheme.getVendorExtensions().put("x-apikeyInfoFunc", functionName);
702+
} else {
703+
LOGGER.warn("Security type " + securityScheme.getType().toString() + " is not supported.");
704+
}
705+
}
706+
}
707+
684708
/*
685709
* The swagger pattern spec follows the Perl convention and style of modifiers. Python
686710
* does not support this in as natural a way so it needs to convert it. See

0 commit comments

Comments
 (0)