diff --git a/bom/application/pom.xml b/bom/application/pom.xml
index b072d8b3533c9..cd0af8cbc7618 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();
diff --git a/integration-tests/main/src/test/java/io/quarkus/it/main/OpenApiTestCase.java b/integration-tests/main/src/test/java/io/quarkus/it/main/OpenApiTestCase.java
index 501f425922b7d..c8dd713012e78 100644
--- a/integration-tests/main/src/test/java/io/quarkus/it/main/OpenApiTestCase.java
+++ b/integration-tests/main/src/test/java/io/quarkus/it/main/OpenApiTestCase.java
@@ -22,6 +22,7 @@
public class OpenApiTestCase {
private static final String DEFAULT_MEDIA_TYPE = "application/json";
+ private static final String DEFAULT_MEDIA_TYPE_PRIMITAVE = "plain/text";
@TestHTTPResource("q/openapi")
URL uri;
@@ -63,7 +64,8 @@ public void testOpenAPIJSON() throws Exception {
// test RESTEasy extensions
JsonObject schemasObj = obj.getJsonObject("components").getJsonObject("schemas");
- String testSchemaType = schemaType("200", DEFAULT_MEDIA_TYPE, testObj.getJsonObject("get").getJsonObject("responses"),
+ String testSchemaType = schemaType("200", DEFAULT_MEDIA_TYPE_PRIMITAVE,
+ testObj.getJsonObject("get").getJsonObject("responses"),
schemasObj);
String rxSchemaType = schemaType("200", DEFAULT_MEDIA_TYPE,
injectionObj.getJsonObject("get").getJsonObject("responses"),