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

io.dropwizard.kafka.security.SaslPlaintextSecurityFactory Maven / Gradle / Ivy

package io.dropwizard.kafka.security;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonTypeName;
import com.google.common.collect.ImmutableMap;
import org.apache.kafka.clients.CommonClientConfigs;
import org.apache.kafka.common.config.SaslConfigs;
import org.apache.kafka.common.config.SslConfigs;

import java.util.Map;

import javax.validation.constraints.NotEmpty;

@JsonTypeName("sasl_plaintext")
public class SaslPlaintextSecurityFactory extends SecurityFactory {

    @NotEmpty
    @JsonProperty
    private String saslMechanism = "PLAIN";

    @JsonProperty
    private String saslJaas;

    public String getSaslMechanism() {
        return saslMechanism;
    }

    public void setSaslMechanism(final String saslMechanism) {
        this.saslMechanism = saslMechanism;
    }

    public String getSaslJaas() {
        return saslJaas;
    }

    public void setSaslJaas(final String saslJaas) {
        this.saslJaas = saslJaas;
    }

    @Override
    public Map build() {
        final ImmutableMap.Builder builder = ImmutableMap.builder()
                .put(CommonClientConfigs.SECURITY_PROTOCOL_CONFIG, securityProtocol.toUpperCase())
                .put(SaslConfigs.SASL_MECHANISM, saslMechanism)
                .put(SslConfigs.SSL_ENDPOINT_IDENTIFICATION_ALGORITHM_CONFIG, sslEndpointIdentificationAlgorithm);

        if (saslJaas != null) {
            builder.put(SaslConfigs.SASL_JAAS_CONFIG, saslJaas);
        }

        return builder.build();
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy