diff --git a/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/ValidationHelper.java b/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/ValidationHelper.java index d8024bc4e..9a3ad0c24 100644 --- a/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/ValidationHelper.java +++ b/clearing-parent/clearing-validation/src/main/java/ru/spcex/clearing/validation/common/ValidationHelper.java @@ -9,6 +9,7 @@ import ru.spcex.platform.utils.enumeration.EnumMessage; import ru.spcex.platform.utils.enumeration.IMessageResolver; import ru.spcex.platform.utils.validation.IValidator; +import java.util.Objects; import java.util.Optional; import java.util.function.Function; @@ -18,6 +19,7 @@ public class ValidationHelper { private IMessageResolver messageResolver; public ValidationHelper(IMessageResolver messageResolver) { + Objects.requireNonNull(messageResolver); this.messageResolver = messageResolver; } 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 0062de6f3..d0189af7a 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 @@ -7,6 +7,7 @@ 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; @@ -27,6 +28,6 @@ public class BeanConfiguration { @Bean @Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE) public UserRoleVerification userRoleVerification(ImdgProvider imdgProvider, IMessageResolver messageResolver) { - return new UserRoleVerification(imdgProvider, messageResolver, CompanyErrors.UserVerifyDenial); + return new UserRoleVerification(imdgProvider, messageResolver, UserRole.Admin, CompanyErrors.UserVerifyDenial); } } diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/ClearingMemberCategoryService.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/ClearingMemberCategoryService.java index 56c7335ad..b777d0a1e 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/ClearingMemberCategoryService.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/ClearingMemberCategoryService.java @@ -17,6 +17,7 @@ import ru.spcex.clearing.platform.messaging.domain.cud.company.ClearingMemberCat import ru.spcex.clearing.platform.messaging.domain.cud.company.ClearingMemberCategoryUpdateRequest; 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.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgProvider; @@ -33,12 +34,14 @@ public class ClearingMemberCategoryService extends QueueConsumer implements Init private final Function clearingMemberCategoryUpdateRequestValidator; private final Function clearingMemberCategoryDeleteRequestValidator; private final ValidationHelper validationHelper; + private final UserRoleVerification userRoleVerification; @Autowired public ClearingMemberCategoryService(Consumer kafkaQueue, Producer kafkaProducer, ImdgProvider imdgProvider, ValidationHelper validationHelper, + UserRoleVerification userRoleVerification, @Qualifier("clearingMemberCategoryNewRequestValidator") Function clearingMemberCategoryNewRequestValidator, @Qualifier("clearingMemberCategoryUpdateRequestValidator") Function clearingMemberCategoryUpdateRequestValidator, @Qualifier("clearingMemberCategoryDeleteRequestValidator") Function clearingMemberCategoryDeleteRequestValidator) { @@ -48,6 +51,7 @@ public class ClearingMemberCategoryService extends QueueConsumer implements Init this.clearingMemberCategoryUpdateRequestValidator = clearingMemberCategoryUpdateRequestValidator; this.clearingMemberCategoryDeleteRequestValidator = clearingMemberCategoryDeleteRequestValidator; this.validationHelper = validationHelper; + this.userRoleVerification = userRoleVerification; } @Override @@ -67,7 +71,10 @@ public class ClearingMemberCategoryService extends QueueConsumer implements Init private RequestInfoUpdate clearingMemberCategoryNew(BaseRequest userRequest) { log.debug("ClearingMemberCategoryNewRequest received {}", userRequest.getId()); - RequestInfoUpdate requestInfoUpdate = validationHelper.validateTillFirstError(userRequest, clearingMemberCategoryNewRequestValidator); + RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(userRequest); + if (requestInfoUpdate != null) return requestInfoUpdate; + + requestInfoUpdate = validationHelper.validateTillFirstError(userRequest, clearingMemberCategoryNewRequestValidator); if (requestInfoUpdate != null) return requestInfoUpdate; ClearingMemberCategoryNewRequest req = userRequest.getRequestPayload(); @@ -84,7 +91,10 @@ public class ClearingMemberCategoryService extends QueueConsumer implements Init public RequestInfoUpdate clearingMemberCategoryUpdate(BaseRequest userRequest) { ClearingMemberCategoryUpdateRequest req = userRequest.getRequestPayload(); - RequestInfoUpdate requestInfoUpdate = validationHelper.validateTillFirstError(userRequest, clearingMemberCategoryUpdateRequestValidator); + RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(userRequest); + if (requestInfoUpdate != null) return requestInfoUpdate; + + requestInfoUpdate = validationHelper.validateTillFirstError(userRequest, clearingMemberCategoryUpdateRequestValidator); if (requestInfoUpdate != null) return requestInfoUpdate; log.debug("ClearingMemberCategoryUpdateRequest received"); @@ -100,7 +110,10 @@ public class ClearingMemberCategoryService extends QueueConsumer implements Init private RequestInfoUpdate clearingMemberCategoryDelete(BaseRequest userRequest) { CommonDeleteRequest req = userRequest.getRequestPayload(); - RequestInfoUpdate requestInfoUpdate = validationHelper.validateTillFirstError(userRequest, clearingMemberCategoryDeleteRequestValidator); + RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(userRequest); + if (requestInfoUpdate != null) return requestInfoUpdate; + + requestInfoUpdate = validationHelper.validateTillFirstError(userRequest, clearingMemberCategoryDeleteRequestValidator); if (requestInfoUpdate != null) return requestInfoUpdate; log.debug("CommonDeleteRequest received id = {}", req.getId()); 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 8fb9950b7..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; @@ -49,7 +48,7 @@ public class CompanyInfoService extends QueueConsumer implements InitializingBea this.companyService = companyService; this.companyMap = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class); this.validationHelper = validationHelper; - this.userRoleVerification = userRoleVerification.setRoleForVerification(UserRole.Admin); + 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 085ba8243..2af7a358c 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; @@ -57,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 = userRoleVerification.setRoleForVerification(UserRole.Admin); + this.userRoleVerification = userRoleVerification; this.validationHelper = validationHelper; // this.companyDeleteRequestValidator = companyDeleteRequestValidator; this.requestHelper = requestHelper.setLogger(log); @@ -82,7 +81,8 @@ public class CompanyRoleSetService extends QueueConsumer implements Initializing CompanyRoleSetNewRequest req = companyRoleNewRequestBaseRequest.getRequestPayload(); log.debug("companyroleset-new request received, BaseRequest.id = {}", companyRoleNewRequestBaseRequest.getId()); { // Валидация, ValidationException - userRoleVerification.validateRoleAndThrow(companyRoleNewRequestBaseRequest); + RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(companyRoleNewRequestBaseRequest); + if (requestInfoUpdate != null) return requestInfoUpdate; // RequestInfoUpdate requestInfoUpdate = validationHelper.validateTillFirstError(companyRoleNewRequestBaseRequest, companyNewRequestValidator); // if (requestInfoUpdate != null) return requestInfoUpdate; } @@ -118,7 +118,8 @@ public class CompanyRoleSetService extends QueueConsumer implements Initializing CommonDeleteRequest request = companyRoleSetDeleteRequest.getRequestPayload(); log.debug("companyRoleSetDeleteRequest received id = {}", request.getId()); { // Валидация, ValidationException - userRoleVerification.validateRoleAndThrow(companyRoleSetDeleteRequest); + RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(companyRoleSetDeleteRequest); + if (requestInfoUpdate != null) return requestInfoUpdate; if (request.getId() == null) { return requestHelper.makeErrorResponse(companyRoleSetDeleteRequest, CompanyErrors.RequiredFieldEmpty, "id"); } 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 ef454ec15..3fc6f9a6e 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; @@ -80,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 = userRoleVerification.setRoleForVerification(UserRole.Admin); + this.userRoleVerification = userRoleVerification; this.validationHelper = validationHelper; this.companyNewRequestValidator = companyNewRequestValidator; this.companyUpdateRequestValidator = companyUpdateRequestValidator; @@ -107,9 +106,11 @@ public class CompanyService extends QueueConsumer implements InitializingBean { private synchronized RequestInfoUpdate createCompany(BaseRequest companyNewRequestBaseRequest) throws ValidationException { CompanyNewRequest req = companyNewRequestBaseRequest.getRequestPayload(); log.debug("company-new request received, BaseRequest.id = {}", companyNewRequestBaseRequest.getId()); - { // Валидация, ValidationException - userRoleVerification.validateRoleAndThrow(companyNewRequestBaseRequest); - RequestInfoUpdate requestInfoUpdate = validationHelper.validateTillFirstError(companyNewRequestBaseRequest, companyNewRequestValidator); + { // Валидация + RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(companyNewRequestBaseRequest); + if (requestInfoUpdate != null) return requestInfoUpdate; + + requestInfoUpdate = validationHelper.validateTillFirstError(companyNewRequestBaseRequest, companyNewRequestValidator); if (requestInfoUpdate != null) return requestInfoUpdate; } Company company = new Company(); @@ -153,9 +154,11 @@ public class CompanyService extends QueueConsumer implements InitializingBean { private synchronized RequestInfoUpdate updateCompany(BaseRequest companyUpdateRequestBaseRequest) throws ValidationException { CompanyNewRequest updateRequest = companyUpdateRequestBaseRequest.getRequestPayload(); - { // Валидация, ValidationException - userRoleVerification.validateRoleAndThrow(companyUpdateRequestBaseRequest); - RequestInfoUpdate requestInfoUpdate = validationHelper.validateTillFirstError(companyUpdateRequestBaseRequest, companyUpdateRequestValidator); + { // Валидация, + RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(companyUpdateRequestBaseRequest); + if (requestInfoUpdate != null) return requestInfoUpdate; + + requestInfoUpdate = validationHelper.validateTillFirstError(companyUpdateRequestBaseRequest, companyUpdateRequestValidator); if (requestInfoUpdate != null) return requestInfoUpdate; } ImdgTransaction transaction = imdgProvider.newTransaction(); @@ -234,9 +237,11 @@ public class CompanyService extends QueueConsumer implements InitializingBean { private synchronized RequestInfoUpdate deleteCompany(BaseRequest companyBlockRequestBaseRequest) throws ValidationException { CommonDeleteRequest request = companyBlockRequestBaseRequest.getRequestPayload(); log.debug("CommonDeleteRequest (block request) received id = {}", request.getId()); - { // Валидация, ValidationException - userRoleVerification.validateRoleAndThrow(companyBlockRequestBaseRequest); - RequestInfoUpdate requestInfoUpdate = validationHelper.validateTillFirstError(companyBlockRequestBaseRequest, companyDeleteRequestValidator); + { // Валидация + RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(companyBlockRequestBaseRequest); + if (requestInfoUpdate != null) return requestInfoUpdate; + + requestInfoUpdate = validationHelper.validateTillFirstError(companyBlockRequestBaseRequest, companyDeleteRequestValidator); if (requestInfoUpdate != null) return requestInfoUpdate; } ImdgTransaction transaction = imdgProvider.newTransaction(); diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/ContactService.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/ContactService.java index 814902983..986806075 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/ContactService.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/ContactService.java @@ -16,6 +16,7 @@ import ru.spcex.clearing.platform.messaging.domain.cud.company.ContactNewRequest import ru.spcex.clearing.platform.messaging.domain.cud.company.ContactUpdateRequest; 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.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgProvider; @@ -30,17 +31,20 @@ public class ContactService extends QueueConsumer implements InitializingBean { private final ValidationHelper validationHelper; private final Function contactNewRequestValidator; private final Function contactUpdateRequestValidator; + private final UserRoleVerification userRoleVerification; @Autowired public ContactService(Consumer kafkaQueue, Producer kafkaProducer, ImdgProvider imdgProvider, ValidationHelper validationHelper, + UserRoleVerification userRoleVerification, @Qualifier("contactNewRequestValidator") Function contactNewRequestValidator, @Qualifier("contactUpdateRequestValidator") Function contactUpdateRequestValidator) { super(kafkaQueue, kafkaProducer); this.contactMap = imdgProvider.getImdg(IMDGDistributedNames.Map_Contact, Contact.class); this.validationHelper = validationHelper; + this.userRoleVerification = userRoleVerification; this.contactNewRequestValidator = contactNewRequestValidator; this.contactUpdateRequestValidator = contactUpdateRequestValidator; } @@ -59,9 +63,10 @@ public class ContactService extends QueueConsumer implements InitializingBean { public RequestInfoUpdate contactNew(BaseRequest userRequest) { log.debug("ContactNewRequest received"); - RequestInfoUpdate requestInfoUpdate = validationHelper.validateTillFirstError( - userRequest, contactNewRequestValidator - ); + RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(userRequest); + if (requestInfoUpdate != null) return requestInfoUpdate; + + requestInfoUpdate = validationHelper.validateTillFirstError(userRequest, contactNewRequestValidator); if (requestInfoUpdate != null) return requestInfoUpdate; ContactNewRequest contactNewRequest = userRequest.getRequestPayload(); @@ -78,9 +83,10 @@ public class ContactService extends QueueConsumer implements InitializingBean { public RequestInfoUpdate contactUpdate(BaseRequest userRequest) { log.debug("ContactUpdateRequest received"); - RequestInfoUpdate requestInfoUpdate = validationHelper.validateTillFirstError( - userRequest, contactUpdateRequestValidator - ); + RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(userRequest); + if (requestInfoUpdate != null) return requestInfoUpdate; + + requestInfoUpdate = validationHelper.validateTillFirstError(userRequest, contactUpdateRequestValidator); if (requestInfoUpdate != null) return requestInfoUpdate; // Тип контакта не меняем, при валидации кидаем ошибку. diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/ProfileDocumentService.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/ProfileDocumentService.java index 8204af83a..b8f9bbdbd 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/ProfileDocumentService.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/ProfileDocumentService.java @@ -19,6 +19,7 @@ import ru.spcex.clearing.platform.messaging.domain.cud.company.ProfileDocumentUp import ru.spcex.clearing.platform.messaging.service.QueueConsumer; import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate; import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender; +import ru.spcex.clearing.util.security.UserRoleVerification; import ru.spcex.clearing.validation.common.ValidationHelper; import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.ImdgProvider; @@ -37,12 +38,14 @@ public class ProfileDocumentService extends QueueConsumer implements Initializin private final Function profileDocumentNewRequestValidator; private final Function profileDocumentUpdateRequestValidator; private final ValidationHelper validationHelper; + private final UserRoleVerification userRoleVerification; @Autowired public ProfileDocumentService(Consumer kafkaQueue, Producer kafkaProducer, KafkaSender kafkaReqProducer, ImdgProvider imdgProvider, + UserRoleVerification userRoleVerification, @Qualifier("profileDocumentNewRequestValidation") Function profileDocumentNewRequestValidator, @Qualifier("profileDocumentUpdateRequestValidation") Function profileDocumentUpdateRequestValidator, ValidationHelper validationHelper) { @@ -52,6 +55,7 @@ public class ProfileDocumentService extends QueueConsumer implements Initializin this.profileDocumentNewRequestValidator = profileDocumentNewRequestValidator; this.profileDocumentUpdateRequestValidator = profileDocumentUpdateRequestValidator; this.validationHelper = validationHelper; + this.userRoleVerification = userRoleVerification; } @Override @@ -72,9 +76,11 @@ public class ProfileDocumentService extends QueueConsumer implements Initializin private RequestInfoUpdate profileDocumentNew(BaseRequest profileDocumentNewRequestBaseRequest) { log.trace("Start processing ProfileDocumentNewRequest!"); - RequestInfoUpdate requestInfoUpdate = validationHelper.validateTillFirstError( - profileDocumentNewRequestBaseRequest, - profileDocumentNewRequestValidator + RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(profileDocumentNewRequestBaseRequest); + if (requestInfoUpdate != null) return requestInfoUpdate; + + requestInfoUpdate = validationHelper.validateTillFirstError( + profileDocumentNewRequestBaseRequest, profileDocumentNewRequestValidator ); if (requestInfoUpdate != null) return requestInfoUpdate; @@ -106,7 +112,10 @@ public class ProfileDocumentService extends QueueConsumer implements Initializin private RequestInfoUpdate profileDocumentUpdate(BaseRequest profileDocumentUpdateRequestBaseRequest) { log.trace("Start processing ProfileDocumentUpdateRequest!"); - RequestInfoUpdate requestInfoUpdate = validationHelper.validateTillFirstError( + RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(profileDocumentUpdateRequestBaseRequest); + if (requestInfoUpdate != null) return requestInfoUpdate; + + requestInfoUpdate = validationHelper.validateTillFirstError( profileDocumentUpdateRequestBaseRequest, profileDocumentUpdateRequestValidator ); 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 d1838aa96..7c1911380 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 @@ -24,7 +24,8 @@ import java.util.Objects; *

* Основная проверка прав осуществляется на frontend-api, и использовать этот компонент дополнительно не требуется. *

- * Использовать @Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE), требует задание роли через setRoleForVerification(role) + * Использовать @Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE), требует задание роли через setRoleForVerification(role). + * Либо роль можно задать во втором конструкторе, переопределив её где требуется (если используется scope prototype) */ public class UserRoleVerification { protected Logger log = LoggerFactory.getLogger(getClass()); @@ -45,6 +46,20 @@ public class UserRoleVerification { this.roleVerificationError = roleVerificationError; } + public UserRoleVerification(ImdgProvider imdg, + IMessageResolver messageResolver, + UserRole roleForVerification, + IErrorEnumId roleVerificationError) { + Objects.requireNonNull(roleForVerification); + Objects.requireNonNull(roleVerificationError); + Objects.requireNonNull(messageResolver); + Objects.requireNonNull(roleForVerification); + userRoleSessions = imdg.getImdg(IMDGDistributedNames.Map_UserRoleSession, UserRoleSession.class); + this.messageResolver = messageResolver; + this.roleVerificationError = roleVerificationError; + this.roleForVerification = roleForVerification; + } + protected boolean userHasRole(Long userId, IEnumKey role) { return userHasRole(userId, role == null ? null : role.getKey()); }