UserRoleVerification modification 2

This commit is contained in:
akulikov 2023-04-07 12:46:26 +03:00
parent 5366a7d79b
commit cff4302c4a
5 changed files with 30 additions and 11 deletions

View file

@ -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);
}
}

View file

@ -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<String, Object> kafkaQueue, Producer<String, Object> kafkaProducer,
ImdgProvider imdgProvider, CompanyService companyService,
RequestHelper requestHelper, ValidationHelper validationHelper,
UserRoleVerification userRoleVerification,
@Qualifier("CompanyInfoUpdateRequestValidator")
Function<CompanyInfoUpdateRequest, IValidator> 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);
}

View file

@ -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<String, Object> kafkaQueue, Producer<String, Object> kafkaProducer,
ImdgProvider imdgProvider,
RequestHelper requestHelper,
ValidationHelper validationHelper
ValidationHelper validationHelper,
UserRoleVerification userRoleVerification
// @Qualifier("CompanyRoleSetRequestValidator")
// Function<CompanyRoleSetNewRequest, IValidator> 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);

View file

@ -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<CompanyNewRequest, IValidator> 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;

View file

@ -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<UserRoleSession> 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;
}