reactive-commons-java
reactive-commons-java copied to clipboard
Acerca de Reactive Commons y Secretos AWS Secrets Manager
Al usar la librería y hacer la implementación con el Broker MQ, encuentro documentacion de como configurar el MQ a traves del application.yaml.
Pero si se necesita que ese usuario y contraseña vayan en un secreto en AWS Secrets Manager no veo documentación de como implementarlo con el Reactive Commons, existe alguna interfaz para configurar la conexión al MQ programaticamente? o es necesario evolucionar el Reactive Commons con esta funcionalidad?
Hola @JorgeAlejandroAguirre puedes lograrlo de la siguiente manera:
@Bean
@Primary
public ConnectionFactoryProvider connection(RabbitConnectionProperties properties) {
final ConnectionFactory factory = new ConnectionFactory();
PropertyMapper map = PropertyMapper.get();
map.from(properties::getHostname).whenNonNull().to(factory::setHost);
map.from(properties::getPort).to(factory::setPort);
map.from(properties::getUsername).whenNonNull().to(factory::setUsername);
map.from(properties::getPassword).whenNonNull().to(factory::setPassword);
map.from(properties::getVirtualhost).whenNonNull().to(factory::setVirtualHost);
map.from(properties::isSsl).whenTrue().as(ssl -> factory).to(this::configureSsl);
return () -> factory;
}
@SneakyThrows
private void configureSsl(ConnectionFactory connectionFactory) {
connectionFactory.useSslProtocol();
}
Donde RabbitConnectionProperties
es un DTO con las propiedades de la conexión, el cual podrías construir a partir de un secreto.