Skip to content

Missing #/components/securitySchemes section leads to IllegalArgumentException #737

@DrSatyr

Description

@DrSatyr
Collaborator

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      Participants

      @DrSatyr

      Issue actions

        Missing #/components/securitySchemes section leads to IllegalArgumentException · Issue #737 · OpenAPITools/openapi-diff