swagger-api / swagger-codegen-generators

Apache License 2.0
279 stars 418 forks source link

swagger-codegen 3.0.19 fail with NPE for jaxrs-jersey when use securitySchemes #682

Open sethugupta opened 4 years ago

sethugupta commented 4 years ago

I upgraded from Swagger 2.0 to OpenApi 3.x and ran into issues around Security Schemes. I defined securitySchemes bearer but it is failing with NPE when generating code around generators.DefaultCodegenConfig.fromSecurity . I recreated the issue with a very simple YAML file. It generates code fine from swagger UI hence something to do with code-gen used from CLI.

Steps to reproduce: swagger-codegen generate -i provided_swagger.yaml -l jaxrs-jersey

Error:


Operation: pingGet Resource: get /ping Exception: null at io.swagger.codegen.v3.DefaultGenerator.processOperation(DefaultGenerator.java:932) at io.swagger.codegen.v3.DefaultGenerator.processPaths(DefaultGenerator.java:831) at io.swagger.codegen.v3.DefaultGenerator.generateApis(DefaultGenerator.java:470) at io.swagger.codegen.v3.DefaultGenerator.generate(DefaultGenerator.java:782) at io.swagger.codegen.v3.cli.cmd.Generate.run(Generate.java:369) at java.lang.Thread.run(Thread.java:748) Caused by: java.lang.NullPointerException at io.swagger.codegen.v3.generators.DefaultCodegenConfig.fromSecurity(DefaultCodegenConfig.java:2714) at io.swagger.codegen.v3.DefaultGenerator.processOperation(DefaultGenerator.java:921) ... 5 more


Simplified Security Scheme usage :


securitySchemes: bearer: type: http scheme: bearer

security:

openapi_security_issue.yaml.txt

sethugupta commented 4 years ago

Further on the problem, It seems related to the Ignore Case. When Provide HTTP it fail but if change it to http surprisingly it compiles just fine. When I look at the code for the type it is ignoreCase still it fails.

bearer: type: "HTTP" scheme: "bearer"