OpenAPITools / OpenAPITools/openapi-diff
Missing #/components/securitySchemes section leads to IllegalArgumentException
Nadie ha tomado este issue todavía.
- #232 de @vijayvepa — cerrado sin fusionar
- Lenguaje dominante
- Java
- Estrellas
- 1.1k
- Forks
- 190
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Descripción
In case components -> securitySchemes is not present in open API documentation, report generation failed with IllegalArgumentException. However, it is a valid openAPI schema.
Unexpected exception. Reason: Missing securitySchemes component definition.
java.lang.IllegalArgumentException: Missing securitySchemes component definition.
at org.openapitools.openapidiff.core.compare.SecurityRequirementsDiff.lambda$getListOfSecuritySchemes$1(SecurityRequirementsDiff.java:63)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at java.base/java.util.Iterator.forEachRemaining(Iterator.java:133)
at java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1939)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
at org.openapitools.openapidiff.core.compare.SecurityRequirementsDiff.getListOfSecuritySchemes(SecurityRequirementsDiff.java:75)
at org.openapitools.openapidiff.core.compare.SecurityRequirementsDiff.same(SecurityRequirementsDiff.java:46)
at org.openapitools.openapidiff.core.compare.SecurityRequirementsDiff.lambda$contains$0(SecurityRequirementsDiff.java:40)
at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:178)
at java.base/java.util.ArrayList$ArrayListSpliterator.tryAdvance(ArrayList.java:1685)
at java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:129)
at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:527)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:513)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:150)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:647)
at org.openapitools.openapidiff.core.compare.SecurityRequirementsDiff.contains(SecurityRequirementsDiff.java:41)
at org.openapitools.openapidiff.core.compare.SecurityRequirementsDiff.diff(SecurityRequirementsDiff.java:94)
at org.openapitools.openapidiff.core.compare.OperationDiff.diff(OperationDiff.java:121)
at org.openapitools.openapidiff.core.compare.PathDiff.diff(PathDiff.java:39)
at org.openapitools.openapidiff.core.compare.PathsDiff.lambda$diff$3(PathsDiff.java:90)
at java.base/java.util.LinkedHashMap$LinkedKeySet.forEach(LinkedHashMap.java:729)
at org.openapitools.openapidiff.core.compare.PathsDiff.diff(PathsDiff.java:47)
at org.openapitools.openapidiff.core.compare.OpenApiDiff.compare(OpenApiDiff.java:109)
at org.openapitools.openapidiff.core.compare.OpenApiDiff.compare(OpenApiDiff.java:72)
at org.openapitools.openapidiff.core.OpenApiCompare.fromSpecifications(OpenApiCompare.java:166)
at org.openapitools.openapidiff.core.OpenApiCompare.fromLocations(OpenApiCompare.java:141)
at org.openapitools.openapidiff.cli.Main.main(Main.java:224)
Steps to reproduce: try to build diff report comparing the same schema without components -> securitySchemes section. Example schema openapi3_1.json
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comienza en org.openapitools.openapidiff.core.compare.SecurityRequirementsDiff, especialmente en getListOfSecuritySchemes alrededor de la línea 63, y reproduce la comparación usando el esquema openapi3_1.json adjunto sin components.securitySchemes. Se considera terminado cuando se genere un informe de diferencias para el esquema válido sin una IllegalArgumentException.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- java
- Área
- api
- Tipo de issue
- Error
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Estado de actividad
- Estancado
- Claridad
- Bien especificado
- Aptitud para principiantes
- 45/100