From ce58408c6118fd701003c48ba0ab36ab8f8ed560 Mon Sep 17 00:00:00 2001 From: Eduard Tihomirov Date: Thu, 5 Sep 2024 16:13:28 +0300 Subject: [PATCH] SUPPORT-8474: Fix --- backend/pom.xml | 12 -- .../ervu/controller/ErvuDataController.java | 168 ------------------ .../ervu/converter/ResponseDataConverter.java | 17 -- backend/src/main/java/ervu/dto/FileInfo.java | 9 - .../main/java/ervu/dto/FileInfoRequest.java | 40 ----- .../main/java/ervu/dto/FileInfoResponse.java | 13 -- .../src/main/java/ervu/dto/JournalDto.java | 9 - .../kafka/KafkaProducerErvuService.java | 45 ----- .../META-INF/jboss-deployment-structure.xml | 9 - pom.xml | 18 -- resources/src/main/resources/config/roles.xml | 9 +- 11 files changed, 8 insertions(+), 341 deletions(-) delete mode 100644 backend/src/main/java/ervu/controller/ErvuDataController.java delete mode 100644 backend/src/main/java/ervu/converter/ResponseDataConverter.java delete mode 100644 backend/src/main/java/ervu/dto/FileInfo.java delete mode 100644 backend/src/main/java/ervu/dto/FileInfoRequest.java delete mode 100644 backend/src/main/java/ervu/dto/FileInfoResponse.java delete mode 100644 backend/src/main/java/ervu/dto/JournalDto.java delete mode 100644 backend/src/main/java/ervu/service/kafka/KafkaProducerErvuService.java delete mode 100644 backend/src/main/webapp/META-INF/jboss-deployment-structure.xml diff --git a/backend/pom.xml b/backend/pom.xml index b7007171..e050c246 100644 --- a/backend/pom.xml +++ b/backend/pom.xml @@ -240,18 +240,6 @@ ru.cg.webbpm.packages.base backend - - ru.cryptopro - jcp - - - com.objsys.asn1j.runtime - asn1rt - - - ru.cryptopro.jcp - jcp-asn - ${parent.artifactId} diff --git a/backend/src/main/java/ervu/controller/ErvuDataController.java b/backend/src/main/java/ervu/controller/ErvuDataController.java deleted file mode 100644 index f57f9570..00000000 --- a/backend/src/main/java/ervu/controller/ErvuDataController.java +++ /dev/null @@ -1,168 +0,0 @@ -package ervu.controller; - -import java.time.Duration; -import java.util.Arrays; -import java.util.Collections; -import java.util.concurrent.atomic.AtomicReference; - -import javax.servlet.http.Cookie; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import ervu.converter.ResponseDataConverter; -import ervu.dto.FileInfoRequest; -import ervu.dto.JournalDto; -import ervu.model.Brhs; -import ervu.model.OrgInfo; -import ervu.service.kafka.KafkaProducerErvuService; -import esia.model.EmployeeModel; -import esia.model.OrganizationModel; -import esia.service.UlDataService; -import org.apache.kafka.clients.consumer.Consumer; -import org.apache.kafka.clients.consumer.ConsumerRecords; -import org.apache.kafka.common.utils.Bytes; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.http.MediaType; -import org.springframework.kafka.core.ConsumerFactory; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; - -/** - * @author gulnaz - */ -@RestController -public class ErvuDataController { - - private final KafkaProducerErvuService kafkaProducerErvuService; - private final ConsumerFactory consumerFactory; - private final ResponseDataConverter converter; - private final UlDataService ulDataService; - - @Value("${kafka.ervu.journal.reply.topic}") - private String replyTopic; - - public ErvuDataController(KafkaProducerErvuService kafkaProducerErvuService, - ConsumerFactory consumerFactory, - ResponseDataConverter converter, UlDataService ulDataService) { - this.kafkaProducerErvuService = kafkaProducerErvuService; - this.consumerFactory = consumerFactory; - this.converter = converter; - this.ulDataService = ulDataService; - } - - @PostMapping( - value = "/get-data", - consumes = MediaType.APPLICATION_JSON_VALUE, - produces = MediaType.APPLICATION_JSON_VALUE - ) - public JournalDto getData(@RequestBody FileInfoRequest fileInfoRequest) { - //TODO replace on interaction via ReplyingKafkaTemplate - kafkaProducerErvuService.sendRequest(fileInfoRequest); - AtomicReference journalDto = new AtomicReference<>(); - - try (Consumer consumer = - consumerFactory.createConsumer("ul-journal", null)) { - consumer.subscribe(Collections.singletonList(replyTopic)); - ConsumerRecords consumerRecords = consumer.poll(Duration.ofSeconds(10)); - consumerRecords.forEach(record -> { - - Object responseData = new Object(); -/* - //первый вариант: если ответ придет в виде json, десериализатор для консьюмера надо - // поменять - FileInfoResponse responseData = record.value(); - - // второй вариант: если ответ придет в формате protobuf, необходимо сгенерировать бины - // перед этим по прото-файлам - SummonsResponseData responseData = SummonsResponseData.parseFrom(record.value().get()); - */ - journalDto.set(converter.convert(responseData)); - }); - consumer.commitSync(); - } - - return journalDto.get(); - } - - @PostMapping( - value = "ervu/get-id", - consumes = MediaType.APPLICATION_JSON_VALUE, - produces = MediaType.APPLICATION_JSON_VALUE - ) - public void getId(HttpServletRequest request, HttpServletResponse response) { - //TODO replace on interaction via ReplyingKafkaTemplate - String accessToken = null; - Cookie[] cookies = request.getCookies(); - if (cookies != null) { - for (Cookie cookie : cookies) { - if (cookie.getName().equals("access_token")) { - accessToken = cookie.getValue(); - } - } - } - OrganizationModel organizationModel = ulDataService.getOrganizationModel(accessToken); - EmployeeModel employeeModel = ulDataService.getEmployeeModel(accessToken); - EmployeeModel chiefModel = ulDataService.getChiefEmployeeModel(accessToken); - OrgInfo orgInfo = copyToOrgInfo(organizationModel, employeeModel, chiefModel); - kafkaProducerErvuService.sendRequest(orgInfo); - - try (Consumer consumer = - consumerFactory.createConsumer("ul-ervu-id", null)) { - consumer.subscribe(Collections.singletonList(replyTopic)); - ConsumerRecords consumerRecords = consumer.poll(Duration.ofSeconds(10)); - consumerRecords.forEach(record -> { - - Object responseData = new Object(); -/* - //первый вариант: если ответ придет в виде json, десериализатор для консьюмера надо - // поменять - FileInfoResponse responseData = record.value(); - - // второй вариант: если ответ придет в формате protobuf, необходимо сгенерировать бины - // перед этим по прото-файлам - SummonsResponseData responseData = SummonsResponseData.parseFrom(record.value().get()); - */ - Cookie cookie = new Cookie("ervu_id", responseData.toString()); - cookie.setHttpOnly(true); - cookie.setSecure(true); - cookie.setPath("/"); - response.addCookie(cookie); - }); - consumer.commitSync(); - } - } - - private OrgInfo copyToOrgInfo(OrganizationModel organizationModel, EmployeeModel employeeModel, EmployeeModel chiefModel ) { - OrgInfo orgInfo = new OrgInfo(); - orgInfo.setChiefInfo(chiefModel); - orgInfo.setSenderInfo(employeeModel); - orgInfo.setBrhs( - (Brhs[]) Arrays.stream(organizationModel.getBrhs()).map(brhsModel -> { - Brhs brhs = new Brhs(); - brhs.setName(brhsModel.getName()); - brhs.setBrhOid(brhsModel.getBrhOid()); - brhs.setKpp(brhsModel.getKpp()); - brhs.setLeg(brhsModel.getLeg()); - brhs.setAddresses(brhsModel.getAddresses().getElements()); - brhs.setContacts(brhsModel.getContacts().getElements()); - return brhs; - }).toArray()); - orgInfo.setAddresses(organizationModel.getAddresses().getElements()); - orgInfo.setContacts(organizationModel.getContacts().getElements()); - orgInfo.setInn(organizationModel.getInn()); - orgInfo.setOrgFullName(organizationModel.getFullName()); - orgInfo.setOrgTypeLeg(organizationModel.getLeg()); - orgInfo.setKpp(organizationModel.getKpp()); - orgInfo.setLiquidated(organizationModel.getIsLiquidated()); - orgInfo.setOgrn(organizationModel.getOgrn()); - orgInfo.setOrgOid(organizationModel.getOid()); - orgInfo.setOrgShortName(organizationModel.getShortName()); - orgInfo.setStaffCount(organizationModel.getStaffCount()); - orgInfo.setBranchesCount((long) orgInfo.getBrhs().length); - orgInfo.setOrgType(organizationModel.getType()); - orgInfo.setOrgAgencyTerRange(organizationModel.getAgencyTerRange()); - orgInfo.setOrgAgencyType(organizationModel.getAgencyType()); - return orgInfo; - } -} diff --git a/backend/src/main/java/ervu/converter/ResponseDataConverter.java b/backend/src/main/java/ervu/converter/ResponseDataConverter.java deleted file mode 100644 index 70fc9cfa..00000000 --- a/backend/src/main/java/ervu/converter/ResponseDataConverter.java +++ /dev/null @@ -1,17 +0,0 @@ -package ervu.converter; - -import java.util.ArrayList; -import ervu.dto.JournalDto; -import org.springframework.stereotype.Component; - -/** - * @author gulnaz - */ -@Component -public class ResponseDataConverter { - - public JournalDto convert(Object responseData) { - // TODO когда будет известен формат ответа, заполнить - return new JournalDto(new ArrayList<>()); - } -} diff --git a/backend/src/main/java/ervu/dto/FileInfo.java b/backend/src/main/java/ervu/dto/FileInfo.java deleted file mode 100644 index bcb10aee..00000000 --- a/backend/src/main/java/ervu/dto/FileInfo.java +++ /dev/null @@ -1,9 +0,0 @@ -package ervu.dto; - -/** - * @author ya.kuznetsova - */ -public record FileInfo(String directionDateTime, String fileName, - String fileForm, String sender, String status, - int numberRecordsSent, int numberRecordsReceived) { -} diff --git a/backend/src/main/java/ervu/dto/FileInfoRequest.java b/backend/src/main/java/ervu/dto/FileInfoRequest.java deleted file mode 100644 index edc8fce4..00000000 --- a/backend/src/main/java/ervu/dto/FileInfoRequest.java +++ /dev/null @@ -1,40 +0,0 @@ -package ervu.dto; - -import java.time.LocalDate; -import java.time.LocalDateTime; - -/** - * @author ya.kuznetsova - */ -public record FileInfoRequest(OrgInfo orgInfo, SenderInfo senderInfo) { - - public record OrgInfo(String orgName, - String orgTypeCode, - String orgTypeName, - String ogrn, - String inn, - String kpp) { - } - - public record SenderInfo(String senderLastName, - String senderFirstName, - String senderMiddleName, - String senderRoleCode, - String senderRoleName, - String snils, - String idERN, - Document document, - Param params) { - - public record Document(String series, - String number, - LocalDate issueDate) { - } - - public record Param(Range range) { - public record Range(LocalDateTime to, - LocalDateTime from) { - } - } - } -} diff --git a/backend/src/main/java/ervu/dto/FileInfoResponse.java b/backend/src/main/java/ervu/dto/FileInfoResponse.java deleted file mode 100644 index 67fe0582..00000000 --- a/backend/src/main/java/ervu/dto/FileInfoResponse.java +++ /dev/null @@ -1,13 +0,0 @@ -package ervu.dto; - -/** - * @author ya.kuznetsova - */ - -public record FileInfoResponse(FileInfoRequest.OrgInfo orgInfo, FileInfo[] fileInfo) { - - // TODO ERVU-78 проверить структуру по списку файлов - public record FileInfo(String s3FileName, - String status) { - } -} diff --git a/backend/src/main/java/ervu/dto/JournalDto.java b/backend/src/main/java/ervu/dto/JournalDto.java deleted file mode 100644 index da3bbd4e..00000000 --- a/backend/src/main/java/ervu/dto/JournalDto.java +++ /dev/null @@ -1,9 +0,0 @@ -package ervu.dto; - -import java.util.List; - -/** - * @author ya.kuznetsova - */ -public record JournalDto(List fileInfoList) { -} diff --git a/backend/src/main/java/ervu/service/kafka/KafkaProducerErvuService.java b/backend/src/main/java/ervu/service/kafka/KafkaProducerErvuService.java deleted file mode 100644 index 62970ba9..00000000 --- a/backend/src/main/java/ervu/service/kafka/KafkaProducerErvuService.java +++ /dev/null @@ -1,45 +0,0 @@ -package ervu.service.kafka; - -import java.nio.charset.StandardCharsets; -import java.util.UUID; - -import ervu.dto.FileInfoRequest; -import ervu.model.OrgInfo; -import esia.model.OrganizationModel; -import org.apache.kafka.clients.producer.ProducerRecord; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.kafka.core.KafkaTemplate; -import org.springframework.stereotype.Service; - -/** - * @author ya.kuznetsova - */ - -@Service -public class KafkaProducerErvuService { - - @Autowired - @Qualifier("ervu") - KafkaTemplate kafkaTemplate; - - @Value("${kafka.ervu.request.topic}") - private String requestTopic; - @Value("${kafka.ervu.header.class}") - private String headerClass; - - public void sendRequest(FileInfoRequest request) { - ProducerRecord record = new ProducerRecord<>(requestTopic, - UUID.randomUUID().toString(), request); - record.headers().add("class", headerClass.getBytes(StandardCharsets.UTF_8)); - kafkaTemplate.send(record); - } - - public void sendRequest(OrgInfo request) { - ProducerRecord record = new ProducerRecord<>(requestTopic, - UUID.randomUUID().toString(), request); - record.headers().add("class", headerClass.getBytes(StandardCharsets.UTF_8)); - kafkaTemplate.send(record); - } -} diff --git a/backend/src/main/webapp/META-INF/jboss-deployment-structure.xml b/backend/src/main/webapp/META-INF/jboss-deployment-structure.xml deleted file mode 100644 index 9394e9d4..00000000 --- a/backend/src/main/webapp/META-INF/jboss-deployment-structure.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/pom.xml b/pom.xml index 57d673b9..d1fd06ed 100644 --- a/pom.xml +++ b/pom.xml @@ -356,24 +356,6 @@ slf4j-simple 1.7.28 - - ru.cryptopro - jcp - 2.0.41940-A - provided - - - ru.cryptopro.jcp - jcp-asn - 2.0.41940-A - provided - - - com.objsys.asn1j.runtime - asn1rt - 2.0.41940-A - provided - diff --git a/resources/src/main/resources/config/roles.xml b/resources/src/main/resources/config/roles.xml index 4daac307..ad235ce5 100644 --- a/resources/src/main/resources/config/roles.xml +++ b/resources/src/main/resources/config/roles.xml @@ -1,2 +1,9 @@ - + + + Юридическое лицо + + + Администратор + +