diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/BeanConfiguration.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/BeanConfiguration.java index 3bb06b41e..18f1e518c 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/BeanConfiguration.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/BeanConfiguration.java @@ -4,7 +4,11 @@ import org.springframework.beans.factory.config.ConfigurableBeanFactory; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Scope; +import ru.spcex.clearing.company.error.CompanyErrors; import ru.spcex.clearing.company.util.RequestHelper; +import ru.spcex.clearing.util.security.UserRoleVerification; +import ru.spcex.platform.enumeration.UserRole; +import ru.spcex.platform.imdg.api.ImdgProvider; import ru.spcex.platform.utils.enumeration.IMessageResolver; import ru.spcex.platform.utils.enumeration.SimpleMessageResolver; @@ -21,4 +25,8 @@ public class BeanConfiguration { return new RequestHelper(messageResolver); } + @Bean + public UserRoleVerification userRoleVerification(ImdgProvider imdgProvider, IMessageResolver messageResolver) { + return new UserRoleVerification(imdgProvider, messageResolver, UserRole.Admin, CompanyErrors.UserVerifyDenial); + } } diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyInfoService.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyInfoService.java index c23d47b1e..6fad333bf 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyInfoService.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyInfoService.java @@ -20,7 +20,6 @@ import ru.spcex.clearing.platform.messaging.service.QueueConsumer; import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate; import ru.spcex.clearing.util.security.UserRoleVerification; import ru.spcex.clearing.validation.common.ValidationHelper; -import ru.spcex.platform.enumeration.UserRole; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgProvider; import ru.spcex.platform.utils.validation.IValidator; @@ -42,13 +41,14 @@ public class CompanyInfoService extends QueueConsumer implements InitializingBea public CompanyInfoService(Consumer kafkaQueue, Producer kafkaProducer, ImdgProvider imdgProvider, CompanyService companyService, RequestHelper requestHelper, ValidationHelper validationHelper, + UserRoleVerification userRoleVerification, @Qualifier("CompanyInfoUpdateRequestValidator") Function companyInfoUpdateRequestValidator) { super(kafkaQueue, kafkaProducer); this.companyService = companyService; this.companyMap = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class); this.validationHelper = validationHelper; - this.userRoleVerification = new UserRoleVerification(imdgProvider, UserRole.Admin, CompanyErrors.UserVerifyDenial); + this.userRoleVerification = userRoleVerification; this.companyInfoUpdateRequestValidator = companyInfoUpdateRequestValidator; this.requestHelper = requestHelper.setLogger(log); } diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyRoleSetService.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyRoleSetService.java index e1b428cce..2a1b37691 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyRoleSetService.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyRoleSetService.java @@ -19,7 +19,6 @@ import ru.spcex.clearing.platform.messaging.service.QueueConsumer; import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate; import ru.spcex.clearing.util.security.UserRoleVerification; import ru.spcex.clearing.validation.common.ValidationHelper; -import ru.spcex.platform.enumeration.UserRole; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgId; import ru.spcex.platform.imdg.api.ImdgProvider; @@ -48,7 +47,8 @@ public class CompanyRoleSetService extends QueueConsumer implements Initializing public CompanyRoleSetService(Consumer kafkaQueue, Producer kafkaProducer, ImdgProvider imdgProvider, RequestHelper requestHelper, - ValidationHelper validationHelper + ValidationHelper validationHelper, + UserRoleVerification userRoleVerification // @Qualifier("CompanyRoleSetRequestValidator") // Function companyNewRequestValidator, ) { @@ -56,7 +56,7 @@ public class CompanyRoleSetService extends QueueConsumer implements Initializing this.imdgProvider = imdgProvider; this.companyRoleSetMap = imdgProvider.getImdg(IMDGDistributedNames.Map_CompanyRoleSet, CompanyRoleSet.class); this.idSequence = imdgProvider.getImdgIdGenerator(); - this.userRoleVerification = new UserRoleVerification(imdgProvider, UserRole.Admin, CompanyErrors.UserVerifyDenial); + this.userRoleVerification = userRoleVerification; this.validationHelper = validationHelper; // this.companyDeleteRequestValidator = companyDeleteRequestValidator; this.requestHelper = requestHelper.setLogger(log); diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyService.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyService.java index a7cec33f1..083eefcb8 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyService.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/CompanyService.java @@ -22,7 +22,6 @@ import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate; import ru.spcex.clearing.util.security.UserRoleVerification; import ru.spcex.clearing.validation.common.ValidationHelper; import ru.spcex.platform.enumeration.CompanySymbol; -import ru.spcex.platform.enumeration.UserRole; import ru.spcex.platform.enumeration.WorkflowStatus; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgId; @@ -62,6 +61,7 @@ public class CompanyService extends QueueConsumer implements InitializingBean { ImdgProvider imdgProvider, RequestHelper requestHelper, ValidationHelper validationHelper, + UserRoleVerification userRoleVerification, @Qualifier("companyNewRequestValidator") Function companyNewRequestValidator, @Qualifier("companyUpdateRequestValidator") @@ -79,7 +79,7 @@ public class CompanyService extends QueueConsumer implements InitializingBean { this.companySymbolsMap = imdgProvider.getImdg(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class); this.idSequence = imdgProvider.getImdgIdGenerator(); - this.userRoleVerification = new UserRoleVerification(imdgProvider, UserRole.Admin, CompanyErrors.UserVerifyDenial); + this.userRoleVerification = userRoleVerification; this.validationHelper = validationHelper; this.companyNewRequestValidator = companyNewRequestValidator; this.companyUpdateRequestValidator = companyUpdateRequestValidator; diff --git a/clearing-parent/security-util/src/main/java/ru/spcex/clearing/util/security/UserRoleVerification.java b/clearing-parent/security-util/src/main/java/ru/spcex/clearing/util/security/UserRoleVerification.java index 9cefe8add..b93c7ca27 100644 --- a/clearing-parent/security-util/src/main/java/ru/spcex/clearing/util/security/UserRoleVerification.java +++ b/clearing-parent/security-util/src/main/java/ru/spcex/clearing/util/security/UserRoleVerification.java @@ -10,11 +10,14 @@ import ru.spcex.platform.enumeration.Status; import ru.spcex.platform.enumeration.UserRole; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgProvider; +import ru.spcex.platform.utils.enumeration.EnumMessage; import ru.spcex.platform.utils.enumeration.IEnumKey; import ru.spcex.platform.utils.enumeration.IErrorEnumId; +import ru.spcex.platform.utils.enumeration.IMessageResolver; import ru.spcex.platform.utils.error.ValidationException; import java.util.Collection; +import java.util.Objects; /** * Проверка дополнительных прав пользователя. @@ -27,9 +30,16 @@ public class UserRoleVerification { protected Imdg userRoleSessions; protected UserRole roleForVerification; protected IErrorEnumId roleVerificationError; + protected IMessageResolver messageResolver; - public UserRoleVerification(ImdgProvider imdg, UserRole roleForVerification, IErrorEnumId roleVerificationError) { + public UserRoleVerification(ImdgProvider imdg, + IMessageResolver messageResolver, + UserRole roleForVerification, + IErrorEnumId roleVerificationError) { + Objects.requireNonNull(roleForVerification); + Objects.requireNonNull(roleVerificationError); userRoleSessions = imdg.getImdg(IMDGDistributedNames.Map_UserRoleSession, UserRoleSession.class); + this.messageResolver = messageResolver; this.roleForVerification = roleForVerification; this.roleVerificationError = roleVerificationError; } @@ -60,13 +70,14 @@ public class UserRoleVerification { public RequestInfoUpdate validateRoleAndGetResult(BaseRequest req) { Long requesterId = req.getUserId(); if (requesterId != null && !userHasRole(requesterId, roleForVerification)) { - log.trace("User {} has no role to allow this action", requesterId); + log.debug("User {} has no role to allow this action", requesterId); + String errMsg = messageResolver.resolve(new EnumMessage(roleVerificationError, requesterId)); return new RequestInfoUpdate() .setId(req.getId()) .setStatus(ru.spcex.clearing.platform.messaging.service.Status.Error) - .setMessage("User (id %d) has no role to allow this action".formatted(requesterId)); + .setMessage(errMsg); } else { - log.trace("Request without userId"); + log.debug("Request without userId"); } return null; }