diff --git a/extensions/amazon-lambda-http/runtime/src/main/java/io/quarkus/amazon/lambda/http/LambdaHttpAuthenticationMechanism.java b/extensions/amazon-lambda-http/runtime/src/main/java/io/quarkus/amazon/lambda/http/LambdaHttpAuthenticationMechanism.java index f655a66a59b8d..430446c73ab06 100644 --- a/extensions/amazon-lambda-http/runtime/src/main/java/io/quarkus/amazon/lambda/http/LambdaHttpAuthenticationMechanism.java +++ b/extensions/amazon-lambda-http/runtime/src/main/java/io/quarkus/amazon/lambda/http/LambdaHttpAuthenticationMechanism.java @@ -95,7 +95,7 @@ public Set> getCredentialTypes() { } @Override - public HttpCredentialTransport getCredentialTransport() { - return null; + public Uni getCredentialTransport(RoutingContext context) { + return Uni.createFrom().nullItem(); } } diff --git a/extensions/amazon-lambda-rest/runtime/src/main/java/io/quarkus/amazon/lambda/http/LambdaHttpAuthenticationMechanism.java b/extensions/amazon-lambda-rest/runtime/src/main/java/io/quarkus/amazon/lambda/http/LambdaHttpAuthenticationMechanism.java index e535a4213a799..41916bcf64a9a 100644 --- a/extensions/amazon-lambda-rest/runtime/src/main/java/io/quarkus/amazon/lambda/http/LambdaHttpAuthenticationMechanism.java +++ b/extensions/amazon-lambda-rest/runtime/src/main/java/io/quarkus/amazon/lambda/http/LambdaHttpAuthenticationMechanism.java @@ -95,7 +95,7 @@ public Set> getCredentialTypes() { } @Override - public HttpCredentialTransport getCredentialTransport() { - return null; + public Uni getCredentialTransport(RoutingContext context) { + return Uni.createFrom().nullItem(); } } diff --git a/extensions/elytron-security-oauth2/runtime/src/main/java/io/quarkus/elytron/security/oauth2/runtime/auth/OAuth2AuthMechanism.java b/extensions/elytron-security-oauth2/runtime/src/main/java/io/quarkus/elytron/security/oauth2/runtime/auth/OAuth2AuthMechanism.java index 2742c4e1b1307..7ff2482fe9b99 100644 --- a/extensions/elytron-security-oauth2/runtime/src/main/java/io/quarkus/elytron/security/oauth2/runtime/auth/OAuth2AuthMechanism.java +++ b/extensions/elytron-security-oauth2/runtime/src/main/java/io/quarkus/elytron/security/oauth2/runtime/auth/OAuth2AuthMechanism.java @@ -72,7 +72,7 @@ public Set> getCredentialTypes() { } @Override - public HttpCredentialTransport getCredentialTransport() { - return new HttpCredentialTransport(HttpCredentialTransport.Type.AUTHORIZATION, "bearer"); + public Uni getCredentialTransport(RoutingContext context) { + return Uni.createFrom().item(new HttpCredentialTransport(HttpCredentialTransport.Type.AUTHORIZATION, "bearer")); } } diff --git a/extensions/elytron-security-properties-file/deployment/src/test/java/io/quarkus/security/test/CustomAuth.java b/extensions/elytron-security-properties-file/deployment/src/test/java/io/quarkus/security/test/CustomAuth.java index ba9653080aa06..aa2c187c142bd 100644 --- a/extensions/elytron-security-properties-file/deployment/src/test/java/io/quarkus/security/test/CustomAuth.java +++ b/extensions/elytron-security-properties-file/deployment/src/test/java/io/quarkus/security/test/CustomAuth.java @@ -88,7 +88,7 @@ public Set> getCredentialTypes() { } @Override - public HttpCredentialTransport getCredentialTransport() { - return new HttpCredentialTransport(HttpCredentialTransport.Type.AUTHORIZATION, "basic"); + public Uni getCredentialTransport(RoutingContext context) { + return Uni.createFrom().item(new HttpCredentialTransport(HttpCredentialTransport.Type.AUTHORIZATION, "basic")); } } diff --git a/extensions/security/deployment/src/main/java/io/quarkus/security/deployment/SecurityProcessor.java b/extensions/security/deployment/src/main/java/io/quarkus/security/deployment/SecurityProcessor.java index 62b0f6b5e0372..0d1937eab54bb 100644 --- a/extensions/security/deployment/src/main/java/io/quarkus/security/deployment/SecurityProcessor.java +++ b/extensions/security/deployment/src/main/java/io/quarkus/security/deployment/SecurityProcessor.java @@ -123,7 +123,6 @@ import io.quarkus.security.runtime.interceptor.SecurityCheckStorageBuilder; import io.quarkus.security.runtime.interceptor.SecurityConstrainer; import io.quarkus.security.runtime.interceptor.SecurityHandler; -import io.quarkus.security.spi.AdditionalSecuredClassesBuildItem; import io.quarkus.security.spi.AdditionalSecuredMethodsBuildItem; import io.quarkus.security.spi.AdditionalSecurityAnnotationBuildItem; import io.quarkus.security.spi.AdditionalSecurityConstrainerEventPropsBuildItem; @@ -522,26 +521,6 @@ void registerSecurityInterceptors(BuildProducer additionalSecuredClassesBuildItems, - BuildProducer additionalSecuredMethodsBuildItemBuildProducer) { - for (AdditionalSecuredClassesBuildItem additionalSecuredClassesBuildItem : additionalSecuredClassesBuildItems) { - final Collection securedMethods = new ArrayList<>(); - for (ClassInfo additionalSecuredClass : additionalSecuredClassesBuildItem.additionalSecuredClasses) { - for (MethodInfo method : additionalSecuredClass.methods()) { - if (isPublicNonStaticNonConstructor(method)) { - securedMethods.add(method); - } - } - } - additionalSecuredMethodsBuildItemBuildProducer.produce( - new AdditionalSecuredMethodsBuildItem(securedMethods, additionalSecuredClassesBuildItem.rolesAllowed)); - } - } - /* * The annotation store is not meant to be generally supported for security annotation. * It is only used here in order to be able to register the DenyAllInterceptor for diff --git a/extensions/security/spi/src/main/java/io/quarkus/security/spi/AdditionalSecuredClassesBuildItem.java b/extensions/security/spi/src/main/java/io/quarkus/security/spi/AdditionalSecuredClassesBuildItem.java deleted file mode 100644 index eec1ddd44f649..0000000000000 --- a/extensions/security/spi/src/main/java/io/quarkus/security/spi/AdditionalSecuredClassesBuildItem.java +++ /dev/null @@ -1,33 +0,0 @@ -package io.quarkus.security.spi; - -import java.util.Collection; -import java.util.Collections; -import java.util.List; -import java.util.Optional; - -import org.jboss.jandex.ClassInfo; - -import io.quarkus.builder.item.MultiBuildItem; - -/** - * Contains classes that need to have @DenyAll on all methods that don't have security annotations - * - * @deprecated use {@link AdditionalSecuredMethodsBuildItem} - */ -@Deprecated(forRemoval = true, since = "2.15") -public final class AdditionalSecuredClassesBuildItem extends MultiBuildItem { - - public final Collection additionalSecuredClasses; - public final Optional> rolesAllowed; - - public AdditionalSecuredClassesBuildItem(Collection additionalSecuredClasses) { - this.additionalSecuredClasses = Collections.unmodifiableCollection(additionalSecuredClasses); - rolesAllowed = Optional.empty(); - } - - public AdditionalSecuredClassesBuildItem(Collection additionalSecuredClasses, - Optional> rolesAllowed) { - this.additionalSecuredClasses = Collections.unmodifiableCollection(additionalSecuredClasses); - this.rolesAllowed = rolesAllowed; - } -} diff --git a/extensions/vertx-http/deployment/src/main/java/io/quarkus/vertx/http/deployment/HttpSecurityPolicyBuildItem.java b/extensions/vertx-http/deployment/src/main/java/io/quarkus/vertx/http/deployment/HttpSecurityPolicyBuildItem.java deleted file mode 100644 index d86028cfd668f..0000000000000 --- a/extensions/vertx-http/deployment/src/main/java/io/quarkus/vertx/http/deployment/HttpSecurityPolicyBuildItem.java +++ /dev/null @@ -1,30 +0,0 @@ -package io.quarkus.vertx.http.deployment; - -import java.util.function.Supplier; - -import io.quarkus.builder.item.MultiBuildItem; -import io.quarkus.vertx.http.runtime.security.HttpSecurityPolicy; - -/** - * @deprecated Define {@link io.quarkus.vertx.http.runtime.security.HttpSecurityPolicy} CDI bean with {@link #name} - * set as the {@link HttpSecurityPolicy#name()}. - */ -@Deprecated(since = "3.6", forRemoval = true) -public final class HttpSecurityPolicyBuildItem extends MultiBuildItem { - - final String name; - final Supplier policySupplier; - - public HttpSecurityPolicyBuildItem(String name, Supplier policySupplier) { - this.name = name; - this.policySupplier = policySupplier; - } - - public String getName() { - return name; - } - - public Supplier getPolicySupplier() { - return policySupplier; - } -} 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 688e7c03f5ddf..b047f7778323e 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 @@ -73,7 +73,6 @@ import io.quarkus.vertx.http.runtime.security.FormAuthenticationMechanism; import io.quarkus.vertx.http.runtime.security.HttpAuthenticator; import io.quarkus.vertx.http.runtime.security.HttpAuthorizer; -import io.quarkus.vertx.http.runtime.security.HttpSecurityPolicy; import io.quarkus.vertx.http.runtime.security.HttpSecurityRecorder; import io.quarkus.vertx.http.runtime.security.HttpSecurityRecorder.AuthenticationHandler; import io.quarkus.vertx.http.runtime.security.MtlsAuthenticationMechanism; @@ -90,28 +89,9 @@ public class HttpSecurityProcessor { private static final DotName AUTH_MECHANISM_NAME = DotName.createSimple(HttpAuthenticationMechanism.class); - private static final DotName BASIC_AUTH_MECH_NAME = DotName.createSimple(BasicAuthenticationMechanism.class); private static final DotName BASIC_AUTH_ANNOTATION_NAME = DotName.createSimple(BasicAuthentication.class); private static final String KOTLIN_SUSPEND_IMPL_SUFFIX = "$suspendImpl"; - @Record(ExecutionTime.STATIC_INIT) - @BuildStep - void produceNamedHttpSecurityPolicies(List httpSecurityPolicyBuildItems, - BuildProducer syntheticBeanProducer, - HttpSecurityRecorder recorder) { - if (!httpSecurityPolicyBuildItems.isEmpty()) { - httpSecurityPolicyBuildItems.forEach(item -> syntheticBeanProducer - .produce(SyntheticBeanBuildItem - .configure(HttpSecurityPolicy.class) - .named(HttpSecurityPolicy.class.getName() + "." + item.getName()) - .runtimeValue(recorder.createNamedHttpSecurityPolicy(item.getPolicySupplier(), item.getName())) - .addType(HttpSecurityPolicy.class) - .scope(Singleton.class) - .unremovable() - .done())); - } - } - @BuildStep @Record(ExecutionTime.STATIC_INIT) AdditionalBeanBuildItem initFormAuth( diff --git a/extensions/vertx-http/deployment/src/test/java/io/quarkus/vertx/http/security/HeaderAuthenticator.java b/extensions/vertx-http/deployment/src/test/java/io/quarkus/vertx/http/security/HeaderAuthenticator.java index 383eabe66c00f..0d2d69735cba4 100644 --- a/extensions/vertx-http/deployment/src/test/java/io/quarkus/vertx/http/security/HeaderAuthenticator.java +++ b/extensions/vertx-http/deployment/src/test/java/io/quarkus/vertx/http/security/HeaderAuthenticator.java @@ -38,7 +38,7 @@ public Set> getCredentialTypes() { } @Override - public HttpCredentialTransport getCredentialTransport() { - return null; + public Uni getCredentialTransport(RoutingContext context) { + return Uni.createFrom().nullItem(); } } diff --git a/extensions/vertx-http/runtime/src/main/java/io/quarkus/vertx/http/runtime/FormAuthRuntimeConfig.java b/extensions/vertx-http/runtime/src/main/java/io/quarkus/vertx/http/runtime/FormAuthRuntimeConfig.java index 04093faa86f0d..102de5ba47222 100644 --- a/extensions/vertx-http/runtime/src/main/java/io/quarkus/vertx/http/runtime/FormAuthRuntimeConfig.java +++ b/extensions/vertx-http/runtime/src/main/java/io/quarkus/vertx/http/runtime/FormAuthRuntimeConfig.java @@ -58,7 +58,7 @@ enum CookieSameSite { * if there is no landing page. */ @WithDefault("true") - @Deprecated + @Deprecated(forRemoval = true, since = "2.16") boolean redirectAfterLogin(); /** diff --git a/extensions/vertx-http/runtime/src/main/java/io/quarkus/vertx/http/runtime/security/HttpSecurityRecorder.java b/extensions/vertx-http/runtime/src/main/java/io/quarkus/vertx/http/runtime/security/HttpSecurityRecorder.java index 888ff251b8d1e..c84a98761bc1b 100644 --- a/extensions/vertx-http/runtime/src/main/java/io/quarkus/vertx/http/runtime/security/HttpSecurityRecorder.java +++ b/extensions/vertx-http/runtime/src/main/java/io/quarkus/vertx/http/runtime/security/HttpSecurityRecorder.java @@ -129,24 +129,6 @@ public EagerSecurityInterceptorStorage get() { }; } - public RuntimeValue createNamedHttpSecurityPolicy(Supplier policySupplier, - String name) { - return new RuntimeValue<>(new HttpSecurityPolicy() { - private final HttpSecurityPolicy delegate = policySupplier.get(); - - @Override - public Uni checkPermission(RoutingContext request, Uni identity, - AuthorizationRequestContext requestContext) { - return delegate.checkPermission(request, identity, requestContext); - } - - @Override - public String name() { - return name; - } - }); - } - public Supplier> createAdditionalSecEventPropsSupplier() { return new Supplier>() { @Override diff --git a/extensions/vertx-http/runtime/src/main/java/io/quarkus/vertx/http/runtime/security/ImmutablePathMatcher.java b/extensions/vertx-http/runtime/src/main/java/io/quarkus/vertx/http/runtime/security/ImmutablePathMatcher.java index 81b6d47beead6..2a0c350b436a6 100644 --- a/extensions/vertx-http/runtime/src/main/java/io/quarkus/vertx/http/runtime/security/ImmutablePathMatcher.java +++ b/extensions/vertx-http/runtime/src/main/java/io/quarkus/vertx/http/runtime/security/ImmutablePathMatcher.java @@ -55,7 +55,7 @@ public PathMatch match(String path) { if (hasExactPathMatches) { T match = exactPathMatches.get(path); if (match != null) { - return new PathMatch<>(path, "", match); + return new PathMatch<>(path, match); } } @@ -64,7 +64,7 @@ public PathMatch match(String path) { if (pathLength == length) { SubstringMatch next = paths.get(path, length); if (next != null) { - return new PathMatch<>(path, "", next.getValue()); + return new PathMatch<>(path, next.getValue()); } } else if (pathLength < length) { char c = path.charAt(pathLength); @@ -76,12 +76,12 @@ public PathMatch match(String path) { //String part = path.substring(0, pathLength); SubstringMatch next = paths.get(path, pathLength); if (next != null) { - return new PathMatch<>(next.getKey(), path.substring(pathLength), next.getValue()); + return new PathMatch<>(next.getKey(), next.getValue()); } } } } - return new PathMatch<>("", path, defaultHandler); + return new PathMatch<>("", defaultHandler); } public static ImmutablePathMatcherBuilder builder() { @@ -90,25 +90,13 @@ public static ImmutablePathMatcherBuilder builder() { public static final class PathMatch { private final String matched; - private final String remaining; private final T value; - public PathMatch(String matched, String remaining, T value) { + public PathMatch(String matched, T value) { this.matched = matched; - this.remaining = remaining; this.value = value; } - /** - * @deprecated because it can't be supported with inner wildcard without cost. It's unlikely this method is - * used by anyone as users don't get in touch with this class. If there is legit use case, please - * open Quarkus issue. - */ - @Deprecated - public String getRemaining() { - return remaining; - } - public String getMatched() { return matched; }