diff --git a/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/CodegenSecurity.java b/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/CodegenSecurity.java index 7323893106f..889a9419c64 100644 --- a/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/CodegenSecurity.java +++ b/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/CodegenSecurity.java @@ -3,5 +3,9 @@ package com.wordnik.swagger.codegen; public class CodegenSecurity { String name; String type; - Boolean hasMore; + Boolean hasMore, isBasic, isOAuth, isApiKey; + // ApiKey specific + String keyParamName; + Boolean isKeyInQuery, isKeyInHeader; + } diff --git a/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/DefaultCodegen.java b/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/DefaultCodegen.java index 2abcfad31ea..c21d43bb1e9 100644 --- a/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/DefaultCodegen.java +++ b/modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/DefaultCodegen.java @@ -1,6 +1,9 @@ package com.wordnik.swagger.codegen; import com.wordnik.swagger.models.*; +import com.wordnik.swagger.models.auth.ApiKeyAuthDefinition; +import com.wordnik.swagger.models.auth.BasicAuthDefinition; +import com.wordnik.swagger.models.auth.In; import com.wordnik.swagger.models.auth.SecuritySchemeDefinition; import com.wordnik.swagger.models.parameters.*; import com.wordnik.swagger.models.properties.*; @@ -888,10 +891,25 @@ public class DefaultCodegen { List secs = new ArrayList(); for(Iterator entries = schemes.entrySet().iterator(); entries.hasNext(); ) { Map.Entry entry = (Map.Entry) entries.next(); + final SecuritySchemeDefinition schemeDefinition = entry.getValue(); CodegenSecurity sec = CodegenModelFactory.newInstance(CodegenModelType.SECURITY); sec.name = entry.getKey(); - sec.type = entry.getValue().getType(); + sec.type = schemeDefinition.getType(); + + if (schemeDefinition instanceof ApiKeyAuthDefinition) { + final ApiKeyAuthDefinition apiKeyDefinition = (ApiKeyAuthDefinition) schemeDefinition; + sec.isBasic = sec.isOAuth = false; + sec.isApiKey = true; + sec.keyParamName = apiKeyDefinition.getName(); + sec.isKeyInHeader = apiKeyDefinition.getIn() == In.HEADER; + sec.isKeyInQuery = !sec.isKeyInHeader; + } else { + sec.isKeyInHeader = sec.isKeyInQuery = sec.isApiKey = false; + sec.isBasic = schemeDefinition instanceof BasicAuthDefinition; + sec.isOAuth = !sec.isBasic; + } + sec.hasMore = entries.hasNext(); secs.add(sec); }