Adding defintion of security schemes in CodegenSecurity

This commit is contained in:
Camille Chafer 2015-03-16 11:53:58 +01:00
parent 156ec2a2dd
commit d580d294b6
2 changed files with 24 additions and 2 deletions

View File

@ -3,5 +3,9 @@ package com.wordnik.swagger.codegen;
public class CodegenSecurity { public class CodegenSecurity {
String name; String name;
String type; String type;
Boolean hasMore; Boolean hasMore, isBasic, isOAuth, isApiKey;
// ApiKey specific
String keyParamName;
Boolean isKeyInQuery, isKeyInHeader;
} }

View File

@ -1,6 +1,9 @@
package com.wordnik.swagger.codegen; package com.wordnik.swagger.codegen;
import com.wordnik.swagger.models.*; 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.auth.SecuritySchemeDefinition;
import com.wordnik.swagger.models.parameters.*; import com.wordnik.swagger.models.parameters.*;
import com.wordnik.swagger.models.properties.*; import com.wordnik.swagger.models.properties.*;
@ -888,10 +891,25 @@ public class DefaultCodegen {
List<CodegenSecurity> secs = new ArrayList<CodegenSecurity>(); List<CodegenSecurity> secs = new ArrayList<CodegenSecurity>();
for(Iterator entries = schemes.entrySet().iterator(); entries.hasNext(); ) { for(Iterator entries = schemes.entrySet().iterator(); entries.hasNext(); ) {
Map.Entry<String, SecuritySchemeDefinition> entry = (Map.Entry<String, SecuritySchemeDefinition>) entries.next(); Map.Entry<String, SecuritySchemeDefinition> entry = (Map.Entry<String, SecuritySchemeDefinition>) entries.next();
final SecuritySchemeDefinition schemeDefinition = entry.getValue();
CodegenSecurity sec = CodegenModelFactory.newInstance(CodegenModelType.SECURITY); CodegenSecurity sec = CodegenModelFactory.newInstance(CodegenModelType.SECURITY);
sec.name = entry.getKey(); 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(); sec.hasMore = entries.hasNext();
secs.add(sec); secs.add(sec);
} }