SUPPORT-8830 remove sensitive data from args 3.2
This commit is contained in:
parent
2d2a07bb0c
commit
84683a4e2d
4 changed files with 72 additions and 57 deletions
|
|
@ -1,18 +1,11 @@
|
||||||
package ru.micord.ervu.controller;
|
package ru.micord.ervu.controller;
|
||||||
|
|
||||||
import com.google.protobuf.InvalidProtocolBufferException;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.apache.kafka.common.utils.Bytes;
|
|
||||||
import org.springframework.beans.factory.annotation.Qualifier;
|
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
|
||||||
import ru.micord.ervu.converter.SummonsResponseDataConverter;
|
|
||||||
import ru.micord.ervu.dto.SubpoenaRequestDto;
|
|
||||||
import ru.micord.ervu.dto.SubpoenaResponseDto;
|
|
||||||
import org.springframework.http.MediaType;
|
import org.springframework.http.MediaType;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
import proto.ervu.rp.summons.SummonsResponseData;
|
import ru.micord.ervu.dto.SubpoenaResponseDto;
|
||||||
import ru.micord.ervu.kafka.service.ReplyingKafkaService;
|
import ru.micord.ervu.service.SubpoenaService;
|
||||||
import ru.micord.ervu.security.webbpm.jwt.util.SecurityUtil;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author gulnaz
|
* @author gulnaz
|
||||||
|
|
@ -20,41 +13,15 @@ import ru.micord.ervu.security.webbpm.jwt.util.SecurityUtil;
|
||||||
@RestController
|
@RestController
|
||||||
public class ErvuDataController {
|
public class ErvuDataController {
|
||||||
|
|
||||||
private final ReplyingKafkaService<Object, Bytes> replyingKafkaService;
|
private final SubpoenaService subpoenaService;
|
||||||
private final SummonsResponseDataConverter converter;
|
|
||||||
|
|
||||||
@Value("${ervu.kafka.recruit.request.topic}")
|
@Autowired
|
||||||
private String recruitRequestTopic;
|
public ErvuDataController(SubpoenaService subpoenaService) {
|
||||||
@Value("${ervu.kafka.recruit.reply.topic}")
|
this.subpoenaService = subpoenaService;
|
||||||
private String recruitReplyTopic;
|
|
||||||
|
|
||||||
public ErvuDataController(
|
|
||||||
@Qualifier("recruit") ReplyingKafkaService<Object, Bytes> replyingKafkaService,
|
|
||||||
SummonsResponseDataConverter converter) {
|
|
||||||
this.replyingKafkaService = replyingKafkaService;
|
|
||||||
this.converter = converter;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping(
|
@GetMapping(value = "/recruit", produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
value = "/recruit",
|
|
||||||
produces = MediaType.APPLICATION_JSON_VALUE
|
|
||||||
)
|
|
||||||
public SubpoenaResponseDto getData() {
|
public SubpoenaResponseDto getData() {
|
||||||
String ervuId = SecurityUtil.getErvuId();
|
return subpoenaService.getSubpoenaData();
|
||||||
|
|
||||||
if (ervuId == null) {
|
|
||||||
return new SubpoenaResponseDto.Builder().build();
|
|
||||||
}
|
|
||||||
SubpoenaRequestDto subpoenaRequestDto = new SubpoenaRequestDto(ervuId);
|
|
||||||
byte[] reply = replyingKafkaService.sendMessageAndGetReply(recruitRequestTopic,
|
|
||||||
recruitReplyTopic, subpoenaRequestDto).get();
|
|
||||||
|
|
||||||
try {
|
|
||||||
SummonsResponseData responseData = SummonsResponseData.parseFrom(reply);
|
|
||||||
return converter.convert(responseData);
|
|
||||||
}
|
|
||||||
catch (InvalidProtocolBufferException e) {
|
|
||||||
throw new RuntimeException("Failed to parse data", e);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,51 @@
|
||||||
|
package ru.micord.ervu.service;
|
||||||
|
|
||||||
|
import com.google.protobuf.InvalidProtocolBufferException;
|
||||||
|
import org.apache.kafka.common.utils.Bytes;
|
||||||
|
import org.springframework.beans.factory.annotation.Qualifier;
|
||||||
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import proto.ervu.rp.summons.SummonsResponseData;
|
||||||
|
import ru.micord.ervu.converter.SummonsResponseDataConverter;
|
||||||
|
import ru.micord.ervu.dto.SubpoenaRequestDto;
|
||||||
|
import ru.micord.ervu.dto.SubpoenaResponseDto;
|
||||||
|
import ru.micord.ervu.kafka.service.ReplyingKafkaService;
|
||||||
|
import ru.micord.ervu.security.webbpm.jwt.util.SecurityUtil;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class SubpoenaService {
|
||||||
|
|
||||||
|
private final ReplyingKafkaService<Object, Bytes> replyingKafkaService;
|
||||||
|
private final SummonsResponseDataConverter converter;
|
||||||
|
|
||||||
|
@Value("${ervu.kafka.recruit.request.topic}")
|
||||||
|
private String recruitRequestTopic;
|
||||||
|
@Value("${ervu.kafka.recruit.reply.topic}")
|
||||||
|
private String recruitReplyTopic;
|
||||||
|
|
||||||
|
public SubpoenaService(
|
||||||
|
@Qualifier("recruit") ReplyingKafkaService<Object, Bytes> replyingKafkaService,
|
||||||
|
SummonsResponseDataConverter converter) {
|
||||||
|
this.replyingKafkaService = replyingKafkaService;
|
||||||
|
this.converter = converter;
|
||||||
|
}
|
||||||
|
|
||||||
|
public SubpoenaResponseDto getSubpoenaData() {
|
||||||
|
String ervuId = SecurityUtil.getErvuId();
|
||||||
|
|
||||||
|
if (ervuId == null) {
|
||||||
|
return new SubpoenaResponseDto.Builder().build();
|
||||||
|
}
|
||||||
|
SubpoenaRequestDto subpoenaRequestDto = new SubpoenaRequestDto(ervuId);
|
||||||
|
byte[] reply = replyingKafkaService.sendMessageAndGetReply(recruitRequestTopic,
|
||||||
|
recruitReplyTopic, subpoenaRequestDto).get();
|
||||||
|
|
||||||
|
try {
|
||||||
|
SummonsResponseData responseData = SummonsResponseData.parseFrom(reply);
|
||||||
|
return converter.convert(responseData);
|
||||||
|
}
|
||||||
|
catch (InvalidProtocolBufferException e) {
|
||||||
|
throw new RuntimeException("Failed to parse data", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -3,6 +3,9 @@ package ru.micord.ervu.service.rpc;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import model.FieldData;
|
import model.FieldData;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import ru.micord.ervu.dto.SubpoenaResponseDto;
|
||||||
|
import ru.micord.ervu.service.SubpoenaService;
|
||||||
import service.container.FormService;
|
import service.container.FormService;
|
||||||
|
|
||||||
import ru.cg.webbpm.modules.standard_annotations.validation.NotNull;
|
import ru.cg.webbpm.modules.standard_annotations.validation.NotNull;
|
||||||
|
|
@ -19,8 +22,13 @@ public class LoadFormRpcService extends Behavior {
|
||||||
@NotNull
|
@NotNull
|
||||||
public FormService formService;
|
public FormService formService;
|
||||||
|
|
||||||
|
//todo: Remove this shit
|
||||||
|
@Autowired
|
||||||
|
public SubpoenaService subpoenaService;
|
||||||
|
|
||||||
@RpcCall
|
@RpcCall
|
||||||
public List<FieldData> loadData(Object dto) {
|
public List<FieldData> loadData() {
|
||||||
return formService.loadData(dto);
|
SubpoenaResponseDto subpoenaData = subpoenaService.getSubpoenaData();
|
||||||
|
return formService.loadData(subpoenaData);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
import {Form} from "@webbpm/base-package";
|
import {Form} from "@webbpm/base-package";
|
||||||
import {ChangeDetectionStrategy, Component} from "@angular/core";
|
import {ChangeDetectionStrategy, Component} from "@angular/core";
|
||||||
import {ErvuDataService} from "../../../modules/app/service/ervu-data.service";
|
import {ErvuDataService} from "../../../modules/app/service/ervu-data.service";
|
||||||
import {Subscription} from "rxjs";
|
|
||||||
import {LoadFormRpcService} from "../../../generated/ru/micord/ervu/service/rpc/LoadFormRpcService";
|
import {LoadFormRpcService} from "../../../generated/ru/micord/ervu/service/rpc/LoadFormRpcService";
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
|
|
@ -14,25 +13,16 @@ export class LoadForm extends Form {
|
||||||
|
|
||||||
private formRpcService: LoadFormRpcService;
|
private formRpcService: LoadFormRpcService;
|
||||||
private ervuDataService: ErvuDataService;
|
private ervuDataService: ErvuDataService;
|
||||||
private subscription: Subscription;
|
|
||||||
|
|
||||||
private valuesData: string;
|
|
||||||
|
|
||||||
initialize() {
|
initialize() {
|
||||||
super.initialize();
|
super.initialize();
|
||||||
this.formRpcService = this.getScript(LoadFormRpcService);
|
this.formRpcService = this.getScript(LoadFormRpcService);
|
||||||
this.ervuDataService = this.injector.get(ErvuDataService);
|
this.ervuDataService = this.injector.get(ErvuDataService);
|
||||||
this.subscription = this.ervuDataService.message.subscribe(value => {
|
|
||||||
if (value) {
|
|
||||||
this.valuesData = value;
|
|
||||||
this.loadData();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
loadData(): Promise<any> {
|
loadData(): Promise<any> {
|
||||||
return this.formRpcService
|
return this.formRpcService
|
||||||
.loadData(this.valuesData)
|
.loadData()
|
||||||
.then(fieldDataList => this.setData(fieldDataList))
|
.then(fieldDataList => this.setData(fieldDataList))
|
||||||
.catch(reason => {
|
.catch(reason => {
|
||||||
throw new Error(reason);
|
throw new Error(reason);
|
||||||
|
|
@ -49,6 +39,5 @@ export class LoadForm extends Form {
|
||||||
|
|
||||||
ngOnDestroy() {
|
ngOnDestroy() {
|
||||||
super.ngOnDestroy();
|
super.ngOnDestroy();
|
||||||
this.subscription.unsubscribe();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue