diff --git a/ems-core/src/main/java/it/integry/security/cache/SecretKeyCacheComponent.java b/ems-core/src/main/java/it/integry/security/cache/SecretKeyCacheComponent.java index 51ffb31f62..f2b49a4226 100644 --- a/ems-core/src/main/java/it/integry/security/cache/SecretKeyCacheComponent.java +++ b/ems-core/src/main/java/it/integry/security/cache/SecretKeyCacheComponent.java @@ -1,13 +1,12 @@ package it.integry.security.cache; -import com.annimon.stream.Stream; import io.jsonwebtoken.io.Decoders; import io.jsonwebtoken.security.Keys; import it.integry.annotations.PostContextConstruct; -import it.integry.ems.datasource.DataSource; import it.integry.ems.looper.service.LooperService; import it.integry.ems.settings.Model.AvailableConnectionsModel; import it.integry.ems.settings.Model.SettingsModel; +import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager; import it.integry.ems.utility.UtilityDebug; import it.integry.ems_model.entity.Azienda; import org.apache.logging.log4j.LogManager; @@ -16,7 +15,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import javax.crypto.SecretKey; -import java.sql.SQLException; import java.util.HashMap; import java.util.List; @@ -44,27 +42,16 @@ public class SecretKeyCacheComponent { } private void updateInternalCache() { - List availableConnectionsModels = Stream.of(settingsModel.getAvailableConnections()) - .filter(AvailableConnectionsModel::getInternalDb) - .toList(); + List availableConnectionsModels = settingsModel.getAvailableConnections(true); for (AvailableConnectionsModel model : availableConnectionsModels) { - DataSource ds = new DataSource(); + try (MultiDBTransactionManager multiDBTransactionManager = new MultiDBTransactionManager(model)) { - try { - ds.initialize(model.getProfileName()); - - Azienda azienda = Azienda.getDefaultAzienda(ds.getConnection()); + Azienda azienda = Azienda.getDefaultAzienda(multiDBTransactionManager.getPrimaryConnection()); internalCache.put(model.getDbName().toLowerCase(), Keys.hmacShaKeyFor(Decoders.BASE64.decode(azienda.getJwtSecretKey()))); } catch (Exception ex) { logger.info(String.format("Cannot find %s database", model.getDbName()), ex); - } finally { - try { - ds.forceClose(); - } catch (SQLException e) { - logger.error(SecretKeyCacheComponent.class.getSimpleName(), e); - } } } }