Skip to content
This repository was archived by the owner on Dec 25, 2024. It is now read-only.

Commit 2ce652a

Browse files
authored
v2 adds security schemes (#135)
* Adds generateSecuritySchemes method, unfinished * Adds security_schemes.py main module * Updates java classes that store security scheme data * Adds CodegenSecurityRequirement * Adds security to operation * Uses fromSecurityRequirement in operation * Fixes java creation of securityRequiremnts * Sample regen, breaks auth * renders security imports in operations * Removes extra newlines by imports * Adds java code to generate security schemes * Fixes security schemes init file * Gnerates one file for each component security scheme * Simplifies java file generation * Uses generateXs in generateHeader * Uses generateXs in parameter generation * Uses generateXs in all locations * Dedents some code * Adds description to security scheme classes * Adds full rendering of component security scheme * Adds SecurityRequirementObject * Adds security schemes section to readme * Adds some java code to standardize docs generation for components * Generates schema docs using new method * Removes header doc methods and properties * Removes parameter docs methods and properties * Simplifies request body doc generation * Simplifes response doc generation * Adds doc generation for security schemes * Updates securty scheme docs * Fixes section link for security schemes * Updates SecurityRequiremntObject * Isolates auth application to security scheme class * Fixes readme link for component schemas, fixes crypto install * Fixes dataclass prop order, makes some base classes private * Fixes security shcem class defaults * Fixes two tests * Removes commented out filtering code * Fixes basic auth test * Adds auth to fix test * Fixes last broken test * Updates doc schema ref links * Adds __SecuritySchemeBase * Fixes java test * Samples regenerated * Samples regen * Improves endpoint docs * Adds total false to the auth info class definition * CHanges bearer_token to access_token * Removes auth info from the Configuration docstring * Adds security into to endpoint docs * Samples updated
1 parent 5ddc92e commit 2ce652a

1,107 files changed

Lines changed: 12309 additions & 12016 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

modules/openapi-json-schema-generator/src/main/java/org/openapijsonschematools/codegen/CodegenConfig.java

Lines changed: 11 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import io.swagger.v3.oas.models.parameters.Parameter;
2626
import io.swagger.v3.oas.models.parameters.RequestBody;
2727
import io.swagger.v3.oas.models.responses.ApiResponse;
28+
import io.swagger.v3.oas.models.security.SecurityRequirement;
2829
import io.swagger.v3.oas.models.security.SecurityScheme;
2930
import io.swagger.v3.oas.models.servers.Server;
3031
import io.swagger.v3.oas.models.servers.ServerVariable;
@@ -35,7 +36,8 @@
3536
import org.openapijsonschematools.codegen.model.CodegenRequestBody;
3637
import org.openapijsonschematools.codegen.model.CodegenResponse;
3738
import org.openapijsonschematools.codegen.model.CodegenSchema;
38-
import org.openapijsonschematools.codegen.model.CodegenSecurity;
39+
import org.openapijsonschematools.codegen.model.CodegenSecurityRequirementValue;
40+
import org.openapijsonschematools.codegen.model.CodegenSecurityScheme;
3941
import org.openapijsonschematools.codegen.model.CodegenServer;
4042
import org.openapijsonschematools.codegen.model.CodegenServerVariable;
4143
import org.openapijsonschematools.codegen.model.OperationsMap;
@@ -44,6 +46,7 @@
4446
import org.openapijsonschematools.codegen.meta.GeneratorMetadata;
4547

4648
import java.io.File;
49+
import java.util.HashMap;
4750
import java.util.List;
4851
import java.util.Map;
4952
import java.util.Set;
@@ -86,22 +89,12 @@ public interface CodegenConfig {
8689

8790
String modelTestFileFolder();
8891

89-
String modelDocFileFolder();
90-
91-
String requestBodyDocFileFolder();
92-
93-
String headerDocFileFolder();
94-
95-
String parameterDocFileFolder();
96-
9792
String modelPackage();
9893

9994
String modelPackagePathFragment();
10095

10196
String packageName();
10297

103-
String responseDocFileFolder();
104-
10598
String toApiName(String name);
10699

107100
String toApiVarName(String name);
@@ -144,7 +137,9 @@ public interface CodegenConfig {
144137

145138
CodegenOperation fromOperation(String resourcePath, String httpMethod, Operation operation, List<Server> servers);
146139

147-
List<CodegenSecurity> fromSecurity(Map<String, SecurityScheme> schemas);
140+
CodegenSecurityScheme fromSecurityScheme(SecurityScheme securityScheme, String jsonPath);
141+
142+
HashMap<String, CodegenSecurityRequirementValue> fromSecurityRequirement(SecurityRequirement securityScheme, String jsonPath);
148143

149144
List<CodegenServer> fromServers(List<Server> servers);
150145

@@ -168,26 +163,18 @@ public interface CodegenConfig {
168163

169164
Map<CodegenConstants.JSON_PATH_LOCATION_TYPE, Map<String, String>> jsonPathTemplateFiles();
170165

171-
Map<String, String> requestBodyDocTemplateFiles();
172-
173-
Map<String, String> headerDocTemplateFiles();
174-
175-
Map<String, String> parameterDocTemplateFiles();
166+
Map<CodegenConstants.JSON_PATH_LOCATION_TYPE, Map<String, String>> jsonPathDocTemplateFiles();
176167

177168
Set<String> pathEndpointTestTemplateFiles();
178169

179170
Set<String> pathEndpointDocTemplateFiles();
180171

181-
Map<String, String> responseDocTemplateFiles();
182-
183172
Map<String, String> apiTestTemplateFiles();
184173

185174
Map<String, String> modelTestTemplateFiles();
186175

187176
Map<String, String> apiDocTemplateFiles();
188177

189-
Map<String, String> modelDocTemplateFiles();
190-
191178
Set<String> languageSpecificPrimitives();
192179

193180
Map<String, String> reservedWordsMappings();
@@ -212,23 +199,15 @@ public interface CodegenConfig {
212199

213200
String toApiDocFilename(String name);
214201

215-
String toModelDocFilename(String name);
216-
217202
String toRequestBodyFilename(String componentName);
218203

219-
String toRequestBodyDocFilename(String componentName);
220-
221-
String toResponseDocFilename(String componentName);
222-
223-
String toHeaderDocFilename(String componentName);
224-
225204
String toHeaderFilename(String componentName);
226205

227206
String toPathFilename(String path);
228207

229208
String toParameterFilename(String baseName);
230209

231-
String toParameterDocFilename(String componentName);
210+
String toSecuritySchemeFilename(String baseName);
232211

233212
String toModelImport(String refClass);
234213

@@ -255,6 +234,8 @@ public interface CodegenConfig {
255234
// handles almost all files to be written
256235
String getFilepath(String jsonPath);
257236

237+
String getDocsFilepath(String jsonPath);
238+
258239
String apiFilename(String templateName, String tag);
259240

260241
String apiTestFilename(String templateName, String tag);

modules/openapi-json-schema-generator/src/main/java/org/openapijsonschematools/codegen/CodegenConstants.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ public class CodegenConstants {
3030
public static final String REQUEST_BODY_DOCS = "requestBodyDocs";
3131

3232
public static final String RESPONSES = "responses";
33+
public static final String RESPONSE_DOCS = "responseDocs";
3334

3435
public static final String COMPONENTS = "components";
3536

@@ -38,6 +39,9 @@ public class CodegenConstants {
3839

3940
public static final String PARAMETERS = "parameters";
4041

42+
public static final String SECURITY_SCHEMES = "securitySchemes";
43+
public static final String SECURITY_SCHEME_DOCS = "securitySchemeDocs";
44+
4145
public static final String PARAMETER_DOCS = "parameterDocs";
4246
public static final String SUPPORTING_FILES = "supportingFiles";
4347
public static final String MODEL_TESTS = "modelTests";
@@ -238,7 +242,7 @@ public class CodegenConstants {
238242

239243
public static enum PARAM_NAMING_TYPE {camelCase, PascalCase, snake_case, original}
240244

241-
public static enum JSON_PATH_LOCATION_TYPE {SCHEMA, REQUEST_BODY, PARAMETER, RESPONSE, HEADER, CONTENT, CONTENT_TYPE, HEADERS, PARAMETERS, RESPONSES, REQUEST_BODIES, SCHEMAS, PATHS, PATH, COMPONENTS, OPERATION}
245+
public static enum JSON_PATH_LOCATION_TYPE {SCHEMA, REQUEST_BODY, PARAMETER, RESPONSE, HEADER, CONTENT, CONTENT_TYPE, HEADERS, PARAMETERS, RESPONSES, REQUEST_BODIES, SCHEMAS, PATHS, PATH, COMPONENTS, OPERATION, SECURITY_SCHEMES, SECURITY_SCHEME}
242246

243247
public static enum MODEL_PROPERTY_NAMING_TYPE {camelCase, PascalCase, snake_case, original}
244248

0 commit comments

Comments
 (0)