public SecuritySchemeComponent(Swagger2MarkupConverter.Context context, DocumentResolver securityDocumentResolver) { super(context); this.securityDefinitions = context.getSwagger().getSecurityDefinitions(); this.securityDocumentResolver = Validate.notNull(securityDocumentResolver, "SecurityDocumentResolver must not be null"); this.tableComponent = new TableComponent(context); }
private MarkupDocBuilder applySecurityDocument() { return securityDocument.apply( context.createMarkupDocBuilder(), SecurityDocument.parameters(context.getSwagger().getSecurityDefinitions())); }
@Test public void testSecuritySchemeDefinitionComponentWithApiKey() throws URISyntaxException { //Given Path file = Paths.get(SecuritySchemeDefinitionComponentTest.class.getResource("/yaml/swagger_petstore.yaml").toURI()); Swagger2MarkupConverter converter = Swagger2MarkupConverter.from(file).build(); Swagger swagger = converter.getContext().getSwagger(); SecuritySchemeDefinition securitySchemeDefinition = swagger.getSecurityDefinitions().get("api_key"); Swagger2MarkupConverter.Context context = converter.getContext(); MarkupDocBuilder markupDocBuilder = context.createMarkupDocBuilder(); markupDocBuilder = new SecuritySchemeDefinitionComponent(context).apply( markupDocBuilder, SecuritySchemeDefinitionComponent.parameters("api_key", securitySchemeDefinition, OverviewDocument.SECTION_TITLE_LEVEL)); markupDocBuilder.writeToFileWithoutExtension(apiKeyOutputDirectory, StandardCharsets.UTF_8); Path expectedFile = getExpectedFile(API_KEY_NAME); DiffUtils.assertThatFileIsEqual(expectedFile, apiKeyOutputDirectory, getReportName(API_KEY_NAME)); }
@Test public void testSecuritySchemeDefinitionComponentWithOAuth() throws URISyntaxException { //Given Path file = Paths.get(SecuritySchemeDefinitionComponentTest.class.getResource("/yaml/swagger_petstore.yaml").toURI()); Swagger2MarkupConverter converter = Swagger2MarkupConverter.from(file).build(); Swagger swagger = converter.getContext().getSwagger(); SecuritySchemeDefinition securitySchemeDefinition = swagger.getSecurityDefinitions().get("petstore_auth"); Swagger2MarkupConverter.Context context = converter.getContext(); MarkupDocBuilder markupDocBuilder = context.createMarkupDocBuilder(); markupDocBuilder = new SecuritySchemeDefinitionComponent(context).apply( markupDocBuilder, SecuritySchemeDefinitionComponent.parameters("petstore_auth", securitySchemeDefinition, OverviewDocument.SECTION_TITLE_LEVEL)); markupDocBuilder.writeToFileWithoutExtension(oauthOutputDirectory, StandardCharsets.UTF_8); Path expectedFile = getExpectedFile(O_AUTH_NAME); DiffUtils.assertThatFileIsEqual(expectedFile, oauthOutputDirectory, getReportName(O_AUTH_NAME)); }
private static <T extends AbstractSecuritySchemeDefinition> Optional<T> securityDefinition(final Swagger swagger, final Class<T> type) { final Map<String, SecuritySchemeDefinition> securityDefinitions = swagger.getSecurityDefinitions(); if (securityDefinitions == null) { return empty(); } return securityDefinitions.values().stream().filter(type::isInstance).map(type::cast).findFirst(); }
private static <T extends AbstractSecuritySchemeDefinition> Optional<T> securityDefinition(final Swagger swagger, final Class<T> type) { final Map<String, SecuritySchemeDefinition> securityDefinitions = swagger.getSecurityDefinitions(); if (securityDefinitions == null) { return Optional.empty(); } return securityDefinitions.values().stream().filter(type::isInstance).map(type::cast).findFirst(); }
private static <T extends AbstractSecuritySchemeDefinition> Optional<T> securityDefinition(final Swagger swagger, final Class<T> type) { final Map<String, SecuritySchemeDefinition> securityDefinitions = swagger.getSecurityDefinitions(); if (securityDefinitions == null) { return Optional.empty(); } return securityDefinitions.values().stream().filter(type::isInstance).map(type::cast).findFirst(); }
private static <T extends AbstractSecuritySchemeDefinition> Optional<T> securityDefinition(final Swagger swagger, final Class<T> type) { final Map<String, SecuritySchemeDefinition> securityDefinitions = swagger.getSecurityDefinitions(); if (securityDefinitions == null) { return empty(); } return securityDefinitions.values().stream().filter(type::isInstance).map(type::cast).findFirst(); }
private String getOauthSecurityName(Swagger swagger) { String oauthSecurityName = null; Map<String, SecuritySchemeDefinition> securityDefinitions = swagger.getSecurityDefinitions(); if (securityDefinitions != null) { for (Map.Entry<String, SecuritySchemeDefinition> securitySchemeDefinitionEntry : securityDefinitions.entrySet()) { if (securitySchemeDefinitionEntry.getValue() instanceof OAuth2Definition) { oauthSecurityName = securitySchemeDefinitionEntry.getKey(); break; } } } return oauthSecurityName; }
private String getOauthSecurityName(Swagger swagger) { String oauthSecurityName = null; Map<String, SecuritySchemeDefinition> securityDefinitions = swagger.getSecurityDefinitions(); if (securityDefinitions != null) { for (Map.Entry<String, SecuritySchemeDefinition> securitySchemeDefinitionEntry : securityDefinitions.entrySet()) { if (securitySchemeDefinitionEntry.getValue() instanceof OAuth2Definition) { oauthSecurityName = securitySchemeDefinitionEntry.getKey(); break; } } } return oauthSecurityName; }
private static SwaggerAuthHandlerFactory getSwaggerAuthHandlerFactory(Swagger swagger) { SwaggerAuthHandlerFactory authHandlerFactory = null; if(swagger.getSecurityDefinitions() != null && !swagger.getSecurityDefinitions().isEmpty()) { boolean hasAuthProvidersForOperation = swagger.getSecurityDefinitions().entrySet().stream() .map(Map.Entry::getKey) .map(name -> getAuthProviderFactory().getAuthProviderByName(name)) .anyMatch(Objects::nonNull); if (hasAuthProvidersForOperation) { authHandlerFactory = SwaggerAuthHandlerFactory.create(swagger.getSecurityDefinitions()); } } return authHandlerFactory; }
private static String getOAuth2Name() { String name = null; Map<String, SecuritySchemeDefinition> defMap = swagger.getSecurityDefinitions(); if(defMap != null) { for(Map.Entry<String, SecuritySchemeDefinition> entry : defMap.entrySet()) { if(entry.getValue().getType().equals("oauth2")) { name = entry.getKey(); break; } } } return name; }
@Override public void addFromSwagger(Service.Builder serviceBuilder, Swagger swagger) { if (swagger.getSecurityDefinitions() == null) { return; } TreeSet<String> swaggerSecurityDefNames = Sets.newTreeSet(swagger.getSecurityDefinitions().keySet()); for (String swaggerSecurityDefName : swaggerSecurityDefNames) { addAuthProvider( serviceBuilder, swaggerSecurityDefName, swagger.getSecurityDefinitions().get(swaggerSecurityDefName)); } addSecurityRequirementForEntireService(serviceBuilder, swagger.getSecurity()); addSecurityRequirementExtensionForEntireService(serviceBuilder, swagger); }
@Override public void addFromSwagger(Service.Builder serviceBuilder, Swagger swagger) { if (swagger.getSecurityDefinitions() == null) { return; } TreeSet<String> swaggerSecurityDefNames = Sets.newTreeSet(swagger.getSecurityDefinitions().keySet()); for (String swaggerSecurityDefName : swaggerSecurityDefNames) { addAuthProvider( serviceBuilder, swaggerSecurityDefName, swagger.getSecurityDefinitions().get(swaggerSecurityDefName)); } addSecurityRequirementForEntireService(serviceBuilder, swagger.getSecurity()); addSecurityRequirementExtensionForEntireService(serviceBuilder, swagger); }
public SecuritySchemeComponent(Swagger2MarkupConverter.Context context, DocumentResolver securityDocumentResolver) { super(context); this.securityDefinitions = context.getSwagger().getSecurityDefinitions(); this.securityDocumentResolver = Validate.notNull(securityDocumentResolver, "SecurityDocumentResolver must not be null"); this.tableComponent = new TableComponent(context); }
private Boolean isApiKeyRequired(Operation op) { Optional<Map.Entry<String, SecuritySchemeDefinition>> apiKeySecurityDefinition = Optional.empty(); if (swagger.getSecurityDefinitions() != null) { apiKeySecurityDefinition = swagger.getSecurityDefinitions().entrySet() .stream().filter(p -> p.getValue().getType().equals("apiKey")).findFirst(); } if (!apiKeySecurityDefinition.isPresent()) { return false; } String securityDefinitionName = apiKeySecurityDefinition.get().getKey(); if (op.getSecurity() != null) { return op.getSecurity().stream().anyMatch(s -> s.containsKey(securityDefinitionName)); } if (swagger.getSecurityRequirement() != null) { return swagger.getSecurityRequirement().stream().anyMatch(s -> s.getName().equals(securityDefinitionName)); } return false; }
private MarkupDocBuilder applySecurityDocument() { return securityDocument.apply( context.createMarkupDocBuilder(), SecurityDocument.parameters(context.getSwagger().getSecurityDefinitions())); }
@Override public String updateScopesOnSwaggerDefinition(String resourceConfigJSON, Scope scope) { SwaggerParser swaggerParser = new SwaggerParser(); Swagger swagger = swaggerParser.parse(resourceConfigJSON); Map<String, SecuritySchemeDefinition> securitySchemeDefinitionMap = swagger.getSecurityDefinitions(); if (securitySchemeDefinitionMap != null && !securitySchemeDefinitionMap.isEmpty()) { OAuth2Definition oAuth2Definition = (OAuth2Definition) securitySchemeDefinitionMap.get(APIMgtConstants .OAUTH2SECURITY); if (oAuth2Definition != null) { // Removing Scope from Swagger SecurityDefinition Map<String, String> scopeMap = oAuth2Definition.getScopes(); if (scopeMap != null && scopeMap.containsKey(scope.getName())) { scopeMap.replace(scope.getName(), scope.getDescription()); } } } return Json.pretty(swagger); }
@Override public String updateScopesOnSwaggerDefinition(String resourceConfigJSON, Scope scope) { SwaggerParser swaggerParser = new SwaggerParser(); Swagger swagger = swaggerParser.parse(resourceConfigJSON); Map<String, SecuritySchemeDefinition> securitySchemeDefinitionMap = swagger.getSecurityDefinitions(); if (securitySchemeDefinitionMap != null && !securitySchemeDefinitionMap.isEmpty()) { OAuth2Definition oAuth2Definition = (OAuth2Definition) securitySchemeDefinitionMap.get(APIMgtConstants .OAUTH2SECURITY); if (oAuth2Definition != null) { // Removing Scope from Swagger SecurityDefinition Map<String, String> scopeMap = oAuth2Definition.getScopes(); if (scopeMap != null && scopeMap.containsKey(scope.getName())) { scopeMap.replace(scope.getName(), scope.getDescription()); } } } return Json.pretty(swagger); }
@Override public void swagger(Swagger swagger) { swagger.setSchemes(fillList(swagger.getSchemes())); swagger.setConsumes(fillList(swagger.getConsumes())); swagger.setProduces(fillList(swagger.getProduces())); swagger.setPaths(fillMap(swagger.getPaths())); swagger.setDefinitions(fillMap(swagger.getDefinitions())); swagger.setParameters(fillMap(swagger.getParameters())); swagger.setResponses(fillMap(swagger.getResponses())); swagger.setSecurityDefinitions(fillMap(swagger.getSecurityDefinitions())); swagger.setSecurity(fillList(swagger.getSecurity())); swagger.setTags(fillList(swagger.getTags())); }