diff --git a/bom/application/pom.xml b/bom/application/pom.xml index f2e0e016d6614..f2ce137bf5c41 100644 --- a/bom/application/pom.xml +++ b/bom/application/pom.xml @@ -54,7 +54,7 @@ 3.3.4 4.0.4 4.0.0 - 3.6.0 + 3.6.1 2.4.0 3.0.3 6.2.6 diff --git a/extensions/smallrye-openapi/deployment/src/main/java/io/quarkus/smallrye/openapi/deployment/SmallRyeOpenApiProcessor.java b/extensions/smallrye-openapi/deployment/src/main/java/io/quarkus/smallrye/openapi/deployment/SmallRyeOpenApiProcessor.java index fceacd28f3e58..b2eec17ab2c7a 100644 --- a/extensions/smallrye-openapi/deployment/src/main/java/io/quarkus/smallrye/openapi/deployment/SmallRyeOpenApiProcessor.java +++ b/extensions/smallrye-openapi/deployment/src/main/java/io/quarkus/smallrye/openapi/deployment/SmallRyeOpenApiProcessor.java @@ -164,6 +164,8 @@ public class SmallRyeOpenApiProcessor { static { System.setProperty(io.smallrye.openapi.api.constants.OpenApiConstants.DEFAULT_PRODUCES, "application/json"); System.setProperty(io.smallrye.openapi.api.constants.OpenApiConstants.DEFAULT_CONSUMES, "application/json"); + System.setProperty(io.smallrye.openapi.api.constants.OpenApiConstants.DEFAULT_PRODUCES_PRIMITIVES, "plain/text"); + System.setProperty(io.smallrye.openapi.api.constants.OpenApiConstants.DEFAULT_CONSUMES_PRIMITIVES, "plain/text"); } @BuildStep diff --git a/extensions/smallrye-openapi/deployment/src/test/java/io/quarkus/smallrye/openapi/test/jaxrs/DefaultContentTypeResource.java b/extensions/smallrye-openapi/deployment/src/test/java/io/quarkus/smallrye/openapi/test/jaxrs/DefaultContentTypeResource.java index 0715898c0ecc2..ae5f2ffe4a0d0 100644 --- a/extensions/smallrye-openapi/deployment/src/test/java/io/quarkus/smallrye/openapi/test/jaxrs/DefaultContentTypeResource.java +++ b/extensions/smallrye-openapi/deployment/src/test/java/io/quarkus/smallrye/openapi/test/jaxrs/DefaultContentTypeResource.java @@ -9,6 +9,12 @@ @Path("/greeting") public class DefaultContentTypeResource { + @GET + @Path("/foo") + public String foo() { + return "bar"; + } + @GET @Path("/hello") public Greeting hello() { diff --git a/extensions/smallrye-openapi/deployment/src/test/java/io/quarkus/smallrye/openapi/test/jaxrs/DefaultContentTypeTest.java b/extensions/smallrye-openapi/deployment/src/test/java/io/quarkus/smallrye/openapi/test/jaxrs/DefaultContentTypeTest.java index 31858d0cfbddc..379d8697955ca 100644 --- a/extensions/smallrye-openapi/deployment/src/test/java/io/quarkus/smallrye/openapi/test/jaxrs/DefaultContentTypeTest.java +++ b/extensions/smallrye-openapi/deployment/src/test/java/io/quarkus/smallrye/openapi/test/jaxrs/DefaultContentTypeTest.java @@ -28,6 +28,8 @@ public void testOpenApiPathAccessResource() { Matchers.containsString("#/components/schemas/Greeting")) .body("paths.'/greeting/hello'.get.responses.'200'.content.'application/json'.schema.$ref", Matchers.containsString("#/components/schemas/Greeting")) + .body("paths.'/greeting/foo'.get.responses.'200'.content.'plain/text'.schema.type", + Matchers.equalTo("string")) .body("paths.'/greeting/hello'.post.responses.'200'.content.'application/json'.schema.$ref", Matchers.containsString("#/components/schemas/Greeting")); diff --git a/extensions/smallrye-openapi/deployment/src/test/java/io/quarkus/smallrye/openapi/test/jaxrs/NoDefaultSecurityResource.java b/extensions/smallrye-openapi/deployment/src/test/java/io/quarkus/smallrye/openapi/test/jaxrs/NoDefaultSecurityResource.java new file mode 100644 index 0000000000000..8dda3dcba43b2 --- /dev/null +++ b/extensions/smallrye-openapi/deployment/src/test/java/io/quarkus/smallrye/openapi/test/jaxrs/NoDefaultSecurityResource.java @@ -0,0 +1,31 @@ +package io.quarkus.smallrye.openapi.test.jaxrs; + +import jakarta.ws.rs.GET; +import jakarta.ws.rs.POST; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.Produces; +import jakarta.ws.rs.core.MediaType; + +@Path("/greeting") +public class NoDefaultSecurityResource { + + @GET + @Path("/hello") + public Greeting hello() { + return new Greeting("Hello there"); + } + + @POST + @Path("/hello") + public Greeting hello(Greeting greeting) { + return greeting; + } + + @GET + @Path("/goodbye") + @Produces(MediaType.APPLICATION_XML) + public Greeting byebye() { + return new Greeting("Good Bye !"); + } + +} diff --git a/extensions/smallrye-openapi/deployment/src/test/java/io/quarkus/smallrye/openapi/test/jaxrs/NoDefaultSecurityTest.java b/extensions/smallrye-openapi/deployment/src/test/java/io/quarkus/smallrye/openapi/test/jaxrs/NoDefaultSecurityTest.java new file mode 100644 index 0000000000000..7fd78992bee3c --- /dev/null +++ b/extensions/smallrye-openapi/deployment/src/test/java/io/quarkus/smallrye/openapi/test/jaxrs/NoDefaultSecurityTest.java @@ -0,0 +1,26 @@ +package io.quarkus.smallrye.openapi.test.jaxrs; + +import org.hamcrest.Matchers; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; + +import io.quarkus.test.QuarkusUnitTest; +import io.restassured.RestAssured; + +public class NoDefaultSecurityTest { + private static final String OPEN_API_PATH = "/q/openapi"; + + @RegisterExtension + static QuarkusUnitTest runner = new QuarkusUnitTest() + .withApplicationRoot((jar) -> jar + .addClasses(NoDefaultSecurityResource.class, Greeting.class)); + + @Test + public void testOpenApiNoSecurity() { + RestAssured.given().queryParam("format", "JSON") + .when().get(OPEN_API_PATH) + .then() + .body("components.securitySchemes.SecurityScheme.type", Matchers.nullValue()); + } + +} diff --git a/extensions/vertx-http/deployment/src/main/java/io/quarkus/vertx/http/deployment/HttpSecurityProcessor.java b/extensions/vertx-http/deployment/src/main/java/io/quarkus/vertx/http/deployment/HttpSecurityProcessor.java index 124bd5dc59e57..84b2aaca206dc 100644 --- a/extensions/vertx-http/deployment/src/main/java/io/quarkus/vertx/http/deployment/HttpSecurityProcessor.java +++ b/extensions/vertx-http/deployment/src/main/java/io/quarkus/vertx/http/deployment/HttpSecurityProcessor.java @@ -1,7 +1,6 @@ package io.quarkus.vertx.http.deployment; import static io.quarkus.arc.processor.DotNames.APPLICATION_SCOPED; -import static org.jboss.jandex.AnnotationTarget.Kind.CLASS; import java.security.Permission; import java.util.HashMap; @@ -216,7 +215,9 @@ SyntheticBeanBuildItem initBasicAuth( && !buildTimeConfig.auth.basic.orElse(false)) { //if not explicitly enabled we make this a default bean, so it is the fallback if nothing else is defined configurator.defaultBean(); - securityInformationProducer.produce(SecurityInformationBuildItem.BASIC()); + if (buildTimeConfig.auth.basic.isPresent() && buildTimeConfig.auth.basic.get()) { + securityInformationProducer.produce(SecurityInformationBuildItem.BASIC()); + } } return configurator.done();