diff --git a/backend/src/main/java/ervu_business_metrics/dao/ActiveSessionDao.java b/backend/src/main/java/ervu_business_metrics/dao/ActiveSessionDao.java index 6660202..dbd0aae 100644 --- a/backend/src/main/java/ervu_business_metrics/dao/ActiveSessionDao.java +++ b/backend/src/main/java/ervu_business_metrics/dao/ActiveSessionDao.java @@ -2,9 +2,11 @@ package ervu_business_metrics.dao; import java.util.List; +import ervu_business_metrics.config.KafkaEnabledCondition; import ervu_business_metrics.model.sso.UserAccount; import ervu_business_metrics.model.sso.UserSessionInfo; import org.jooq.DSLContext; +import org.springframework.context.annotation.Conditional; import org.springframework.stereotype.Repository; import ru.micord.webbpm.ervu.business_metrics.db_beans.auth.tables.records.ActiveSessionRecord; @@ -14,6 +16,7 @@ import static ru.micord.webbpm.ervu.business_metrics.db_beans.auth.Tables.ACTIVE * @author Adel Kalimullin */ @Repository +@Conditional(KafkaEnabledCondition.class) public class ActiveSessionDao { private final DSLContext dsl; @@ -37,7 +40,7 @@ public class ActiveSessionDao { dsl.batchInsert(records).execute(); } - public void clearActiveSessions() { + public void clear() { dsl.truncate(ACTIVE_SESSION).execute(); } } diff --git a/backend/src/main/java/ervu_business_metrics/model/idm/deserializer/ReferenceEntityDeserializer.java b/backend/src/main/java/ervu_business_metrics/deserializer/ReferenceEntityDeserializer.java similarity index 94% rename from backend/src/main/java/ervu_business_metrics/model/idm/deserializer/ReferenceEntityDeserializer.java rename to backend/src/main/java/ervu_business_metrics/deserializer/ReferenceEntityDeserializer.java index b61ef05..d5aa220 100644 --- a/backend/src/main/java/ervu_business_metrics/model/idm/deserializer/ReferenceEntityDeserializer.java +++ b/backend/src/main/java/ervu_business_metrics/deserializer/ReferenceEntityDeserializer.java @@ -1,4 +1,4 @@ -package ervu_business_metrics.model.idm.deserializer; +package ervu_business_metrics.deserializer; import java.io.IOException; diff --git a/backend/src/main/java/ervu_business_metrics/model/idm/AccountData.java b/backend/src/main/java/ervu_business_metrics/model/idm/AccountData.java index c372c86..9c36953 100644 --- a/backend/src/main/java/ervu_business_metrics/model/idm/AccountData.java +++ b/backend/src/main/java/ervu_business_metrics/model/idm/AccountData.java @@ -6,7 +6,7 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import ervu_business_metrics.model.ReferenceEntity; -import ervu_business_metrics.model.idm.deserializer.ReferenceEntityDeserializer; +import ervu_business_metrics.deserializer.ReferenceEntityDeserializer; /** * @author Adel Kalimullin diff --git a/backend/src/main/java/ervu_business_metrics/model/sso/UserAccount.java b/backend/src/main/java/ervu_business_metrics/model/sso/UserAccount.java index e16de44..fcc948a 100644 --- a/backend/src/main/java/ervu_business_metrics/model/sso/UserAccount.java +++ b/backend/src/main/java/ervu_business_metrics/model/sso/UserAccount.java @@ -3,7 +3,7 @@ package ervu_business_metrics.model.sso; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import ervu_business_metrics.model.ReferenceEntity; -import ervu_business_metrics.model.idm.deserializer.ReferenceEntityDeserializer; +import ervu_business_metrics.deserializer.ReferenceEntityDeserializer; /** diff --git a/backend/src/main/java/ervu_business_metrics/service/SessionService.java b/backend/src/main/java/ervu_business_metrics/service/SessionService.java index 3734a86..be1beac 100644 --- a/backend/src/main/java/ervu_business_metrics/service/SessionService.java +++ b/backend/src/main/java/ervu_business_metrics/service/SessionService.java @@ -38,7 +38,7 @@ public class SessionService { } public void syncSessions() { - activeSessionDao.clearActiveSessions(); + activeSessionDao.clear(); List sessions = fetchSessions(); if (!sessions.isEmpty()) { diff --git a/backend/src/main/java/ervu_business_metrics/service/scheduler/SessionScheduledService.java b/backend/src/main/java/ervu_business_metrics/service/scheduler/SessionScheduledService.java index e1cecd2..c005fe9 100644 --- a/backend/src/main/java/ervu_business_metrics/service/scheduler/SessionScheduledService.java +++ b/backend/src/main/java/ervu_business_metrics/service/scheduler/SessionScheduledService.java @@ -8,7 +8,6 @@ import net.javacrumbs.shedlock.core.SchedulerLock; import org.springframework.context.annotation.Conditional; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; -import org.springframework.transaction.annotation.Transactional; /** @@ -24,14 +23,12 @@ public class SessionScheduledService { } @PostConstruct - @Transactional public void init() { run(); } @Scheduled(cron = "${session.sync.cron:0 */10 * * * *}") @SchedulerLock(name = "syncSessions") - @Transactional public void run() { sessionService.syncSessions(); } diff --git a/backend/src/main/resources/config/v_1.0/20250512-SUPPORT-9165-add_session_table.xml b/backend/src/main/resources/config/v_1.0/20250512-SUPPORT-9165-add_session_table.xml index 9932d2f..55c1030 100644 --- a/backend/src/main/resources/config/v_1.0/20250512-SUPPORT-9165-add_session_table.xml +++ b/backend/src/main/resources/config/v_1.0/20250512-SUPPORT-9165-add_session_table.xml @@ -27,6 +27,12 @@ ); ALTER TABLE auth.active_session OWNER TO ervu_business_metrics; + + COMMENT ON TABLE auth.active_session IS 'Активные сессии пользователей'; + COMMENT ON COLUMN auth.active_session.session_id IS 'Идентификатор сессии'; + COMMENT ON COLUMN auth.active_session.domain_id IS 'Идентификатор домена'; + COMMENT ON COLUMN auth.active_session.user_id IS 'Идентификатор пользователя'; + COMMENT ON COLUMN auth.active_session.ip_address IS 'IP-адрес пользователя'; @@ -41,6 +47,14 @@ CONSTRAINT shedlock_pk PRIMARY KEY (name) ); + + ALTER TABLE ervu_business_metrics.shedlock OWNER TO ervu_business_metrics; + + COMMENT ON TABLE ervu_business_metrics.shedlock IS 'Таблица для хранения блокировок ShedLock'; + COMMENT ON COLUMN ervu_business_metrics.shedlock.name IS 'Имя ресурса блокировки'; + COMMENT ON COLUMN ervu_business_metrics.shedlock.lock_until IS 'Время, до которого действует блокировка'; + COMMENT ON COLUMN ervu_business_metrics.shedlock.locked_at IS 'Время создания блокировки'; + COMMENT ON COLUMN ervu_business_metrics.shedlock.locked_by IS 'Идентификатор узла, установившего блокировку';