Merge remote-tracking branch 'origin/feature/SUPPORT-9165_sso_events' into feature/SUPPORT-9166_failed_auth
This commit is contained in:
commit
0eab68de8d
7 changed files with 22 additions and 8 deletions
|
|
@ -2,9 +2,11 @@ package ervu_business_metrics.dao;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import ervu_business_metrics.config.KafkaEnabledCondition;
|
||||||
import ervu_business_metrics.model.sso.UserAccount;
|
import ervu_business_metrics.model.sso.UserAccount;
|
||||||
import ervu_business_metrics.model.sso.UserSessionInfo;
|
import ervu_business_metrics.model.sso.UserSessionInfo;
|
||||||
import org.jooq.DSLContext;
|
import org.jooq.DSLContext;
|
||||||
|
import org.springframework.context.annotation.Conditional;
|
||||||
import org.springframework.stereotype.Repository;
|
import org.springframework.stereotype.Repository;
|
||||||
import ru.micord.webbpm.ervu.business_metrics.db_beans.auth.tables.records.ActiveSessionRecord;
|
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
|
* @author Adel Kalimullin
|
||||||
*/
|
*/
|
||||||
@Repository
|
@Repository
|
||||||
|
@Conditional(KafkaEnabledCondition.class)
|
||||||
public class ActiveSessionDao {
|
public class ActiveSessionDao {
|
||||||
private final DSLContext dsl;
|
private final DSLContext dsl;
|
||||||
|
|
||||||
|
|
@ -37,7 +40,7 @@ public class ActiveSessionDao {
|
||||||
dsl.batchInsert(records).execute();
|
dsl.batchInsert(records).execute();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void clearActiveSessions() {
|
public void clear() {
|
||||||
dsl.truncate(ACTIVE_SESSION).execute();
|
dsl.truncate(ACTIVE_SESSION).execute();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package ervu_business_metrics.model.idm.deserializer;
|
package ervu_business_metrics.deserializer;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
|
|
@ -6,7 +6,7 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
|
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
|
||||||
import ervu_business_metrics.model.ReferenceEntity;
|
import ervu_business_metrics.model.ReferenceEntity;
|
||||||
import ervu_business_metrics.model.idm.deserializer.ReferenceEntityDeserializer;
|
import ervu_business_metrics.deserializer.ReferenceEntityDeserializer;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Adel Kalimullin
|
* @author Adel Kalimullin
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ package ervu_business_metrics.model.sso;
|
||||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||||
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
|
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
|
||||||
import ervu_business_metrics.model.ReferenceEntity;
|
import ervu_business_metrics.model.ReferenceEntity;
|
||||||
import ervu_business_metrics.model.idm.deserializer.ReferenceEntityDeserializer;
|
import ervu_business_metrics.deserializer.ReferenceEntityDeserializer;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,7 @@ public class SessionService {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void syncSessions() {
|
public void syncSessions() {
|
||||||
activeSessionDao.clearActiveSessions();
|
activeSessionDao.clear();
|
||||||
|
|
||||||
List<UserSessionInfo> sessions = fetchSessions();
|
List<UserSessionInfo> sessions = fetchSessions();
|
||||||
if (!sessions.isEmpty()) {
|
if (!sessions.isEmpty()) {
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,6 @@ import net.javacrumbs.shedlock.core.SchedulerLock;
|
||||||
import org.springframework.context.annotation.Conditional;
|
import org.springframework.context.annotation.Conditional;
|
||||||
import org.springframework.scheduling.annotation.Scheduled;
|
import org.springframework.scheduling.annotation.Scheduled;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -24,14 +23,12 @@ public class SessionScheduledService {
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostConstruct
|
@PostConstruct
|
||||||
@Transactional
|
|
||||||
public void init() {
|
public void init() {
|
||||||
run();
|
run();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Scheduled(cron = "${session.sync.cron:0 */10 * * * *}")
|
@Scheduled(cron = "${session.sync.cron:0 */10 * * * *}")
|
||||||
@SchedulerLock(name = "syncSessions")
|
@SchedulerLock(name = "syncSessions")
|
||||||
@Transactional
|
|
||||||
public void run() {
|
public void run() {
|
||||||
sessionService.syncSessions();
|
sessionService.syncSessions();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -27,6 +27,12 @@
|
||||||
);
|
);
|
||||||
|
|
||||||
ALTER TABLE auth.active_session OWNER TO ervu_business_metrics;
|
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-адрес пользователя';
|
||||||
</sql>
|
</sql>
|
||||||
</changeSet>
|
</changeSet>
|
||||||
|
|
||||||
|
|
@ -41,6 +47,14 @@
|
||||||
|
|
||||||
CONSTRAINT shedlock_pk PRIMARY KEY (name)
|
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 'Идентификатор узла, установившего блокировку';
|
||||||
</sql>
|
</sql>
|
||||||
</changeSet>
|
</changeSet>
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue