SUPPORT-8470: Fix
This commit is contained in:
parent
3f54d22828
commit
c6422e3238
14 changed files with 199 additions and 278 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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<String, String> 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<String, String> kafkaTemplate) {
|
||||
EmployeeInfoKafkaMessageService employeeInfoKafkaMessageService,
|
||||
KafkaTemplate<String, String> 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();
|
||||
}
|
||||
}
|
||||
|
|
@ -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]);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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 +
|
||||
'}';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
@ -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 + '\'' +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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 + '\'' +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
|
|
@ -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 +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
|
|
@ -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<String, String> producerFactory() {
|
||||
Map<String, Object> 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);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,15 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<databaseChangeLog
|
||||
xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.5.xsd">
|
||||
|
||||
<changeSet id="001" author="tihomirov">
|
||||
<comment>add file id column into interaction_log table</comment>
|
||||
<addColumn schemaName="public" tableName="interaction_log">
|
||||
<column name="file_id" type="varchar(36)">
|
||||
<constraints nullable="false"/>
|
||||
</column>
|
||||
</addColumn>
|
||||
</changeSet>
|
||||
</databaseChangeLog>
|
||||
1
config/asd
Normal file
1
config/asd
Normal file
|
|
@ -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
|
||||
|
|
@ -57,12 +57,11 @@
|
|||
<property name="file.webdav.upload.url" value="https://ervu-webdav.k8s.micord.ru"/>
|
||||
<property name="file.webdav.upload.username" value="test"/>
|
||||
<property name="file.webdav.upload.password" value="test"/>
|
||||
<property name="kafka.send.message.topic.name" value="file-upload-v2"/>
|
||||
<property name="kafka.send.url" value="http://10.10.31.11:32609"/>
|
||||
<property name="kafka.send.security.protocol" value="SASL_PLAINTEXT"/>
|
||||
<property name="kafka.sasl.mechanism" value="SCRAM-SHA-256"/>
|
||||
<property name="kafka.send.username" value="user1"/>
|
||||
<property name="kafka.send.password" value="Blfi9d2OFG"/>
|
||||
<property name="ervu-kafka.download-request-topic" value="ervu.lkrp.download.request"/>
|
||||
<property name="ervu-kafka.send.security.protocol" value="SASL_PLAINTEXT"/>
|
||||
<property name="ervu-kafka.sasl.mechanism" value="SCRAM-SHA-256"/>
|
||||
<property name="ervu-kafka.send.username" value="user1"/>
|
||||
<property name="ervu-kafka.send.password" value="Blfi9d2OFG"/>
|
||||
<property name="ervu.fileupload.max_file_size" value="5242880"/>
|
||||
<property name="ervu.fileupload.max_request_size" value="6291456"/>
|
||||
<property name="ervu.fileupload.file_size_threshold" value="0"/>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue