All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.quarkus.test.security.certificate.ServingCertificateConfig Maven / Gradle / Ivy

The newest version!
package io.quarkus.test.security.certificate;

import io.quarkus.test.bootstrap.ServiceContext;

public record ServingCertificateConfig(boolean injectCABundle, boolean addServiceCertificate, String tlsConfigName) {

    public static final String SERVING_CERTIFICATE_KEY = "serving-certificate-config-key";

    public static boolean isServingCertificateScenario(ServiceContext serviceContext) {
        return get(serviceContext) != null;
    }

    public static ServingCertificateConfig get(ServiceContext serviceContext) {
        if (serviceContext.get(SERVING_CERTIFICATE_KEY) instanceof ServingCertificateConfig config) {
            return config;
        }
        return null;
    }

    static ServingCertificateConfigBuilder builder() {
        return new ServingCertificateConfigBuilder();
    }

    static final class ServingCertificateConfigBuilder {

        private boolean injectCABundle = false;
        private boolean addServiceCertificate = false;
        private String tlsConfigName = null;

        private ServingCertificateConfigBuilder() {
        }

        ServingCertificateConfigBuilder withInjectCABundle(boolean injectCABundle) {
            this.injectCABundle = injectCABundle;
            return this;
        }

        ServingCertificateConfigBuilder withAddServiceCertificate(boolean addServiceCertificate) {
            this.addServiceCertificate = addServiceCertificate;
            return this;
        }

        ServingCertificateConfigBuilder withTlsConfigName(String tlsConfigName) {
            this.tlsConfigName = tlsConfigName;
            return this;
        }

        ServingCertificateConfig build() {
            if (injectCABundle || addServiceCertificate) {
                return new ServingCertificateConfig(injectCABundle, addServiceCertificate, tlsConfigName);
            }
            return null;
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy