Package io.quarkus.vertx.http.deployment
Class HttpSecurityProcessor
java.lang.Object
io.quarkus.vertx.http.deployment.HttpSecurityProcessor
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) static final class(package private) static final class(package private) static class -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription(package private) voidaddRoutingCtxToSecurityEventsForCdiBeans(HttpSecurityRecorder recorder, io.quarkus.deployment.Capabilities capabilities, io.quarkus.deployment.annotations.BuildProducer<AdditionalSecurityConstrainerEventPropsBuildItem> producer) static Set<org.jboss.jandex.ClassInfo>collectAnnotatedClasses(Collection<org.jboss.jandex.AnnotationInstance> instances, Predicate<org.jboss.jandex.ClassInfo> filter) static Set<org.jboss.jandex.MethodInfo>collectClassMethodsWithoutRbacAnnotation(Collection<org.jboss.jandex.ClassInfo> classes) (package private) voidcollectInterceptedMethods(io.quarkus.deployment.builditem.CombinedIndexBuildItem indexBuildItem, List<EagerSecurityInterceptorBindingBuildItem> interceptorBindings, List<ClassSecurityAnnotationBuildItem> classSecurityAnnotations, io.quarkus.deployment.annotations.BuildProducer<EagerSecurityInterceptorMethodsBuildItem> methodsProducer, io.quarkus.deployment.annotations.BuildProducer<EagerSecurityInterceptorClassesBuildItem> classesProducer) static Set<org.jboss.jandex.MethodInfo>collectMethodsWithoutRbacAnnotation(Collection<org.jboss.jandex.MethodInfo> methods) (package private) voidcreateHttpAuthenticationHandler(HttpSecurityRecorder recorder, io.quarkus.deployment.Capabilities capabilities, VertxHttpBuildTimeConfig httpBuildTimeConfig, io.quarkus.deployment.annotations.BuildProducer<HttpSecurityProcessor.HttpAuthenticationHandlerBuildItem> authenticationHandlerProducer) (package private) io.quarkus.arc.deployment.AdditionalBeanBuildItem(package private) voiddetectBasicAuthImplicitlyRequired(VertxHttpBuildTimeConfig httpBuildTimeConfig, io.quarkus.arc.deployment.BeanRegistrationPhaseBuildItem beanRegistrationPhaseBuildItem, io.quarkus.deployment.builditem.ApplicationIndexBuildItem applicationIndexBuildItem, io.quarkus.deployment.annotations.BuildProducer<io.quarkus.deployment.builditem.SystemPropertyBuildItem> systemPropertyProducer, List<EagerSecurityInterceptorBindingBuildItem> eagerSecurityInterceptorBindings) (package private) IgnoredContextLocalDataKeysBuildItem(package private) AuthorizationPolicyInstancesBuildItemgatherAuthorizationPolicyInstances(io.quarkus.deployment.builditem.CombinedIndexBuildItem combinedIndex, io.quarkus.deployment.Capabilities capabilities) (package private) voidgenerateAuthorizationPolicyStorage(io.quarkus.deployment.annotations.BuildProducer<io.quarkus.arc.deployment.GeneratedBeanBuildItem> generatedBeanProducer, io.quarkus.deployment.Capabilities capabilities, AuthorizationPolicyInstancesBuildItem authZPolicyInstancesItem, io.quarkus.deployment.annotations.BuildProducer<AdditionalSecurityAnnotationBuildItem> additionalSecurityAnnotationProducer) ImplementsAuthorizationPolicyStorageas a bean.(package private) io.quarkus.arc.deployment.SyntheticBeanBuildIteminitBasicAuth(HttpSecurityRecorder recorder, VertxHttpConfig httpConfig, VertxHttpBuildTimeConfig httpBuildTimeConfig, io.quarkus.deployment.annotations.BuildProducer<SecurityInformationBuildItem> securityInformationProducer) (package private) io.quarkus.arc.deployment.AdditionalBeanBuildIteminitFormAuth(HttpSecurityRecorder recorder, VertxHttpBuildTimeConfig buildTimeConfig, io.quarkus.deployment.annotations.BuildProducer<RouteBuildItem> filterBuildItemBuildProducer) (package private) voidinitializeAuthenticationHandler(Optional<HttpSecurityProcessor.HttpAuthenticationHandlerBuildItem> authenticationHandler, HttpSecurityRecorder recorder, VertxHttpConfig httpConfig, io.quarkus.arc.deployment.BeanContainerBuildItem beanContainerBuildItem) (package private) io.quarkus.arc.deployment.AdditionalBeanBuildIteminitMtlsClientAuth(VertxHttpBuildTimeConfig buildTimeConfig) (package private) voidproduceEagerSecurityInterceptorStorage(HttpSecurityRecorder recorder, io.quarkus.deployment.annotations.BuildProducer<io.quarkus.arc.deployment.SyntheticBeanBuildItem> producer, List<EagerSecurityInterceptorBindingBuildItem> interceptorBindings, List<EagerSecurityInterceptorClassesBuildItem> interceptorClasses, List<EagerSecurityInterceptorMethodsBuildItem> interceptorMethods) (package private) voidregisterAuthMechanismSelectionInterceptor(io.quarkus.deployment.Capabilities capabilities, VertxHttpBuildTimeConfig buildTimeConfig, io.quarkus.deployment.annotations.BuildProducer<EagerSecurityInterceptorBindingBuildItem> bindingProducer, HttpSecurityRecorder recorder, io.quarkus.deployment.annotations.BuildProducer<AdditionalSecuredMethodsBuildItem> additionalSecuredMethodsProducer, io.quarkus.deployment.annotations.BuildProducer<RegisterClassSecurityCheckBuildItem> registerClassSecurityCheckProducer, List<ClassSecurityAnnotationBuildItem> classSecurityAnnotations, List<HttpAuthMechanismAnnotationBuildItem> additionalHttpAuthMechAnnotations, io.quarkus.deployment.builditem.CombinedIndexBuildItem combinedIndexBuildItem) (package private) List<HttpAuthMechanismAnnotationBuildItem>(package private) voidsetMtlsCertificateRoleProperties(HttpSecurityRecorder recorder, VertxHttpConfig httpConfig, VertxHttpBuildTimeConfig httpBuildTimeConfig) (package private) voidsetupAuthenticationMechanisms(HttpSecurityRecorder recorder, io.quarkus.deployment.annotations.BuildProducer<FilterBuildItem> filterBuildItemBuildProducer, io.quarkus.deployment.annotations.BuildProducer<io.quarkus.arc.deployment.AdditionalBeanBuildItem> beanProducer, Optional<HttpSecurityProcessor.HttpAuthenticationHandlerBuildItem> authenticationHandlerBuildItem, io.quarkus.deployment.Capabilities capabilities, VertxHttpBuildTimeConfig httpBuildTimeConfig, io.quarkus.deployment.annotations.BuildProducer<SecurityInformationBuildItem> securityInformationProducer)
-
Constructor Details
-
HttpSecurityProcessor
public HttpSecurityProcessor()
-
-
Method Details
-
initFormAuth
io.quarkus.arc.deployment.AdditionalBeanBuildItem initFormAuth(HttpSecurityRecorder recorder, VertxHttpBuildTimeConfig buildTimeConfig, io.quarkus.deployment.annotations.BuildProducer<RouteBuildItem> filterBuildItemBuildProducer) -
initMtlsClientAuth
io.quarkus.arc.deployment.AdditionalBeanBuildItem initMtlsClientAuth(VertxHttpBuildTimeConfig buildTimeConfig) -
setMtlsCertificateRoleProperties
void setMtlsCertificateRoleProperties(HttpSecurityRecorder recorder, VertxHttpConfig httpConfig, VertxHttpBuildTimeConfig httpBuildTimeConfig) -
detectBasicAuthImplicitlyRequired
void detectBasicAuthImplicitlyRequired(VertxHttpBuildTimeConfig httpBuildTimeConfig, io.quarkus.arc.deployment.BeanRegistrationPhaseBuildItem beanRegistrationPhaseBuildItem, io.quarkus.deployment.builditem.ApplicationIndexBuildItem applicationIndexBuildItem, io.quarkus.deployment.annotations.BuildProducer<io.quarkus.deployment.builditem.SystemPropertyBuildItem> systemPropertyProducer, List<EagerSecurityInterceptorBindingBuildItem> eagerSecurityInterceptorBindings) -
initBasicAuth
io.quarkus.arc.deployment.SyntheticBeanBuildItem initBasicAuth(HttpSecurityRecorder recorder, VertxHttpConfig httpConfig, VertxHttpBuildTimeConfig httpBuildTimeConfig, io.quarkus.deployment.annotations.BuildProducer<SecurityInformationBuildItem> securityInformationProducer) -
setupAuthenticationMechanisms
void setupAuthenticationMechanisms(HttpSecurityRecorder recorder, io.quarkus.deployment.annotations.BuildProducer<FilterBuildItem> filterBuildItemBuildProducer, io.quarkus.deployment.annotations.BuildProducer<io.quarkus.arc.deployment.AdditionalBeanBuildItem> beanProducer, Optional<HttpSecurityProcessor.HttpAuthenticationHandlerBuildItem> authenticationHandlerBuildItem, io.quarkus.deployment.Capabilities capabilities, VertxHttpBuildTimeConfig httpBuildTimeConfig, io.quarkus.deployment.annotations.BuildProducer<SecurityInformationBuildItem> securityInformationProducer) -
createHttpAuthenticationHandler
void createHttpAuthenticationHandler(HttpSecurityRecorder recorder, io.quarkus.deployment.Capabilities capabilities, VertxHttpBuildTimeConfig httpBuildTimeConfig, io.quarkus.deployment.annotations.BuildProducer<HttpSecurityProcessor.HttpAuthenticationHandlerBuildItem> authenticationHandlerProducer) -
initializeAuthenticationHandler
void initializeAuthenticationHandler(Optional<HttpSecurityProcessor.HttpAuthenticationHandlerBuildItem> authenticationHandler, HttpSecurityRecorder recorder, VertxHttpConfig httpConfig, io.quarkus.arc.deployment.BeanContainerBuildItem beanContainerBuildItem) -
registerHttpAuthMechanismAnnotations
List<HttpAuthMechanismAnnotationBuildItem> registerHttpAuthMechanismAnnotations() -
registerAuthMechanismSelectionInterceptor
void registerAuthMechanismSelectionInterceptor(io.quarkus.deployment.Capabilities capabilities, VertxHttpBuildTimeConfig buildTimeConfig, io.quarkus.deployment.annotations.BuildProducer<EagerSecurityInterceptorBindingBuildItem> bindingProducer, HttpSecurityRecorder recorder, io.quarkus.deployment.annotations.BuildProducer<AdditionalSecuredMethodsBuildItem> additionalSecuredMethodsProducer, io.quarkus.deployment.annotations.BuildProducer<RegisterClassSecurityCheckBuildItem> registerClassSecurityCheckProducer, List<ClassSecurityAnnotationBuildItem> classSecurityAnnotations, List<HttpAuthMechanismAnnotationBuildItem> additionalHttpAuthMechAnnotations, io.quarkus.deployment.builditem.CombinedIndexBuildItem combinedIndexBuildItem) -
collectInterceptedMethods
void collectInterceptedMethods(io.quarkus.deployment.builditem.CombinedIndexBuildItem indexBuildItem, List<EagerSecurityInterceptorBindingBuildItem> interceptorBindings, List<ClassSecurityAnnotationBuildItem> classSecurityAnnotations, io.quarkus.deployment.annotations.BuildProducer<EagerSecurityInterceptorMethodsBuildItem> methodsProducer, io.quarkus.deployment.annotations.BuildProducer<EagerSecurityInterceptorClassesBuildItem> classesProducer) -
produceEagerSecurityInterceptorStorage
void produceEagerSecurityInterceptorStorage(HttpSecurityRecorder recorder, io.quarkus.deployment.annotations.BuildProducer<io.quarkus.arc.deployment.SyntheticBeanBuildItem> producer, List<EagerSecurityInterceptorBindingBuildItem> interceptorBindings, List<EagerSecurityInterceptorClassesBuildItem> interceptorClasses, List<EagerSecurityInterceptorMethodsBuildItem> interceptorMethods) -
addRoutingCtxToSecurityEventsForCdiBeans
void addRoutingCtxToSecurityEventsForCdiBeans(HttpSecurityRecorder recorder, io.quarkus.deployment.Capabilities capabilities, io.quarkus.deployment.annotations.BuildProducer<AdditionalSecurityConstrainerEventPropsBuildItem> producer) -
gatherAuthorizationPolicyInstances
AuthorizationPolicyInstancesBuildItem gatherAuthorizationPolicyInstances(io.quarkus.deployment.builditem.CombinedIndexBuildItem combinedIndex, io.quarkus.deployment.Capabilities capabilities) -
generateAuthorizationPolicyStorage
void generateAuthorizationPolicyStorage(io.quarkus.deployment.annotations.BuildProducer<io.quarkus.arc.deployment.GeneratedBeanBuildItem> generatedBeanProducer, io.quarkus.deployment.Capabilities capabilities, AuthorizationPolicyInstancesBuildItem authZPolicyInstancesItem, io.quarkus.deployment.annotations.BuildProducer<AdditionalSecurityAnnotationBuildItem> additionalSecurityAnnotationProducer) ImplementsAuthorizationPolicyStorageas a bean. If noAuthorizationPolicyare detected, generated bean will look like this:
On the other hand, ifpublic class AuthorizationPolicyStorage_Imp extends AuthorizationPolicyStorage { AuthorizationPolicyStorage_Imp() { super(); } @Override protected Map<MethodDescription, String> getMethodToPolicyName() { return Map.of(); } }AuthorizationPolicyis detected,getMethodToPolicyNamereturns method descriptions of detected annotation instances. -
createSecurityIdentityAssociation
io.quarkus.arc.deployment.AdditionalBeanBuildItem createSecurityIdentityAssociation() -
dontPropagateSecurityIdentityToDuplicateContext
IgnoredContextLocalDataKeysBuildItem dontPropagateSecurityIdentityToDuplicateContext(HttpSecurityRecorder recorder) -
collectClassMethodsWithoutRbacAnnotation
public static Set<org.jboss.jandex.MethodInfo> collectClassMethodsWithoutRbacAnnotation(Collection<org.jboss.jandex.ClassInfo> classes) -
collectMethodsWithoutRbacAnnotation
public static Set<org.jboss.jandex.MethodInfo> collectMethodsWithoutRbacAnnotation(Collection<org.jboss.jandex.MethodInfo> methods) -
collectAnnotatedClasses
public static Set<org.jboss.jandex.ClassInfo> collectAnnotatedClasses(Collection<org.jboss.jandex.AnnotationInstance> instances, Predicate<org.jboss.jandex.ClassInfo> filter)
-