use of io.swagger.models.auth.ApiKeyAuthDefinition in project swagger-parser by swagger-api.
the class SwaggerParserTest method testIssue480.
@Test
public void testIssue480() {
final Swagger swagger = new SwaggerParser().read("src/test/resources/issue-480.yaml");
for (String key : swagger.getSecurityDefinitions().keySet()) {
SecuritySchemeDefinition definition = swagger.getSecurityDefinitions().get(key);
if ("petstore_auth".equals(key)) {
assertTrue(definition instanceof OAuth2Definition);
OAuth2Definition oauth = (OAuth2Definition) definition;
assertEquals("This is a description", oauth.getDescription());
}
if ("api_key".equals(key)) {
assertTrue(definition instanceof ApiKeyAuthDefinition);
ApiKeyAuthDefinition auth = (ApiKeyAuthDefinition) definition;
assertEquals("This is another description", auth.getDescription());
}
}
}
use of io.swagger.models.auth.ApiKeyAuthDefinition in project swagger-parser by swagger-api.
the class SwaggerCompatConverter method convert.
public Swagger convert(ResourceListing resourceListing, List<ApiDeclaration> apiDeclarations) {
Info info = new Info();
if (resourceListing.getInfo() != null) {
ApiInfo apiInfo = resourceListing.getInfo();
Contact contact = null;
if (apiInfo.getContact() != null) {
contact = new Contact().url(apiInfo.getContact());
}
License license = null;
if (apiInfo.getLicense() != null) {
license = new License().name(apiInfo.getLicense()).url(apiInfo.getLicenseUrl());
}
info = new Info().description(apiInfo.getDescription()).version(resourceListing.getApiVersion()).title(apiInfo.getTitle()).termsOfService(apiInfo.getTermsOfServiceUrl()).contact(contact).license(license);
} else if (resourceListing.getApiVersion() != null) {
info = new Info().version(resourceListing.getApiVersion());
}
Map<String, Path> paths = new HashMap<String, Path>();
Map<String, Model> definitions = new HashMap<String, Model>();
String basePath = null;
for (ApiDeclaration apiDeclaration : apiDeclarations) {
String tag;
if (apiDeclaration.getApiListingRef() != null) {
String refPath = apiDeclaration.getApiListingRef().getPath();
tag = refPath.substring(refPath.lastIndexOf("/") + 1);
} else {
tag = apiDeclaration.getResourcePath();
}
if (tag != null) {
tag = tag.replaceAll("/", "");
}
if (basePath != null) {
if (!basePath.equals(apiDeclaration.getBasePath()) && apiDeclaration.getBasePath() != null) {
LOGGER.warn("warning! multiple basePath values not supported!");
}
} else {
basePath = apiDeclaration.getBasePath();
}
List<Api> apis = apiDeclaration.getApis();
for (Api api : apis) {
String apiPath = api.getPath();
String description = api.getDescription();
List<io.swagger.models.apideclaration.Operation> ops = api.getOperations();
Path path = paths.get(apiPath);
if (path == null) {
path = new Path();
paths.put(apiPath, path);
}
for (io.swagger.models.apideclaration.Operation op : ops) {
Operation operation = convertOperation(tag, op, apiDeclaration);
if (op.getMethod() != null) {
path.set(op.getMethod().toString().toLowerCase(), operation);
} else {
LOGGER.info("skipping operation with missing method:\n" + Json.pretty(op));
}
}
}
// model definitions
Map<String, io.swagger.models.apideclaration.Model> apiModels = apiDeclaration.getModels();
for (String key : apiModels.keySet()) {
Model model = convertModel(apiModels.get(key));
definitions.put(key, model);
}
}
String host = null;
String scheme = "http";
if (basePath != null) {
String[] parts = basePath.split("://");
if (parts.length == 2) {
scheme = parts[0];
int pos = parts[1].indexOf("/");
if (pos != -1) {
host = parts[1].substring(0, pos);
basePath = parts[1].substring(pos);
} else {
host = parts[1];
basePath = "/";
}
}
if (!basePath.startsWith("/")) {
basePath = "/" + basePath;
}
}
Swagger swagger = new Swagger().host(host).scheme(Scheme.forValue(scheme)).basePath(basePath).info(info).paths(paths).basePath(basePath);
swagger.setDefinitions(definitions);
// host is read from the api declarations
Map<String, Authorization> authorizations = resourceListing.getAuthorizations();
if (authorizations != null) {
for (String authNickname : authorizations.keySet()) {
Authorization auth = authorizations.get(authNickname);
if (auth instanceof OAuth2Authorization) {
OAuth2Authorization o2 = (OAuth2Authorization) auth;
List<AuthorizationScope> scopes = o2.getScopes();
if (o2.getGrantTypes().getImplicit() != null) {
ImplicitGrant ig = o2.getGrantTypes().getImplicit();
OAuth2Definition oauth2 = new OAuth2Definition().implicit(ig.getLoginEndpoint().getUrl());
if (swagger.getSecurityDefinitions() != null && swagger.getSecurityDefinitions().keySet().contains(authNickname)) {
System.err.println("Warning! Authorization nickname already in use!");
} else {
swagger.securityDefinition(authNickname, oauth2);
}
for (AuthorizationScope scope : scopes) {
oauth2.scope(scope.getScope(), scope.getDescription());
}
} else if (o2.getGrantTypes().getAuthorization_code() != null) {
AuthorizationCodeGrant ac = (AuthorizationCodeGrant) o2.getGrantTypes().getAuthorization_code();
OAuth2Definition oauth2 = new OAuth2Definition().accessCode(ac.getTokenRequestEndpoint().getUrl(), ac.getTokenEndpoint().getUrl());
if (swagger.getSecurityDefinitions() != null && swagger.getSecurityDefinitions().keySet().contains(authNickname)) {
System.err.println("Warning! Authorization nickname already in use!");
} else {
swagger.securityDefinition(authNickname, oauth2);
}
for (AuthorizationScope scope : scopes) {
oauth2.scope(scope.getScope(), scope.getDescription());
}
}
} else if (auth instanceof ApiKeyAuthorization) {
ApiKeyAuthorization o2 = (ApiKeyAuthorization) auth;
ApiKeyAuthDefinition def = new ApiKeyAuthDefinition();
PassAs passAs = o2.getPassAs();
if (PassAs.HEADER.equals(passAs)) {
def.in(In.HEADER);
} else {
def.in(In.QUERY);
}
def.setName(o2.getKeyname());
swagger.securityDefinition(authNickname, def);
} else if (auth instanceof BasicAuthorization) {
BasicAuthDefinition def = new BasicAuthDefinition();
swagger.securityDefinition(authNickname, def);
}
}
}
return swagger;
}
use of io.swagger.models.auth.ApiKeyAuthDefinition in project swagger-parser by swagger-api.
the class SwaggerConverter method convertApiKeySecurityScheme.
private SecurityScheme convertApiKeySecurityScheme(SecuritySchemeDefinition definition) {
SecurityScheme securityScheme = new SecurityScheme();
ApiKeyAuthDefinition apiKeyAuthDefinition = (ApiKeyAuthDefinition) definition;
securityScheme.setType(SecurityScheme.Type.APIKEY);
securityScheme.setName(apiKeyAuthDefinition.getName());
securityScheme.setIn(SecurityScheme.In.valueOf(apiKeyAuthDefinition.getIn().toString()));
return securityScheme;
}
use of io.swagger.models.auth.ApiKeyAuthDefinition in project ballerina by ballerina-lang.
the class SwaggerServiceMapper method createSecurityDefinitionsModel.
/**
* Creates the security definition models for swagger definition.
* @param annotationAttributeValue The annotation attribute value for security definitions.
* @param swagger The swagger definition.
*/
private void createSecurityDefinitionsModel(AnnAttributeValue annotationAttributeValue, Swagger swagger) {
if (null != annotationAttributeValue) {
Map<String, SecuritySchemeDefinition> securitySchemeDefinitionMap = new HashMap<>();
for (AnnAttributeValue authorizationValues : annotationAttributeValue.getAttributeValueArray()) {
AnnAttachmentInfo authAnnotationAttachment = authorizationValues.getAnnotationAttachmentValue();
Map<String, AnnAttributeValue> authAnnAttributeValueMap = SwaggerUtils.convertToAttributeMap(authAnnotationAttachment);
if (null != authAnnAttributeValueMap.get("name") && null != authAnnAttributeValueMap.get("authType")) {
String name = authAnnAttributeValueMap.get("name").getStringValue();
String type = authAnnAttributeValueMap.get("authType").getStringValue();
String description = "";
if (null != authAnnAttributeValueMap.get("description")) {
description = authAnnAttributeValueMap.get("description").getStringValue();
}
if ("basic".equals(type)) {
BasicAuthDefinition basicAuthDefinition = new BasicAuthDefinition();
basicAuthDefinition.setDescription(description);
securitySchemeDefinitionMap.put(name, basicAuthDefinition);
} else if ("apiKey".equals(type)) {
ApiKeyAuthDefinition apiKeyAuthDefinition = new ApiKeyAuthDefinition();
apiKeyAuthDefinition.setName(authAnnAttributeValueMap.get("apiName").getStringValue());
apiKeyAuthDefinition.setIn(In.forValue(authAnnAttributeValueMap.get("in").getStringValue()));
apiKeyAuthDefinition.setDescription(description);
securitySchemeDefinitionMap.put(name, apiKeyAuthDefinition);
} else if ("oauth2".equals(type)) {
OAuth2Definition oAuth2Definition = new OAuth2Definition();
oAuth2Definition.setFlow(authAnnAttributeValueMap.get("flow").getStringValue());
oAuth2Definition.setAuthorizationUrl(authAnnAttributeValueMap.get("authorizationUrl").getStringValue());
oAuth2Definition.setTokenUrl(authAnnAttributeValueMap.get("tokenUrl").getStringValue());
this.createSecurityDefinitionScopesModel(authAnnAttributeValueMap.get("authorizationScopes"), oAuth2Definition);
oAuth2Definition.setDescription(description);
securitySchemeDefinitionMap.put(name, oAuth2Definition);
}
}
}
swagger.setSecurityDefinitions(securitySchemeDefinitionMap);
}
}
use of io.swagger.models.auth.ApiKeyAuthDefinition in project killbill by killbill.
the class KillBillApiDefinition method beforeScan.
@Override
public void beforeScan(final io.swagger.jaxrs.Reader reader, final Swagger swagger) {
BasicAuthDefinition basicAuthDefinition = new BasicAuthDefinition();
swagger.addSecurityDefinition(BASIC_AUTH_SCHEME, basicAuthDefinition);
ApiKeyAuthDefinition xKillbillApiKey = new ApiKeyAuthDefinition("X-Killbill-ApiKey", In.HEADER);
swagger.addSecurityDefinition(API_KEY_SCHEME, xKillbillApiKey);
ApiKeyAuthDefinition xKillbillApiSecret = new ApiKeyAuthDefinition("X-Killbill-ApiSecret", In.HEADER);
swagger.addSecurityDefinition(API_SECRET_SCHEME, xKillbillApiSecret);
}
Aggregations