From c6422e3238fb2cadb17d546b6ea555cfb6e0694c Mon Sep 17 00:00:00 2001 From: Eduard Tihomirov Date: Wed, 11 Sep 2024 15:54:46 +0300 Subject: [PATCH] SUPPORT-8470: Fix --- .../main/java/ervu/KafkaProducerConfig.java | 12 +- .../EmployeeInfoFileUploadController.java | 20 +++- .../EmployeeInfoFileUploadService.java | 47 ++++++-- .../EmployeeInfoKafkaMessageService.java | 70 +++++------- .../model/EmployeeInfoKafkaMessage.java | 15 +-- .../service/fileupload/model/FileInfo.java | 14 ++- .../service/fileupload/model/FileStatus.java | 37 ++++++ .../service/fileupload/model/OrgInfo.java | 54 +++------ .../fileupload/model/PassportInfo.java | 54 --------- .../service/fileupload/model/SenderInfo.java | 106 ------------------ .../ervu/kafka/ReplyingKafkaConfig.java | 21 ++++ ...-11--01-add-new-column-interaction-log.xml | 15 +++ config/asd | 1 + config/standalone/dev/standalone.xml | 11 +- 14 files changed, 199 insertions(+), 278 deletions(-) create mode 100644 backend/src/main/java/ervu/service/fileupload/model/FileStatus.java delete mode 100644 backend/src/main/java/ervu/service/fileupload/model/PassportInfo.java delete mode 100644 backend/src/main/java/ervu/service/fileupload/model/SenderInfo.java create mode 100644 backend/src/main/resources/config/v_1.0/2024-09-11--01-add-new-column-interaction-log.xml create mode 100644 config/asd diff --git a/backend/src/main/java/ervu/KafkaProducerConfig.java b/backend/src/main/java/ervu/KafkaProducerConfig.java index 6b2d98c9..8b705f65 100644 --- a/backend/src/main/java/ervu/KafkaProducerConfig.java +++ b/backend/src/main/java/ervu/KafkaProducerConfig.java @@ -19,17 +19,17 @@ import org.springframework.kafka.core.ProducerFactory; */ @Configuration public class KafkaProducerConfig { - @Value("${kafka.send.url}") + @Value("${av-kafka.send.url}") private String kafkaUrl; - @Value("${kafka.send.security.protocol}") + @Value("${av-kafka.send.security.protocol}") private String securityProtocol; - @Value("${kafka.send.login.module:org.apache.kafka.common.security.scram.ScramLoginModule}") + @Value("${av-kafka.send.login.module:org.apache.kafka.common.security.scram.ScramLoginModule}") private String loginModule; - @Value("${kafka.send.username}") + @Value("${av-kafka.send.username}") private String username; - @Value("${kafka.send.password}") + @Value("${av-kafka.send.password}") private String password; - @Value("${kafka.sasl.mechanism}") + @Value("${av-kafka.sasl.mechanism}") private String saslMechanism; @Bean diff --git a/backend/src/main/java/ervu/controller/EmployeeInfoFileUploadController.java b/backend/src/main/java/ervu/controller/EmployeeInfoFileUploadController.java index 5ef978e2..d9e8b0c4 100644 --- a/backend/src/main/java/ervu/controller/EmployeeInfoFileUploadController.java +++ b/backend/src/main/java/ervu/controller/EmployeeInfoFileUploadController.java @@ -1,5 +1,8 @@ package ervu.controller; +import javax.servlet.http.Cookie; +import javax.servlet.http.HttpServletRequest; + import ervu.service.fileupload.EmployeeInfoFileUploadService; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; @@ -18,8 +21,21 @@ public class EmployeeInfoFileUploadController { @RequestMapping(value = "/employee/document", method = RequestMethod.POST) public ResponseEntity saveEmployeeInformationFile(@RequestParam("file") MultipartFile multipartFile, - @RequestHeader("X-Employee-Info-File-Form-Type") String formType) { - if (this.fileUploadService.saveEmployeeInformationFile(multipartFile, formType)) { + @RequestHeader("X-Employee-Info-File-Form-Type") String formType, HttpServletRequest request) { + String accessToken = null; + String authToken = null; + Cookie[] cookies = request.getCookies(); + if (cookies != null) { + for (Cookie cookie : cookies) { + if (cookie.getName().equals("access_token")) { + accessToken = cookie.getValue(); + } + else if (cookie.getName().equals("auth_token")) { + authToken = cookie.getValue(); + } + } + } + if (accessToken != null && this.fileUploadService.saveEmployeeInformationFile(multipartFile, formType, accessToken, authToken)) { return ResponseEntity.ok("File successfully uploaded."); } else { diff --git a/backend/src/main/java/ervu/service/fileupload/EmployeeInfoFileUploadService.java b/backend/src/main/java/ervu/service/fileupload/EmployeeInfoFileUploadService.java index 825cfcbd..b2c2abed 100644 --- a/backend/src/main/java/ervu/service/fileupload/EmployeeInfoFileUploadService.java +++ b/backend/src/main/java/ervu/service/fileupload/EmployeeInfoFileUploadService.java @@ -1,6 +1,8 @@ package ervu.service.fileupload; +import java.sql.Timestamp; import java.time.LocalDateTime; +import java.time.ZonedDateTime; import java.time.format.DateTimeFormatter; import java.util.UUID; @@ -8,13 +10,19 @@ import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import ervu.client.fileupload.FileUploadWebDavClient; import ervu.service.fileupload.model.EmployeeInfoKafkaMessage; +import ervu.service.fileupload.model.FileStatus; import org.apache.kafka.clients.producer.ProducerRecord; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.kafka.core.KafkaTemplate; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; +import ru.micord.ervu.security.esia.model.EmployeeModel; +import ru.micord.ervu.security.esia.model.PersonModel; +import ru.micord.ervu.security.esia.service.UlDataService; +import ru.micord.ervu.service.StatusService; /** * @author Alexandr Shalaginov @@ -22,12 +30,15 @@ import org.springframework.web.multipart.MultipartFile; @Service public class EmployeeInfoFileUploadService { private static final Logger logger = LoggerFactory.getLogger(EmployeeInfoFileUploadService.class); + private static final String FORMAT = "dd.MM.yyyy HH:mm"; private final FileUploadWebDavClient fileWebDavUploadClient; private final EmployeeInfoKafkaMessageService employeeInfoKafkaMessageService; private final KafkaTemplate kafkaTemplate; + private final StatusService statusService; + private final UlDataService ulDataService; - @Value("${kafka.send.message.topic.name:employee-files}") + @Value("${av-kafka.send.message.topic.name:employee-files}") private String kafkaTopicName; @Value("${file.webdav.upload.url:http://localhost:5757}") private String url; @@ -38,25 +49,43 @@ public class EmployeeInfoFileUploadService { public EmployeeInfoFileUploadService( FileUploadWebDavClient fileWebDavUploadClient, - EmployeeInfoKafkaMessageService employeeInfoKafkaMessageService, KafkaTemplate kafkaTemplate) { + EmployeeInfoKafkaMessageService employeeInfoKafkaMessageService, + KafkaTemplate kafkaTemplate, StatusService statusService, + UlDataService ulDataService) { this.fileWebDavUploadClient = fileWebDavUploadClient; this.employeeInfoKafkaMessageService = employeeInfoKafkaMessageService; this.kafkaTemplate = kafkaTemplate; + this.statusService = statusService; + this.ulDataService = ulDataService; } - public boolean saveEmployeeInformationFile(MultipartFile multipartFile, String formType) { + public boolean saveEmployeeInformationFile(MultipartFile multipartFile, String formType, + String accessToken, String authToken) { String fileUploadUrl = this.url + "/" + getNewFilename(multipartFile.getOriginalFilename()); - String departureDateTime = getDepartureDateTime(); + LocalDateTime now = LocalDateTime.now(); + String departureDateTime = now.format(DateTimeFormatter.ofPattern(FORMAT));; + String timeZone = getTimeZone(); if (this.fileWebDavUploadClient.webDavUploadFile(fileUploadUrl, username, password, multipartFile)) { + FileStatus fileStatus = new FileStatus(); + fileStatus.setStatus("Загрузка."); + fileStatus.setCode("01"); + fileStatus.setDescription("Файл принят до проверки на вирусы."); + String fileName = multipartFile.getOriginalFilename(); + EmployeeInfoFileFormType employeeInfoFileFormType = EmployeeInfoFileFormType.valueOf(formType); String jsonMessage = getJsonKafkaMessage( employeeInfoKafkaMessageService.getKafkaMessage( fileUploadUrl, - multipartFile.getOriginalFilename(), - EmployeeInfoFileFormType.valueOf(formType), - departureDateTime + fileName, + employeeInfoFileFormType, + departureDateTime, + accessToken, authToken, timeZone, fileStatus ) ); + EmployeeModel employeeModel = ulDataService.getEmployeeModel(accessToken); + PersonModel personModel = employeeModel.getPerson(); + statusService.setStatus(fileStatus.getStatus(), fileName, employeeInfoFileFormType.getFilePatternName(), Timestamp.valueOf(now), + personModel.getLastName() + " " + personModel.getFirstName().charAt(0) + ". " + personModel.getMiddleName().charAt(0) + ".", (int) multipartFile.getSize()); return sendMessage(jsonMessage); } else { @@ -100,7 +129,7 @@ public class EmployeeInfoFileUploadService { } } - private String getDepartureDateTime() { - return LocalDateTime.now().format(DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm")); + private String getTimeZone() { + return ZonedDateTime.now().getOffset().toString(); } } \ No newline at end of file diff --git a/backend/src/main/java/ervu/service/fileupload/EmployeeInfoKafkaMessageService.java b/backend/src/main/java/ervu/service/fileupload/EmployeeInfoKafkaMessageService.java index a69a38b2..b60a80c2 100644 --- a/backend/src/main/java/ervu/service/fileupload/EmployeeInfoKafkaMessageService.java +++ b/backend/src/main/java/ervu/service/fileupload/EmployeeInfoKafkaMessageService.java @@ -2,10 +2,13 @@ package ervu.service.fileupload; import ervu.service.fileupload.model.EmployeeInfoKafkaMessage; import ervu.service.fileupload.model.FileInfo; +import ervu.service.fileupload.model.FileStatus; import ervu.service.fileupload.model.OrgInfo; -import ervu.service.fileupload.model.SenderInfo; -import ru.micord.ervu.security.esia.service.UlDataService; import org.springframework.stereotype.Service; +import ru.micord.ervu.security.esia.model.OrganizationModel; +import ru.micord.ervu.security.esia.service.UlDataService; +import ru.micord.ervu.security.webbpm.jwt.model.Token; +import ru.micord.ervu.security.webbpm.jwt.service.JwtTokenService; /** * @author Alexandr Shalaginov @@ -13,67 +16,48 @@ import org.springframework.stereotype.Service; @Service public class EmployeeInfoKafkaMessageService { private final UlDataService ulDataService; + private final JwtTokenService jwtTokenService; - public EmployeeInfoKafkaMessageService(UlDataService ulDataService) { + + public EmployeeInfoKafkaMessageService(UlDataService ulDataService, JwtTokenService jwtTokenService) { this.ulDataService = ulDataService; + this.jwtTokenService = jwtTokenService; } public EmployeeInfoKafkaMessage getKafkaMessage(String fileNameBase, String fileName, - EmployeeInfoFileFormType formType, String departureDateTime) { + EmployeeInfoFileFormType formType, String departureDateTime, String accessToken, + String authToken, String timeZone, FileStatus fileStatus) { return new EmployeeInfoKafkaMessage( - getOrgInfo(), - getSenderInfo(), + getOrgInfo(accessToken, authToken), getFileInfo( fileNameBase, fileName, formType, - departureDateTime + departureDateTime, + timeZone, + fileStatus ) ); } - //TODO: refactor SUPPORT-8381 - private OrgInfo getOrgInfo() { -// OrganizationModel organizationModel = ulDataService.getOrganizationModel(); -// return new OrgInfo( -// organizationModel.getShortName(), -// organizationModel.getLeg(), -// organizationModel.getLegName(), -// organizationModel.getOgrn(), -// organizationModel.getInn(), -// organizationModel.getKpp() -// ); - return null; - } - - private SenderInfo getSenderInfo() { -// MillitaryRegistrationPersonModel personModel = ulDataService.getPersonModel(); -// return new SenderInfo( -// personModel.getLastName(), -// personModel.getFirstName(), -// personModel.getMiddleName(), -// personModel.getBirthday(), -// personModel.getRoleCode(), -// personModel.getRoleName(), -// personModel.getSnils(), -// personModel.getIdERN(), -// new PassportInfo( -// personModel.getPassportSeries(), -// personModel.getPassportNumber(), -// personModel.getPassportIssueDate() -// ) -// ); - return null; - } - private FileInfo getFileInfo(String fileNameBase, String fileName, - EmployeeInfoFileFormType formType, String departureDateTime) { + EmployeeInfoFileFormType formType, String departureDateTime, String timeZone, + FileStatus fileStatus) { return new FileInfo( fileNameBase, fileName, formType.getFilePatternCode(), formType.getFilePatternName(), - departureDateTime + departureDateTime, + timeZone, + fileStatus ); } + + private OrgInfo getOrgInfo(String accessToken, String authToken) { + OrganizationModel organizationModel = ulDataService.getOrganizationModel(accessToken); + Token token = jwtTokenService.getToken(authToken); + String[] ids = token.getUserAccountId().split(":"); + return new OrgInfo(organizationModel.getFullName(), ids[1], ids[0]); + } } diff --git a/backend/src/main/java/ervu/service/fileupload/model/EmployeeInfoKafkaMessage.java b/backend/src/main/java/ervu/service/fileupload/model/EmployeeInfoKafkaMessage.java index 0441a856..49d33a51 100644 --- a/backend/src/main/java/ervu/service/fileupload/model/EmployeeInfoKafkaMessage.java +++ b/backend/src/main/java/ervu/service/fileupload/model/EmployeeInfoKafkaMessage.java @@ -7,12 +7,10 @@ import java.util.Objects; */ public class EmployeeInfoKafkaMessage { private final OrgInfo orgInfo; - private final SenderInfo senderInfo; private final FileInfo fileInfo; - public EmployeeInfoKafkaMessage(OrgInfo orgInfo, SenderInfo senderInfo, FileInfo fileInfo) { + public EmployeeInfoKafkaMessage(OrgInfo orgInfo, FileInfo fileInfo) { this.orgInfo = orgInfo; - this.senderInfo = senderInfo; this.fileInfo = fileInfo; } @@ -20,10 +18,6 @@ public class EmployeeInfoKafkaMessage { return orgInfo; } - public SenderInfo getSenderInfo() { - return senderInfo; - } - public FileInfo getFileInfo() { return fileInfo; } @@ -33,21 +27,18 @@ public class EmployeeInfoKafkaMessage { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; EmployeeInfoKafkaMessage that = (EmployeeInfoKafkaMessage) o; - return Objects.equals(orgInfo, that.orgInfo) && Objects.equals(senderInfo, - that.senderInfo - ) && Objects.equals(fileInfo, that.fileInfo); + return Objects.equals(orgInfo, that.orgInfo) && Objects.equals(fileInfo, that.fileInfo); } @Override public int hashCode() { - return Objects.hash(orgInfo, senderInfo, fileInfo); + return Objects.hash(orgInfo, fileInfo); } @Override public String toString() { return "KafkaMessage{" + "orgInfo=" + orgInfo + - ", senderInfo=" + senderInfo + ", fileInfo=" + fileInfo + '}'; } diff --git a/backend/src/main/java/ervu/service/fileupload/model/FileInfo.java b/backend/src/main/java/ervu/service/fileupload/model/FileInfo.java index ea851414..f077427e 100644 --- a/backend/src/main/java/ervu/service/fileupload/model/FileInfo.java +++ b/backend/src/main/java/ervu/service/fileupload/model/FileInfo.java @@ -11,14 +11,18 @@ public class FileInfo { private final String filePatternCode; private final String filePatternName; private final String departureDateTime; + private final String timeZone; + private final FileStatus fileStatus; public FileInfo(String fileNameBase, String fileName, String filePatternCode, - String filePatternName, String departureDateTime) { + String filePatternName, String departureDateTime, String timeZone, FileStatus fileStatus) { this.fileNameBase = fileNameBase; this.fileName = fileName; this.filePatternCode = filePatternCode; this.filePatternName = filePatternName; this.departureDateTime = departureDateTime; + this.timeZone = timeZone; + this.fileStatus = fileStatus; } public String getFileNameBase() { @@ -41,6 +45,14 @@ public class FileInfo { return departureDateTime; } + public String getTimeZone() { + return timeZone; + } + + public FileStatus getFileStatus() { + return fileStatus; + } + @Override public boolean equals(Object o) { if (this == o) return true; diff --git a/backend/src/main/java/ervu/service/fileupload/model/FileStatus.java b/backend/src/main/java/ervu/service/fileupload/model/FileStatus.java new file mode 100644 index 00000000..e9a5c614 --- /dev/null +++ b/backend/src/main/java/ervu/service/fileupload/model/FileStatus.java @@ -0,0 +1,37 @@ +package ervu.service.fileupload.model; + +import java.io.Serializable; + +/** + * @author Eduard Tihomirov + */ +public class FileStatus { + + private String code; + private String status; + private String description; + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } +} diff --git a/backend/src/main/java/ervu/service/fileupload/model/OrgInfo.java b/backend/src/main/java/ervu/service/fileupload/model/OrgInfo.java index 47fbf885..73f95564 100644 --- a/backend/src/main/java/ervu/service/fileupload/model/OrgInfo.java +++ b/backend/src/main/java/ervu/service/fileupload/model/OrgInfo.java @@ -7,44 +7,25 @@ import java.util.Objects; */ public class OrgInfo { private final String orgName; - private final String orgTypeCode; - private final String orgTypeName; - private final String ogrn; - private final String inn; - private final String kpp; + private final String orgId; + private final String prnOid; - public OrgInfo(String orgName, String orgTypeCode, String orgTypeName, String ogrn, String inn, - String kpp) { + public OrgInfo(String orgName, String orgId, String prnOid) { this.orgName = orgName; - this.orgTypeCode = orgTypeCode; - this.orgTypeName = orgTypeName; - this.ogrn = ogrn; - this.inn = inn; - this.kpp = kpp; + this.orgId = orgId; + this.prnOid = prnOid; } public String getOrgName() { return orgName; } - public String getOrgTypeCode() { - return orgTypeCode; + public String getOrgId() { + return orgId; } - public String getOrgTypeName() { - return orgTypeName; - } - - public String getOgrn() { - return ogrn; - } - - public String getInn() { - return inn; - } - - public String getKpp() { - return kpp; + public String getPrnOid() { + return prnOid; } @Override @@ -52,27 +33,22 @@ public class OrgInfo { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; OrgInfo orgInfo = (OrgInfo) o; - return Objects.equals(orgName, orgInfo.orgName) && Objects.equals(orgTypeCode, - orgInfo.orgTypeCode - ) && Objects.equals(orgTypeName, orgInfo.orgTypeName) && Objects.equals(ogrn, - orgInfo.ogrn - ) && Objects.equals(inn, orgInfo.inn) && Objects.equals(kpp, orgInfo.kpp); + return Objects.equals(orgName, orgInfo.orgName) && Objects.equals(orgId, + orgInfo.orgId + ) && Objects.equals(prnOid, orgInfo.prnOid); } @Override public int hashCode() { - return Objects.hash(orgName, orgTypeCode, orgTypeName, ogrn, inn, kpp); + return Objects.hash(orgName, orgId, prnOid); } @Override public String toString() { return "OrgInfo{" + "orgName='" + orgName + '\'' + - ", orgTypeCode='" + orgTypeCode + '\'' + - ", orgTypeName='" + orgTypeName + '\'' + - ", ogrn='" + ogrn + '\'' + - ", inn='" + inn + '\'' + - ", kpp='" + kpp + '\'' + + ", orgId='" + orgId + '\'' + + ", prnOid='" + prnOid + '\'' + '}'; } } diff --git a/backend/src/main/java/ervu/service/fileupload/model/PassportInfo.java b/backend/src/main/java/ervu/service/fileupload/model/PassportInfo.java deleted file mode 100644 index 24c87bf5..00000000 --- a/backend/src/main/java/ervu/service/fileupload/model/PassportInfo.java +++ /dev/null @@ -1,54 +0,0 @@ -package ervu.service.fileupload.model; - -import java.util.Objects; - -/** - * @author Alexandr Shalaginov - */ -public class PassportInfo { - private final String series; - private final String number; - private final String issueDate; - - public PassportInfo(String series, String number, String issueDate) { - this.series = series; - this.number = number; - this.issueDate = issueDate; - } - - public String getSeries() { - return series; - } - - public String getNumber() { - return number; - } - - public String getIssueDate() { - return issueDate; - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - PassportInfo that = (PassportInfo) o; - return Objects.equals(series, that.series) && Objects.equals(number, - that.number - ) && Objects.equals(issueDate, that.issueDate); - } - - @Override - public int hashCode() { - return Objects.hash(series, number, issueDate); - } - - @Override - public String toString() { - return "PassportInfo{" + - "series='" + series + '\'' + - ", number='" + number + '\'' + - ", issueDate='" + issueDate + '\'' + - '}'; - } -} diff --git a/backend/src/main/java/ervu/service/fileupload/model/SenderInfo.java b/backend/src/main/java/ervu/service/fileupload/model/SenderInfo.java deleted file mode 100644 index 56f440f4..00000000 --- a/backend/src/main/java/ervu/service/fileupload/model/SenderInfo.java +++ /dev/null @@ -1,106 +0,0 @@ -package ervu.service.fileupload.model; - -import java.util.Objects; - -/** - * @author Alexandr Shalaginov - */ -public class SenderInfo { - private final String senderLastName; - private final String senderFirstName; - private final String senderMiddleName; - private final String birthDate; - private final String senderRoleCode; - private final String senderRoleName; - private final String snils; - private final String idERN; - private final PassportInfo document; - - public SenderInfo(String senderLastName, String senderFirstName, String senderMiddleName, - String birthDate, String senderRoleCode, String senderRoleName, String snils, String idERN, - PassportInfo document) { - this.senderLastName = senderLastName; - this.senderFirstName = senderFirstName; - this.senderMiddleName = senderMiddleName; - this.birthDate = birthDate; - this.senderRoleCode = senderRoleCode; - this.senderRoleName = senderRoleName; - this.snils = snils; - this.idERN = idERN; - this.document = document; - } - - public String getSenderLastName() { - return senderLastName; - } - - public String getSenderFirstName() { - return senderFirstName; - } - - public String getSenderMiddleName() { - return senderMiddleName; - } - - public String getBirthDate() { - return birthDate; - } - - public String getSenderRoleCode() { - return senderRoleCode; - } - - public String getSenderRoleName() { - return senderRoleName; - } - - public String getSnils() { - return snils; - } - - public String getIdERN() { - return idERN; - } - - public PassportInfo getDocument() { - return document; - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - SenderInfo that = (SenderInfo) o; - return Objects.equals(senderLastName, that.senderLastName) && Objects.equals( - senderFirstName, that.senderFirstName) && Objects.equals(senderMiddleName, - that.senderMiddleName - ) && Objects.equals(birthDate, that.birthDate) && Objects.equals( - senderRoleCode, that.senderRoleCode) && Objects.equals(senderRoleName, - that.senderRoleName - ) && Objects.equals(snils, that.snils) && Objects.equals(idERN, that.idERN) - && Objects.equals(document, that.document); - } - - @Override - public int hashCode() { - return Objects.hash(senderLastName, senderFirstName, senderMiddleName, birthDate, - senderRoleCode, - senderRoleName, snils, idERN, document - ); - } - - @Override - public String toString() { - return "SenderInfo{" + - "senderLastName='" + senderLastName + '\'' + - ", senderFirstName='" + senderFirstName + '\'' + - ", senderMiddleName='" + senderMiddleName + '\'' + - ", birthDate='" + birthDate + '\'' + - ", senderRoleCode='" + senderRoleCode + '\'' + - ", senderRoleName='" + senderRoleName + '\'' + - ", snils='" + snils + '\'' + - ", idERN='" + idERN + '\'' + - ", document=" + document + - '}'; - } -} diff --git a/backend/src/main/java/ru/micord/ervu/kafka/ReplyingKafkaConfig.java b/backend/src/main/java/ru/micord/ervu/kafka/ReplyingKafkaConfig.java index 620d3f5d..7bff6b07 100644 --- a/backend/src/main/java/ru/micord/ervu/kafka/ReplyingKafkaConfig.java +++ b/backend/src/main/java/ru/micord/ervu/kafka/ReplyingKafkaConfig.java @@ -1,7 +1,9 @@ package ru.micord.ervu.kafka; +import org.apache.kafka.clients.CommonClientConfigs; import org.apache.kafka.clients.consumer.ConsumerConfig; import org.apache.kafka.clients.producer.ProducerConfig; +import org.apache.kafka.common.config.SaslConfigs; import org.apache.kafka.common.serialization.StringDeserializer; import org.apache.kafka.common.serialization.StringSerializer; import org.springframework.beans.factory.annotation.Value; @@ -33,12 +35,27 @@ public class ReplyingKafkaConfig { @Value("${ervu-kafka.reply-connection-timeout:30}") private long connectionTimeout; + @Value("${ervu-kafka.send.security.protocol}") + private String securityProtocol; + @Value("${ervu-kafka.send.login.module:org.apache.kafka.common.security.scram.ScramLoginModule}") + private String loginModule; + @Value("${ervu-kafka.send.username}") + private String username; + @Value("${ervu-kafka.send.password}") + private String password; + @Value("${ervu-kafka.sasl.mechanism}") + private String saslMechanism; + @Bean public ProducerFactory producerFactory() { Map configProps = new HashMap<>(); configProps.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrapServers); configProps.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class); configProps.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class); + configProps.put(CommonClientConfigs.SECURITY_PROTOCOL_CONFIG, securityProtocol); + configProps.put(SaslConfigs.SASL_JAAS_CONFIG, loginModule + " required username=\"" + + username + "\" password=\"" + password + "\";"); + configProps.put(SaslConfigs.SASL_MECHANISM, saslMechanism); return new DefaultKafkaProducerFactory<>(configProps); } @@ -54,6 +71,10 @@ public class ReplyingKafkaConfig { configProps.put(ConsumerConfig.GROUP_ID_CONFIG, groupId); configProps.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class); configProps.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class); + configProps.put(CommonClientConfigs.SECURITY_PROTOCOL_CONFIG, securityProtocol); + configProps.put(SaslConfigs.SASL_JAAS_CONFIG, loginModule + " required username=\"" + + username + "\" password=\"" + password + "\";"); + configProps.put(SaslConfigs.SASL_MECHANISM, saslMechanism); return new DefaultKafkaConsumerFactory<>(configProps); } diff --git a/backend/src/main/resources/config/v_1.0/2024-09-11--01-add-new-column-interaction-log.xml b/backend/src/main/resources/config/v_1.0/2024-09-11--01-add-new-column-interaction-log.xml new file mode 100644 index 00000000..0909ad6a --- /dev/null +++ b/backend/src/main/resources/config/v_1.0/2024-09-11--01-add-new-column-interaction-log.xml @@ -0,0 +1,15 @@ + + + + + add file id column into interaction_log table + + + + + + + \ No newline at end of file diff --git a/config/asd b/config/asd new file mode 100644 index 00000000..6ab38fb6 --- /dev/null +++ b/config/asd @@ -0,0 +1 @@ +org_fullname, org_shortname, org_brhs, org_brhs_ctts, org_brhs_addrs, org_type, org_ogrn, org_inn, org_leg, org_kpp, org_ctts, org_addrs, org_grps, org_emps \ No newline at end of file diff --git a/config/standalone/dev/standalone.xml b/config/standalone/dev/standalone.xml index 05a33d88..7170d37b 100644 --- a/config/standalone/dev/standalone.xml +++ b/config/standalone/dev/standalone.xml @@ -57,12 +57,11 @@ - - - - - - + + + + +