diff --git a/backend/src/main/java/ru/micord/ervu/security/esia/service/EsiaAuthService.java b/backend/src/main/java/ru/micord/ervu/security/esia/service/EsiaAuthService.java index a70c5ba5..3b36a016 100644 --- a/backend/src/main/java/ru/micord/ervu/security/esia/service/EsiaAuthService.java +++ b/backend/src/main/java/ru/micord/ervu/security/esia/service/EsiaAuthService.java @@ -45,7 +45,6 @@ import ru.micord.ervu.security.esia.EsiaAuthInfoStore; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.security.core.context.SecurityContext; -import org.springframework.util.StringUtils; import ru.micord.ervu.security.esia.config.EsiaConfig; import org.springframework.beans.factory.annotation.Value; import ru.micord.ervu.kafka.model.Brhs; @@ -63,6 +62,7 @@ import ru.micord.ervu.security.webbpm.jwt.helper.SecurityHelper; import ru.micord.ervu.security.webbpm.jwt.service.JwtTokenService; import ru.micord.ervu.security.webbpm.jwt.model.Token; import ru.micord.ervu.service.UploadAccessService; +import ru.micord.ervu.util.StringUtils; import ru.cg.webbpm.modules.core.runtime.api.LocalizedException; import ru.cg.webbpm.modules.core.runtime.api.MessageBundleUtils; @@ -470,8 +470,8 @@ public class EsiaAuthService { ); ErvuOrgResponse ervuOrgResponse = objectMapper.readValue(kafkaResponse, ErvuOrgResponse.class); String ervuId = ervuOrgResponse.getData().getErvuId(); - if (!StringUtils.hasText(ervuId)) { - throw new EsiaException("No ervuId for prnOid = " + prnOid); + if (!StringUtils.isValidUUID(ervuId)) { + throw new EsiaException("No valid ervuId for prnOid = " + prnOid); } return ervuId; } diff --git a/backend/src/main/java/ru/micord/ervu/util/StringUtils.java b/backend/src/main/java/ru/micord/ervu/util/StringUtils.java index 0fdfaff0..ece65d52 100644 --- a/backend/src/main/java/ru/micord/ervu/util/StringUtils.java +++ b/backend/src/main/java/ru/micord/ervu/util/StringUtils.java @@ -1,10 +1,16 @@ package ru.micord.ervu.util; + +import java.util.regex.Pattern; + import static org.apache.commons.lang3.StringUtils.capitalize; import static org.apache.commons.lang3.StringUtils.substring; public final class StringUtils { + private static final Pattern UUID_PATTERN = Pattern.compile( + "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$" + ); private StringUtils() { } @@ -18,4 +24,11 @@ public final class StringUtils { middleNameInitial ); } + + public static boolean isValidUUID(String uuid) { + if (uuid == null) { + return false; + } + return UUID_PATTERN.matcher(uuid).matches(); + } }