feat(kafka) : support SSL connection
This commit is contained in:
parent
7331b631b6
commit
4dd394aa68
12 changed files with 225 additions and 4 deletions
|
|
@ -17,3 +17,11 @@ spring.data.mongodb.username=${PYMMA_MONGO_USERNAME}
|
||||||
|
|
||||||
spring.servlet.multipart.enabled=false
|
spring.servlet.multipart.enabled=false
|
||||||
kafka.bootstrapAddress=${PYMMA_KAFKA_BOOTSTRAP:kafka1:19092,kafka2:19093,kafka3:19094}
|
kafka.bootstrapAddress=${PYMMA_KAFKA_BOOTSTRAP:kafka1:19092,kafka2:19093,kafka3:19094}
|
||||||
|
|
||||||
|
pymma.kafka.activateSsl=${PYMMA_KAFKA_ACTIVATE_SSL:false}
|
||||||
|
pymma.kafka.sslTruststoreLocation=${PYMMA_KAFKA_SSL_TRUSTSTORE_LOCATION}
|
||||||
|
pymma.kafka.sslTruststorePassword=${PYMMA_KAFKA_SSL_TRUSTSTORE_PASSWORD}
|
||||||
|
pymma.kafka.sslKeyPassword=${PYMMA_KAFKA_KEY_PASSWORD}
|
||||||
|
pymma.kafka.sslKeystorePassword=${PYMMA_KAFKA_SSL_KEYSTORE_PASSWORD}
|
||||||
|
pymma.kafka.sslKeystoreLocation=${PYMMA_KAFKA_SSL_KEYSTORE_LOCATION}
|
||||||
|
pymma.kafka.sslKeystoreType=${PYMMA_KAFKA_SSL_KEYSTORE_TYPE}
|
||||||
|
|
@ -2,10 +2,13 @@ package org.chtijbug.drools.console;
|
||||||
|
|
||||||
|
|
||||||
import com.vaadin.flow.spring.SpringServlet;
|
import com.vaadin.flow.spring.SpringServlet;
|
||||||
|
import org.apache.kafka.clients.CommonClientConfigs;
|
||||||
import org.apache.kafka.clients.admin.AdminClientConfig;
|
import org.apache.kafka.clients.admin.AdminClientConfig;
|
||||||
import org.apache.kafka.clients.admin.NewTopic;
|
import org.apache.kafka.clients.admin.NewTopic;
|
||||||
import org.apache.kafka.clients.consumer.ConsumerConfig;
|
import org.apache.kafka.clients.consumer.ConsumerConfig;
|
||||||
import org.apache.kafka.clients.producer.ProducerConfig;
|
import org.apache.kafka.clients.producer.ProducerConfig;
|
||||||
|
import org.apache.kafka.common.config.SslConfigs;
|
||||||
|
import org.apache.kafka.common.security.auth.SecurityProtocol;
|
||||||
import org.apache.kafka.common.serialization.StringDeserializer;
|
import org.apache.kafka.common.serialization.StringDeserializer;
|
||||||
import org.apache.kafka.common.serialization.StringSerializer;
|
import org.apache.kafka.common.serialization.StringSerializer;
|
||||||
import org.chtijbug.drools.KieContainerResponse;
|
import org.chtijbug.drools.KieContainerResponse;
|
||||||
|
|
@ -65,6 +68,27 @@ public class DroolsSpringBootConsoleApplication extends SpringBootServletInitial
|
||||||
@Value(value = "${kafka.bootstrapAddress}")
|
@Value(value = "${kafka.bootstrapAddress}")
|
||||||
private String bootstrapAddress;
|
private String bootstrapAddress;
|
||||||
|
|
||||||
|
@Value("${pymma.kafka.activateSsl:false}")
|
||||||
|
private boolean activateSsl;
|
||||||
|
|
||||||
|
@Value("${pymma.kafka.sslTruststoreLocation:}")
|
||||||
|
private String sslTruststoreLocation;
|
||||||
|
|
||||||
|
@Value("${pymma.kafka.sslTruststorePassword:}")
|
||||||
|
private String sslTruststorePassword;
|
||||||
|
|
||||||
|
@Value("${pymma.kafka.sslKeyPassword:}")
|
||||||
|
private String sslKeyPassword;
|
||||||
|
|
||||||
|
@Value("${pymma.kafka.sslKeystorePassword:}")
|
||||||
|
private String sslKeystorePassword;
|
||||||
|
|
||||||
|
@Value("${pymma.kafka.sslKeystoreLocation:}")
|
||||||
|
private String sslKeystoreLocation;
|
||||||
|
|
||||||
|
@Value("${pymma.kafka.sslKeystoreType:}")
|
||||||
|
private String sslKeystoreType;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private DababaseContentInit dababaseContentInit;
|
private DababaseContentInit dababaseContentInit;
|
||||||
@Autowired
|
@Autowired
|
||||||
|
|
@ -113,6 +137,15 @@ public class DroolsSpringBootConsoleApplication extends SpringBootServletInitial
|
||||||
public KafkaAdmin kafkaAdmin() {
|
public KafkaAdmin kafkaAdmin() {
|
||||||
Map<String, Object> configs = new HashMap<>();
|
Map<String, Object> configs = new HashMap<>();
|
||||||
configs.put(AdminClientConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrapAddress);
|
configs.put(AdminClientConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrapAddress);
|
||||||
|
if (activateSsl) {
|
||||||
|
configs.put(CommonClientConfigs.SECURITY_PROTOCOL_CONFIG, SecurityProtocol.SSL.name);
|
||||||
|
configs.put(SslConfigs.SSL_TRUSTSTORE_LOCATION_CONFIG, this.sslTruststoreLocation);
|
||||||
|
configs.put(SslConfigs.SSL_TRUSTSTORE_PASSWORD_CONFIG, this.sslTruststorePassword);
|
||||||
|
configs.put(SslConfigs.SSL_KEY_PASSWORD_CONFIG, this.sslKeyPassword);
|
||||||
|
configs.put(SslConfigs.SSL_KEYSTORE_PASSWORD_CONFIG, this.sslKeystorePassword);
|
||||||
|
configs.put(SslConfigs.SSL_KEYSTORE_LOCATION_CONFIG, this.sslKeystoreLocation);
|
||||||
|
configs.put(SslConfigs.SSL_KEYSTORE_TYPE_CONFIG, this.sslKeystoreType);
|
||||||
|
}
|
||||||
return new KafkaAdmin(configs);
|
return new KafkaAdmin(configs);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -133,6 +166,15 @@ public class DroolsSpringBootConsoleApplication extends SpringBootServletInitial
|
||||||
configProps.put(
|
configProps.put(
|
||||||
ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG,
|
ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG,
|
||||||
JsonSerializer.class);
|
JsonSerializer.class);
|
||||||
|
if (activateSsl) {
|
||||||
|
configProps.put(CommonClientConfigs.SECURITY_PROTOCOL_CONFIG, SecurityProtocol.SSL.name);
|
||||||
|
configProps.put(SslConfigs.SSL_TRUSTSTORE_LOCATION_CONFIG, this.sslTruststoreLocation);
|
||||||
|
configProps.put(SslConfigs.SSL_TRUSTSTORE_PASSWORD_CONFIG, this.sslTruststorePassword);
|
||||||
|
configProps.put(SslConfigs.SSL_KEY_PASSWORD_CONFIG, this.sslKeyPassword);
|
||||||
|
configProps.put(SslConfigs.SSL_KEYSTORE_PASSWORD_CONFIG, this.sslKeystorePassword);
|
||||||
|
configProps.put(SslConfigs.SSL_KEYSTORE_LOCATION_CONFIG, this.sslKeystoreLocation);
|
||||||
|
configProps.put(SslConfigs.SSL_KEYSTORE_TYPE_CONFIG, this.sslKeystoreType);
|
||||||
|
}
|
||||||
return new DefaultKafkaProducerFactory<>(configProps);
|
return new DefaultKafkaProducerFactory<>(configProps);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -18,3 +18,11 @@ spring.servlet.multipart.enabled=false
|
||||||
kafka.bootstrapAddress=${PYMMA_KAFKA_BOOTSTRAP:localhost:9092,localhost:9093,localhost:9094}
|
kafka.bootstrapAddress=${PYMMA_KAFKA_BOOTSTRAP:localhost:9092,localhost:9093,localhost:9094}
|
||||||
|
|
||||||
vaadin.urlMapping=/admin/*
|
vaadin.urlMapping=/admin/*
|
||||||
|
|
||||||
|
pymma.kafka.activateSsl=${PYMMA_KAFKA_ACTIVATE_SSL:false}
|
||||||
|
pymma.kafka.sslTruststoreLocation=${PYMMA_KAFKA_SSL_TRUSTSTORE_LOCATION}
|
||||||
|
pymma.kafka.sslTruststorePassword=${PYMMA_KAFKA_SSL_TRUSTSTORE_PASSWORD}
|
||||||
|
pymma.kafka.sslKeyPassword=${PYMMA_KAFKA_KEY_PASSWORD}
|
||||||
|
pymma.kafka.sslKeystorePassword=${PYMMA_KAFKA_SSL_KEYSTORE_PASSWORD}
|
||||||
|
pymma.kafka.sslKeystoreLocation=${PYMMA_KAFKA_SSL_KEYSTORE_LOCATION}
|
||||||
|
pymma.kafka.sslKeystoreType=${PYMMA_KAFKA_SSL_KEYSTORE_TYPE}
|
||||||
|
|
@ -11,3 +11,11 @@ spring.data.mongodb.password=${PYMMA_MONGO_PASSWORD}
|
||||||
spring.data.mongodb.username=${PYMMA_MONGO_USERNAME}
|
spring.data.mongodb.username=${PYMMA_MONGO_USERNAME}
|
||||||
kafka.index.groupid=${PYMMA_KIE_SERVEUR_GROUPID:index1}
|
kafka.index.groupid=${PYMMA_KIE_SERVEUR_GROUPID:index1}
|
||||||
kafka.bootstrapAddress=${PYMMA_KAFKA_BOOTSTRAP:kafka1:19092,kafka2:19093,kafka3:19094}
|
kafka.bootstrapAddress=${PYMMA_KAFKA_BOOTSTRAP:kafka1:19092,kafka2:19093,kafka3:19094}
|
||||||
|
|
||||||
|
pymma.kafka.activateSsl=${PYMMA_KAFKA_ACTIVATE_SSL:false}
|
||||||
|
pymma.kafka.sslTruststoreLocation=${PYMMA_KAFKA_SSL_TRUSTSTORE_LOCATION}
|
||||||
|
pymma.kafka.sslTruststorePassword=${PYMMA_KAFKA_SSL_TRUSTSTORE_PASSWORD}
|
||||||
|
pymma.kafka.sslKeyPassword=${PYMMA_KAFKA_KEY_PASSWORD}
|
||||||
|
pymma.kafka.sslKeystorePassword=${PYMMA_KAFKA_SSL_KEYSTORE_PASSWORD}
|
||||||
|
pymma.kafka.sslKeystoreLocation=${PYMMA_KAFKA_SSL_KEYSTORE_LOCATION}
|
||||||
|
pymma.kafka.sslKeystoreType=${PYMMA_KAFKA_SSL_KEYSTORE_TYPE}
|
||||||
|
|
@ -16,7 +16,10 @@
|
||||||
*/
|
*/
|
||||||
package org.chtijbug.drools.indexer;
|
package org.chtijbug.drools.indexer;
|
||||||
|
|
||||||
|
import org.apache.kafka.clients.CommonClientConfigs;
|
||||||
import org.apache.kafka.clients.consumer.ConsumerConfig;
|
import org.apache.kafka.clients.consumer.ConsumerConfig;
|
||||||
|
import org.apache.kafka.common.config.SslConfigs;
|
||||||
|
import org.apache.kafka.common.security.auth.SecurityProtocol;
|
||||||
import org.apache.kafka.common.serialization.StringDeserializer;
|
import org.apache.kafka.common.serialization.StringDeserializer;
|
||||||
import org.chtijbug.drools.ChtijbugObjectRequest;
|
import org.chtijbug.drools.ChtijbugObjectRequest;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
|
|
@ -44,6 +47,26 @@ public class DroolsBusinessIndexerServer {
|
||||||
@Value(value = "${kafka.bootstrapAddress}")
|
@Value(value = "${kafka.bootstrapAddress}")
|
||||||
private String bootstrapAddress;
|
private String bootstrapAddress;
|
||||||
|
|
||||||
|
@Value("${pymma.kafka.activateSsl:false}")
|
||||||
|
private boolean activateSsl;
|
||||||
|
|
||||||
|
@Value("${pymma.kafka.sslTruststoreLocation:}")
|
||||||
|
private String sslTruststoreLocation;
|
||||||
|
|
||||||
|
@Value("${pymma.kafka.sslTruststorePassword:}")
|
||||||
|
private String sslTruststorePassword;
|
||||||
|
|
||||||
|
@Value("${pymma.kafka.sslKeyPassword:}")
|
||||||
|
private String sslKeyPassword;
|
||||||
|
|
||||||
|
@Value("${pymma.kafka.sslKeystorePassword:}")
|
||||||
|
private String sslKeystorePassword;
|
||||||
|
|
||||||
|
@Value("${pymma.kafka.sslKeystoreLocation:}")
|
||||||
|
private String sslKeystoreLocation;
|
||||||
|
|
||||||
|
@Value("${pymma.kafka.sslKeystoreType:}")
|
||||||
|
private String sslKeystoreType;
|
||||||
|
|
||||||
@Value(value = "${kafka.index.groupid})")
|
@Value(value = "${kafka.index.groupid})")
|
||||||
private String groupID;
|
private String groupID;
|
||||||
|
|
@ -54,6 +77,15 @@ public class DroolsBusinessIndexerServer {
|
||||||
props.put(ConsumerConfig.GROUP_ID_CONFIG, groupID);
|
props.put(ConsumerConfig.GROUP_ID_CONFIG, groupID);
|
||||||
props.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class);
|
props.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class);
|
||||||
props.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, JsonDeserializer.class);
|
props.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, JsonDeserializer.class);
|
||||||
|
if (activateSsl) {
|
||||||
|
props.put(CommonClientConfigs.SECURITY_PROTOCOL_CONFIG, SecurityProtocol.SSL.name);
|
||||||
|
props.put(SslConfigs.SSL_TRUSTSTORE_LOCATION_CONFIG, this.sslTruststoreLocation);
|
||||||
|
props.put(SslConfigs.SSL_TRUSTSTORE_PASSWORD_CONFIG, this.sslTruststorePassword);
|
||||||
|
props.put(SslConfigs.SSL_KEY_PASSWORD_CONFIG, this.sslKeyPassword);
|
||||||
|
props.put(SslConfigs.SSL_KEYSTORE_PASSWORD_CONFIG, this.sslKeystorePassword);
|
||||||
|
props.put(SslConfigs.SSL_KEYSTORE_LOCATION_CONFIG, this.sslKeystoreLocation);
|
||||||
|
props.put(SslConfigs.SSL_KEYSTORE_TYPE_CONFIG, this.sslKeystoreType);
|
||||||
|
}
|
||||||
return new DefaultKafkaConsumerFactory<>(props, new StringDeserializer(), new JsonDeserializer<>(ChtijbugObjectRequest.class));
|
return new DefaultKafkaConsumerFactory<>(props, new StringDeserializer(), new JsonDeserializer<>(ChtijbugObjectRequest.class));
|
||||||
}
|
}
|
||||||
@Bean
|
@Bean
|
||||||
|
|
|
||||||
|
|
@ -8,3 +8,10 @@ spring.data.mongodb.host=${PYMMA_MONGO_HOST:localhost:28017}
|
||||||
|
|
||||||
server.port=${port:5547}
|
server.port=${port:5547}
|
||||||
|
|
||||||
|
pymma.kafka.activateSsl=${PYMMA_KAFKA_ACTIVATE_SSL:false}
|
||||||
|
pymma.kafka.sslTruststoreLocation=${PYMMA_KAFKA_SSL_TRUSTSTORE_LOCATION}
|
||||||
|
pymma.kafka.sslTruststorePassword=${PYMMA_KAFKA_SSL_TRUSTSTORE_PASSWORD}
|
||||||
|
pymma.kafka.sslKeyPassword=${PYMMA_KAFKA_KEY_PASSWORD}
|
||||||
|
pymma.kafka.sslKeystorePassword=${PYMMA_KAFKA_SSL_KEYSTORE_PASSWORD}
|
||||||
|
pymma.kafka.sslKeystoreLocation=${PYMMA_KAFKA_SSL_KEYSTORE_LOCATION}
|
||||||
|
pymma.kafka.sslKeystoreType=${PYMMA_KAFKA_SSL_KEYSTORE_TYPE}
|
||||||
|
|
@ -26,3 +26,11 @@ spring.data.mongodb.username=${PYMMA_MONGO_USERNAME}
|
||||||
kie-wb.m2repo=${PYMMA_M2_REPO:http://kie-wb:8080/kie-wb/maven2/}
|
kie-wb.m2repo=${PYMMA_M2_REPO:http://kie-wb:8080/kie-wb/maven2/}
|
||||||
|
|
||||||
kafka.bootstrapAddress=${PYMMA_KAFKA_BOOTSTRAP:kafka1:19092,kafka2:19093,kafka3:19094}
|
kafka.bootstrapAddress=${PYMMA_KAFKA_BOOTSTRAP:kafka1:19092,kafka2:19093,kafka3:19094}
|
||||||
|
|
||||||
|
pymma.kafka.activateSsl=${PYMMA_KAFKA_ACTIVATE_SSL:false}
|
||||||
|
pymma.kafka.sslTruststoreLocation=${PYMMA_KAFKA_SSL_TRUSTSTORE_LOCATION}
|
||||||
|
pymma.kafka.sslTruststorePassword=${PYMMA_KAFKA_SSL_TRUSTSTORE_PASSWORD}
|
||||||
|
pymma.kafka.sslKeyPassword=${PYMMA_KAFKA_KEY_PASSWORD}
|
||||||
|
pymma.kafka.sslKeystorePassword=${PYMMA_KAFKA_SSL_KEYSTORE_PASSWORD}
|
||||||
|
pymma.kafka.sslKeystoreLocation=${PYMMA_KAFKA_SSL_KEYSTORE_LOCATION}
|
||||||
|
pymma.kafka.sslKeystoreType=${PYMMA_KAFKA_SSL_KEYSTORE_TYPE}
|
||||||
|
|
@ -19,9 +19,12 @@ package org.chtijbug.drools.proxy;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import com.fasterxml.jackson.databind.SerializationFeature;
|
import com.fasterxml.jackson.databind.SerializationFeature;
|
||||||
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
|
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
|
||||||
|
import org.apache.kafka.clients.CommonClientConfigs;
|
||||||
import org.apache.kafka.clients.admin.AdminClientConfig;
|
import org.apache.kafka.clients.admin.AdminClientConfig;
|
||||||
import org.apache.kafka.clients.admin.NewTopic;
|
import org.apache.kafka.clients.admin.NewTopic;
|
||||||
import org.apache.kafka.clients.producer.ProducerConfig;
|
import org.apache.kafka.clients.producer.ProducerConfig;
|
||||||
|
import org.apache.kafka.common.config.SslConfigs;
|
||||||
|
import org.apache.kafka.common.security.auth.SecurityProtocol;
|
||||||
import org.apache.kafka.common.serialization.StringSerializer;
|
import org.apache.kafka.common.serialization.StringSerializer;
|
||||||
import org.chtijbug.drools.ChtijbugObjectRequest;
|
import org.chtijbug.drools.ChtijbugObjectRequest;
|
||||||
import org.chtijbug.drools.KieContainerResponse;
|
import org.chtijbug.drools.KieContainerResponse;
|
||||||
|
|
@ -57,10 +60,40 @@ public class DroolsBusinessProxyServer {
|
||||||
@Value(value = "${kafka.bootstrapAddress}")
|
@Value(value = "${kafka.bootstrapAddress}")
|
||||||
private String bootstrapAddress;
|
private String bootstrapAddress;
|
||||||
|
|
||||||
|
@Value("${pymma.kafka.activateSsl:false}")
|
||||||
|
private boolean activateSsl;
|
||||||
|
|
||||||
|
@Value("${pymma.kafka.sslTruststoreLocation:}")
|
||||||
|
private String sslTruststoreLocation;
|
||||||
|
|
||||||
|
@Value("${pymma.kafka.sslTruststorePassword:}")
|
||||||
|
private String sslTruststorePassword;
|
||||||
|
|
||||||
|
@Value("${pymma.kafka.sslKeyPassword:}")
|
||||||
|
private String sslKeyPassword;
|
||||||
|
|
||||||
|
@Value("${pymma.kafka.sslKeystorePassword:}")
|
||||||
|
private String sslKeystorePassword;
|
||||||
|
|
||||||
|
@Value("${pymma.kafka.sslKeystoreLocation:}")
|
||||||
|
private String sslKeystoreLocation;
|
||||||
|
|
||||||
|
@Value("${pymma.kafka.sslKeystoreType:}")
|
||||||
|
private String sslKeystoreType;
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
public KafkaAdmin kafkaAdmin() {
|
public KafkaAdmin kafkaAdmin() {
|
||||||
Map<String, Object> configs = new HashMap<>();
|
Map<String, Object> configs = new HashMap<>();
|
||||||
configs.put(AdminClientConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrapAddress);
|
configs.put(AdminClientConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrapAddress);
|
||||||
|
if (activateSsl) {
|
||||||
|
configs.put(CommonClientConfigs.SECURITY_PROTOCOL_CONFIG, SecurityProtocol.SSL.name);
|
||||||
|
configs.put(SslConfigs.SSL_TRUSTSTORE_LOCATION_CONFIG, this.sslTruststoreLocation);
|
||||||
|
configs.put(SslConfigs.SSL_TRUSTSTORE_PASSWORD_CONFIG, this.sslTruststorePassword);
|
||||||
|
configs.put(SslConfigs.SSL_KEY_PASSWORD_CONFIG, this.sslKeyPassword);
|
||||||
|
configs.put(SslConfigs.SSL_KEYSTORE_PASSWORD_CONFIG, this.sslKeystorePassword);
|
||||||
|
configs.put(SslConfigs.SSL_KEYSTORE_LOCATION_CONFIG, this.sslKeystoreLocation);
|
||||||
|
configs.put(SslConfigs.SSL_KEYSTORE_TYPE_CONFIG, this.sslKeystoreType);
|
||||||
|
}
|
||||||
return new KafkaAdmin(configs);
|
return new KafkaAdmin(configs);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -83,6 +116,15 @@ public class DroolsBusinessProxyServer {
|
||||||
configProps.put(
|
configProps.put(
|
||||||
ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG,
|
ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG,
|
||||||
JsonSerializer.class);
|
JsonSerializer.class);
|
||||||
|
if (activateSsl) {
|
||||||
|
configProps.put(CommonClientConfigs.SECURITY_PROTOCOL_CONFIG, SecurityProtocol.SSL.name);
|
||||||
|
configProps.put(SslConfigs.SSL_TRUSTSTORE_LOCATION_CONFIG, this.sslTruststoreLocation);
|
||||||
|
configProps.put(SslConfigs.SSL_TRUSTSTORE_PASSWORD_CONFIG, this.sslTruststorePassword);
|
||||||
|
configProps.put(SslConfigs.SSL_KEY_PASSWORD_CONFIG, this.sslKeyPassword);
|
||||||
|
configProps.put(SslConfigs.SSL_KEYSTORE_PASSWORD_CONFIG, this.sslKeystorePassword);
|
||||||
|
configProps.put(SslConfigs.SSL_KEYSTORE_LOCATION_CONFIG, this.sslKeystoreLocation);
|
||||||
|
configProps.put(SslConfigs.SSL_KEYSTORE_TYPE_CONFIG, this.sslKeystoreType);
|
||||||
|
}
|
||||||
ObjectMapper objectMapper = new ObjectMapper();
|
ObjectMapper objectMapper = new ObjectMapper();
|
||||||
objectMapper.registerModule(new JavaTimeModule());
|
objectMapper.registerModule(new JavaTimeModule());
|
||||||
objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
|
objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
|
||||||
|
|
@ -101,6 +143,15 @@ public class DroolsBusinessProxyServer {
|
||||||
configProps.put(
|
configProps.put(
|
||||||
ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG,
|
ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG,
|
||||||
JsonSerializer.class);
|
JsonSerializer.class);
|
||||||
|
if (activateSsl) {
|
||||||
|
configProps.put(CommonClientConfigs.SECURITY_PROTOCOL_CONFIG, SecurityProtocol.SSL.name);
|
||||||
|
configProps.put(SslConfigs.SSL_TRUSTSTORE_LOCATION_CONFIG, this.sslTruststoreLocation);
|
||||||
|
configProps.put(SslConfigs.SSL_TRUSTSTORE_PASSWORD_CONFIG, this.sslTruststorePassword);
|
||||||
|
configProps.put(SslConfigs.SSL_KEY_PASSWORD_CONFIG, this.sslKeyPassword);
|
||||||
|
configProps.put(SslConfigs.SSL_KEYSTORE_PASSWORD_CONFIG, this.sslKeystorePassword);
|
||||||
|
configProps.put(SslConfigs.SSL_KEYSTORE_LOCATION_CONFIG, this.sslKeystoreLocation);
|
||||||
|
configProps.put(SslConfigs.SSL_KEYSTORE_TYPE_CONFIG, this.sslKeystoreType);
|
||||||
|
}
|
||||||
DefaultKafkaProducerFactory<String, KieContainerResponse> producer = new DefaultKafkaProducerFactory<>(configProps);
|
DefaultKafkaProducerFactory<String, KieContainerResponse> producer = new DefaultKafkaProducerFactory<>(configProps);
|
||||||
producer.transactionCapable();
|
producer.transactionCapable();
|
||||||
producer.setTransactionIdPrefix("trans");
|
producer.setTransactionIdPrefix("trans");
|
||||||
|
|
|
||||||
|
|
@ -26,3 +26,11 @@ spring.data.mongodb.host=${PYMMA_MONGO_HOST:localhost:28017}
|
||||||
eureka.client.service-url.defaultZone=http://127.0.0.1:8761/eureka/
|
eureka.client.service-url.defaultZone=http://127.0.0.1:8761/eureka/
|
||||||
spring.application.name=proxy-app-${org.kie.server.id}
|
spring.application.name=proxy-app-${org.kie.server.id}
|
||||||
kafka.bootstrapAddress=${PYMMA_KAFKA_BOOTSTRAP:localhost:9092,localhost:9093,localhost:9094}
|
kafka.bootstrapAddress=${PYMMA_KAFKA_BOOTSTRAP:localhost:9092,localhost:9093,localhost:9094}
|
||||||
|
|
||||||
|
pymma.kafka.activateSsl=${PYMMA_KAFKA_ACTIVATE_SSL:false}
|
||||||
|
pymma.kafka.sslTruststoreLocation=${PYMMA_KAFKA_SSL_TRUSTSTORE_LOCATION}
|
||||||
|
pymma.kafka.sslTruststorePassword=${PYMMA_KAFKA_SSL_TRUSTSTORE_PASSWORD}
|
||||||
|
pymma.kafka.sslKeyPassword=${PYMMA_KAFKA_KEY_PASSWORD}
|
||||||
|
pymma.kafka.sslKeystorePassword=${PYMMA_KAFKA_SSL_KEYSTORE_PASSWORD}
|
||||||
|
pymma.kafka.sslKeystoreLocation=${PYMMA_KAFKA_SSL_KEYSTORE_LOCATION}
|
||||||
|
pymma.kafka.sslKeystoreType=${PYMMA_KAFKA_SSL_KEYSTORE_TYPE}
|
||||||
|
|
@ -5,3 +5,11 @@ spring.data.mongodb.host=${PYMMA_MONGO_HOST:mongodb:27017}
|
||||||
spring.data.mongodb.password=${PYMMA_MONGO_PASSWORD}
|
spring.data.mongodb.password=${PYMMA_MONGO_PASSWORD}
|
||||||
spring.data.mongodb.username=${PYMMA_MONGO_USERNAME}
|
spring.data.mongodb.username=${PYMMA_MONGO_USERNAME}
|
||||||
kafka.bootstrapAddress=${PYMMA_KAFKA_BOOTSTRAP:kafka1:19092,kafka2:19093,kafka3:19094}
|
kafka.bootstrapAddress=${PYMMA_KAFKA_BOOTSTRAP:kafka1:19092,kafka2:19093,kafka3:19094}
|
||||||
|
|
||||||
|
pymma.kafka.activateSsl=${PYMMA_KAFKA_ACTIVATE_SSL:false}
|
||||||
|
pymma.kafka.sslTruststoreLocation=${PYMMA_KAFKA_SSL_TRUSTSTORE_LOCATION}
|
||||||
|
pymma.kafka.sslTruststorePassword=${PYMMA_KAFKA_SSL_TRUSTSTORE_PASSWORD}
|
||||||
|
pymma.kafka.sslKeyPassword=${PYMMA_KAFKA_KEY_PASSWORD}
|
||||||
|
pymma.kafka.sslKeystorePassword=${PYMMA_KAFKA_SSL_KEYSTORE_PASSWORD}
|
||||||
|
pymma.kafka.sslKeystoreLocation=${PYMMA_KAFKA_SSL_KEYSTORE_LOCATION}
|
||||||
|
pymma.kafka.sslKeystoreType=${PYMMA_KAFKA_SSL_KEYSTORE_TYPE}
|
||||||
|
|
@ -1,7 +1,10 @@
|
||||||
package org.chtijbug.drools.reverseproxy;
|
package org.chtijbug.drools.reverseproxy;
|
||||||
|
|
||||||
|
|
||||||
|
import org.apache.kafka.clients.CommonClientConfigs;
|
||||||
import org.apache.kafka.clients.consumer.ConsumerConfig;
|
import org.apache.kafka.clients.consumer.ConsumerConfig;
|
||||||
|
import org.apache.kafka.common.config.SslConfigs;
|
||||||
|
import org.apache.kafka.common.security.auth.SecurityProtocol;
|
||||||
import org.apache.kafka.common.serialization.StringDeserializer;
|
import org.apache.kafka.common.serialization.StringDeserializer;
|
||||||
import org.chtijbug.drools.ReverseProxyUpdate;
|
import org.chtijbug.drools.ReverseProxyUpdate;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
|
|
@ -24,10 +27,40 @@ public class DroolsBusinessReverseProxyServer {
|
||||||
@Value(value = "${kafka.bootstrapAddress}")
|
@Value(value = "${kafka.bootstrapAddress}")
|
||||||
private String bootstrapAddress;
|
private String bootstrapAddress;
|
||||||
|
|
||||||
|
@Value("${pymma.kafka.activateSsl:false}")
|
||||||
|
private boolean activateSsl;
|
||||||
|
|
||||||
|
@Value("${pymma.kafka.sslTruststoreLocation:}")
|
||||||
|
private String sslTruststoreLocation;
|
||||||
|
|
||||||
|
@Value("${pymma.kafka.sslTruststorePassword:}")
|
||||||
|
private String sslTruststorePassword;
|
||||||
|
|
||||||
|
@Value("${pymma.kafka.sslKeyPassword:}")
|
||||||
|
private String sslKeyPassword;
|
||||||
|
|
||||||
|
@Value("${pymma.kafka.sslKeystorePassword:}")
|
||||||
|
private String sslKeystorePassword;
|
||||||
|
|
||||||
|
@Value("${pymma.kafka.sslKeystoreLocation:}")
|
||||||
|
private String sslKeystoreLocation;
|
||||||
|
|
||||||
|
@Value("${pymma.kafka.sslKeystoreType:}")
|
||||||
|
private String sslKeystoreType;
|
||||||
|
|
||||||
public ConsumerFactory<String, ReverseProxyUpdate> mappingConsumerFactory() {
|
public ConsumerFactory<String, ReverseProxyUpdate> mappingConsumerFactory() {
|
||||||
Map<String, Object> props = new HashMap<>();
|
Map<String, Object> props = new HashMap<>();
|
||||||
props.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrapAddress);
|
props.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrapAddress);
|
||||||
props.put(ConsumerConfig.GROUP_ID_CONFIG, "greeting");
|
props.put(ConsumerConfig.GROUP_ID_CONFIG, "greeting");
|
||||||
|
if (activateSsl) {
|
||||||
|
props.put(CommonClientConfigs.SECURITY_PROTOCOL_CONFIG, SecurityProtocol.SSL.name);
|
||||||
|
props.put(SslConfigs.SSL_TRUSTSTORE_LOCATION_CONFIG, this.sslTruststoreLocation);
|
||||||
|
props.put(SslConfigs.SSL_TRUSTSTORE_PASSWORD_CONFIG, this.sslTruststorePassword);
|
||||||
|
props.put(SslConfigs.SSL_KEY_PASSWORD_CONFIG, this.sslKeyPassword);
|
||||||
|
props.put(SslConfigs.SSL_KEYSTORE_PASSWORD_CONFIG, this.sslKeystorePassword);
|
||||||
|
props.put(SslConfigs.SSL_KEYSTORE_LOCATION_CONFIG, this.sslKeystoreLocation);
|
||||||
|
props.put(SslConfigs.SSL_KEYSTORE_TYPE_CONFIG, this.sslKeystoreType);
|
||||||
|
}
|
||||||
return new DefaultKafkaConsumerFactory<>(props, new StringDeserializer(), new JsonDeserializer<>(ReverseProxyUpdate.class));
|
return new DefaultKafkaConsumerFactory<>(props, new StringDeserializer(), new JsonDeserializer<>(ReverseProxyUpdate.class));
|
||||||
}
|
}
|
||||||
@Bean
|
@Bean
|
||||||
|
|
|
||||||
|
|
@ -4,3 +4,11 @@ spring.data.mongodb.host=${PYMMA_MONGO_HOST:localhost:28017}
|
||||||
|
|
||||||
charon.tracing.enabled=true
|
charon.tracing.enabled=true
|
||||||
kafka.bootstrapAddress=${PYMMA_KAFKA_BOOTSTRAP:localhost:9092,localhost:9093,localhost:9094}
|
kafka.bootstrapAddress=${PYMMA_KAFKA_BOOTSTRAP:localhost:9092,localhost:9093,localhost:9094}
|
||||||
|
|
||||||
|
pymma.kafka.activateSsl=${PYMMA_KAFKA_ACTIVATE_SSL:false}
|
||||||
|
pymma.kafka.sslTruststoreLocation=${PYMMA_KAFKA_SSL_TRUSTSTORE_LOCATION}
|
||||||
|
pymma.kafka.sslTruststorePassword=${PYMMA_KAFKA_SSL_TRUSTSTORE_PASSWORD}
|
||||||
|
pymma.kafka.sslKeyPassword=${PYMMA_KAFKA_KEY_PASSWORD}
|
||||||
|
pymma.kafka.sslKeystorePassword=${PYMMA_KAFKA_SSL_KEYSTORE_PASSWORD}
|
||||||
|
pymma.kafka.sslKeystoreLocation=${PYMMA_KAFKA_SSL_KEYSTORE_LOCATION}
|
||||||
|
pymma.kafka.sslKeystoreType=${PYMMA_KAFKA_SSL_KEYSTORE_TYPE}
|
||||||
Loading…
Add table
editor.link_modal.header
Reference in a new issue