Merge branch 'develop' into feature/SUPPORT-8822

# Conflicts:
#	backend/src/main/java/ru/micord/ervu/security/esia/EsiaAuthInfoStore.java
#	backend/src/main/java/ru/micord/ervu/security/esia/service/EsiaAuthService.java
This commit is contained in:
Eduard Tihomirov 2025-04-25 13:22:41 +03:00
commit 3a0031180e
169 changed files with 1103 additions and 513 deletions

View file

@ -2,7 +2,6 @@ package ru.micord.ervu.audit.constants;
import java.util.Map;
import java.util.Optional;
/**
* @author Adel Kalimullin
@ -18,7 +17,8 @@ public final class AuditConstants {
"/", "Главная",
"/mydata", "Мои данные",
"/subpoena", "Повестки",
"/restriction", "Временные меры"
"/restriction", "Временные меры",
"/home", "Домашняя страница ЛК РП ФЛ"
);
private static final Map<String, String> downloadTypes = Map.of(
@ -27,14 +27,11 @@ public final class AuditConstants {
);
public static String getRouteDescription(String route) {
return Optional.ofNullable(routeDescriptions.get(route))
.orElseThrow(() -> new IllegalArgumentException("Invalid route :" + route));
return routeDescriptions.getOrDefault(route, "Неизвестный маршрут");
}
public static String getDownloadType(String formatRegistry) {
return Optional.ofNullable(downloadTypes.get(formatRegistry))
.orElseThrow(
() -> new IllegalArgumentException("Invalid formatRegistry :" + formatRegistry));
return downloadTypes.getOrDefault(formatRegistry, "Неизвестный формат");
}
private AuditConstants() {

View file

@ -29,17 +29,17 @@ import java.util.UUID;
@EnableKafka
public class ReplyingKafkaConfig {
@Value("${ervu.kafka.bootstrap.servers}")
@Value("${kafka.hosts}")
private String bootstrapServers;
@Value("${ervu.kafka.security.protocol}")
@Value("${kafka.auth_sec_proto}")
private String securityProtocol;
@Value("${ervu.kafka.doc.login.module}")
@Value("${kafka.auth_sasl_module}")
private String loginModule;
@Value("${ervu.kafka.username}")
@Value("${kafka.user}")
private String username;
@Value("${ervu.kafka.password}")
@Value("${kafka.pass}")
private String password;
@Value("${ervu.kafka.sasl.mechanism}")
@Value("${kafka.auth_sasl_mech}")
private String saslMechanism;
@Value("${ervu.kafka.reply.topic}")

View file

@ -8,10 +8,13 @@ import java.util.concurrent.CopyOnWriteArrayList;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import ru.micord.ervu.security.esia.exception.EsiaException;
import org.springframework.context.support.MessageSourceAccessor;
import ru.micord.ervu.security.esia.model.ExpiringState;
import ru.micord.ervu.security.esia.model.ExpiringToken;
import ru.cg.webbpm.modules.core.runtime.api.LocalizedException;
import ru.cg.webbpm.modules.core.runtime.api.MessageBundleUtils;
/**
* @author Eduard Tihomirov
*/
@ -20,6 +23,8 @@ public class EsiaAuthInfoStore {
private static final Map<String, ExpiringToken> ACCESS_TOKENS_MAP = new ConcurrentHashMap<>();
private static final Map<String, ExpiringToken> REFRESH_TOKENS_MAP = new ConcurrentHashMap<>();
private static final Map<String, List<ExpiringState>> PRNS_UUID_STATE_MAP = new ConcurrentHashMap<>();
private static final MessageSourceAccessor MESSAGE_SOURCE = MessageBundleUtils.createAccessor(
"messages/common_errors_messages");
public static void addAccessToken(String prnOid, String token, long expiresIn) {
if (token != null) {
@ -89,8 +94,11 @@ public class EsiaAuthInfoStore {
if (states == null) {
states = new CopyOnWriteArrayList<>();
}
else {
states.removeIf(ExpiringState::isExpired);
}
if (states.size() >= attemptsCount) {
throw new EsiaException("The number of login attempts has been exceeded.");
throw new LocalizedException("login_attempts_exceeded", MESSAGE_SOURCE);
}
states.add(newState);
return states;

View file

@ -34,6 +34,8 @@ import org.springframework.security.core.context.SecurityContext;
import ru.micord.ervu.audit.constants.AuditConstants;
import ru.micord.ervu.audit.service.AuditService;
import org.springframework.web.util.WebUtils;
import ru.micord.ervu.audit.constants.AuditConstants;
import ru.micord.ervu.audit.service.AuditService;
import ru.micord.ervu.kafka.model.Document;
import ru.micord.ervu.kafka.model.Person;
import ru.micord.ervu.kafka.model.Response;
@ -59,6 +61,9 @@ import ru.micord.ervu.security.webbpm.jwt.model.Token;
import ru.cg.webbpm.modules.core.runtime.api.MessageBundleUtils;
import static ru.micord.ervu.security.webbpm.jwt.util.SecurityUtil.getCurrentUserEsiaId;
import ru.cg.webbpm.modules.core.runtime.api.MessageBundleUtils;
/**
* @author Eduard Tihomirov
*/

View file

@ -1,2 +1,3 @@
kafka_reply_timeout=Превышено время ожидания ответа от сервера. Попробуйте повторить запрос позже или обратитесь к системному администратору
access_denied=Доступ запрещен. Пользователь должен быть включен в группу "Сотрудник, ответственный за военно-учетную работу" в ЕСИА
kafka_reply_timeout=Превышено время ожидания ответа от сервера.
access_denied=Доступ запрещен. Пользователь должен быть включен в группу "Сотрудник, ответственный за военно-учетную работу" в ЕСИА
login_attempts_exceeded=Слишком большое количество попыток авторизоваться в ЕСИА за короткий промежуток времени. Рекомендуем почистить cookie и cash браузера, после повторить авторизацию.

View file

@ -1,2 +1,3 @@
kafka_reply_timeout=Превышено время ожидания ответа от сервера. Попробуйте повторить запрос позже или обратитесь к системному администратору
access_denied=Доступ запрещен. Пользователь должен быть включен в группу "Сотрудник, ответственный за военно-учетную работу" в ЕСИА
kafka_reply_timeout=Превышено время ожидания ответа от сервера.
access_denied=Доступ запрещен. Пользователь должен быть включен в группу "Сотрудник, ответственный за военно-учетную работу" в ЕСИА
login_attempts_exceeded=Слишком большое количество попыток авторизоваться в ЕСИА за короткий промежуток времени. Рекомендуем почистить cookie и cash браузера, после повторить авторизацию.