From 3f8d8aff728733ffa4a87617f64706c065a53fb8 Mon Sep 17 00:00:00 2001 From: "adel.ka" Date: Thu, 31 Jul 2025 13:19:44 +0300 Subject: [PATCH] =?UTF-8?q?SUPPORT-9301:=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2?= =?UTF-8?q?=D0=B8=D0=BB=20=D0=BF=D0=B5=D1=80=D0=B5=D0=B4=D0=B0=D1=87=D1=83?= =?UTF-8?q?=20=D1=82=D0=BE=D0=BA=D0=B5=D0=BD=D0=B0=20=D0=B4=D0=BB=D1=8F=20?= =?UTF-8?q?=D0=BC=D0=B5=D1=82=D0=BE=D0=B4=D0=BE=D0=B2=20=D0=BA=20=D0=BF?= =?UTF-8?q?=D0=BE=D0=BB=D1=83=D1=87=D0=B5=D0=BD=D0=B8=D1=8E=20=D0=B0=D0=BA?= =?UTF-8?q?=D0=BA=D0=B0=D1=83=D0=BD=D1=82=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/AbstractIdmValidatorService.java | 20 ++++++++++++++----- .../service/IdmLoginValidatorService.java | 5 +++-- .../service/IdmSnilsValidatorService.java | 5 +++-- .../service/AccountFetchService.java | 18 ++++++++++++----- .../service/constant/PathConstant.java | 1 + 5 files changed, 35 insertions(+), 14 deletions(-) diff --git a/backend/src/main/java/ru/micord/ervu/account_applications/component/service/AbstractIdmValidatorService.java b/backend/src/main/java/ru/micord/ervu/account_applications/component/service/AbstractIdmValidatorService.java index 84365401..fa4aacf8 100644 --- a/backend/src/main/java/ru/micord/ervu/account_applications/component/service/AbstractIdmValidatorService.java +++ b/backend/src/main/java/ru/micord/ervu/account_applications/component/service/AbstractIdmValidatorService.java @@ -3,11 +3,14 @@ package ru.micord.ervu.account_applications.component.service; import java.net.URI; import org.springframework.beans.factory.annotation.Value; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpHeaders; import org.springframework.http.ResponseEntity; import org.springframework.http.HttpMethod; import org.springframework.web.client.RestTemplate; import org.springframework.web.util.UriComponentsBuilder; import ru.micord.ervu.account_applications.component.exception.IdmValidatorException; +import ru.micord.ervu.account_applications.security.context.SecurityContext; import ru.micord.ervu.account_applications.service.constant.PathConstant; /** @@ -15,17 +18,20 @@ import ru.micord.ervu.account_applications.service.constant.PathConstant; */ public abstract class AbstractIdmValidatorService implements IdmValidatorService{ protected RestTemplate restTemplate; + protected SecurityContext securityContext; - @Value("${idm.url}") - protected String idmUrl; + @Value("${ervu.url}") + protected String ervuUrl; - protected AbstractIdmValidatorService(RestTemplate restTemplate) { + protected AbstractIdmValidatorService(RestTemplate restTemplate, SecurityContext securityContext) { this.restTemplate = restTemplate; + this.securityContext = securityContext; } protected boolean checkExistsByQuery(String endpoint, String queryParamName, String queryParamValue) { URI uri = UriComponentsBuilder - .fromHttpUrl(idmUrl) + .fromHttpUrl(ervuUrl) + .path(PathConstant.IDM_PATH) .pathSegment(PathConstant.PERSONS_PATH) .path(endpoint) .queryParam(queryParamName, queryParamValue) @@ -33,11 +39,15 @@ public abstract class AbstractIdmValidatorService implements IdmValidatorService .encode() .toUri(); + HttpHeaders headers = new HttpHeaders(); + headers.setBearerAuth(securityContext.getToken()); + HttpEntity request = new HttpEntity<>(headers); + try { ResponseEntity response = restTemplate.exchange( uri, HttpMethod.GET, - null, + request, Boolean.class ); diff --git a/backend/src/main/java/ru/micord/ervu/account_applications/component/service/IdmLoginValidatorService.java b/backend/src/main/java/ru/micord/ervu/account_applications/component/service/IdmLoginValidatorService.java index 36089f93..2ded21d2 100644 --- a/backend/src/main/java/ru/micord/ervu/account_applications/component/service/IdmLoginValidatorService.java +++ b/backend/src/main/java/ru/micord/ervu/account_applications/component/service/IdmLoginValidatorService.java @@ -2,6 +2,7 @@ package ru.micord.ervu.account_applications.component.service; import org.springframework.stereotype.Service; import org.springframework.web.client.RestTemplate; +import ru.micord.ervu.account_applications.security.context.SecurityContext; /** * @author Emir Suleimanov @@ -9,8 +10,8 @@ import org.springframework.web.client.RestTemplate; @Service public class IdmLoginValidatorService extends AbstractIdmValidatorService { - public IdmLoginValidatorService(RestTemplate restTemplate) { - super(restTemplate); + public IdmLoginValidatorService(RestTemplate restTemplate, SecurityContext securityContext) { + super(restTemplate, securityContext); } @Override diff --git a/backend/src/main/java/ru/micord/ervu/account_applications/component/service/IdmSnilsValidatorService.java b/backend/src/main/java/ru/micord/ervu/account_applications/component/service/IdmSnilsValidatorService.java index a46a2c36..507f90b3 100644 --- a/backend/src/main/java/ru/micord/ervu/account_applications/component/service/IdmSnilsValidatorService.java +++ b/backend/src/main/java/ru/micord/ervu/account_applications/component/service/IdmSnilsValidatorService.java @@ -2,6 +2,7 @@ package ru.micord.ervu.account_applications.component.service; import org.springframework.stereotype.Service; import org.springframework.web.client.RestTemplate; +import ru.micord.ervu.account_applications.security.context.SecurityContext; /** * @author Emir Suleimanov @@ -9,8 +10,8 @@ import org.springframework.web.client.RestTemplate; @Service public class IdmSnilsValidatorService extends AbstractIdmValidatorService { - public IdmSnilsValidatorService(RestTemplate restTemplate) { - super(restTemplate); + public IdmSnilsValidatorService(RestTemplate restTemplate, SecurityContext securityContext) { + super(restTemplate, securityContext); } @Override diff --git a/backend/src/main/java/ru/micord/ervu/account_applications/service/AccountFetchService.java b/backend/src/main/java/ru/micord/ervu/account_applications/service/AccountFetchService.java index 27795e49..55f4afe0 100644 --- a/backend/src/main/java/ru/micord/ervu/account_applications/service/AccountFetchService.java +++ b/backend/src/main/java/ru/micord/ervu/account_applications/service/AccountFetchService.java @@ -28,6 +28,7 @@ import ru.micord.ervu.account_applications.component.model.Account; import ru.micord.ervu.account_applications.component.model.Role; import ru.micord.ervu.account_applications.component.model.dto.SearchRequest; import ru.micord.ervu.account_applications.component.model.dto.SearchResponse; +import ru.micord.ervu.account_applications.security.context.SecurityContext; import ru.micord.ervu.account_applications.service.constant.PathConstant; import ru.cg.webbpm.modules.standard_annotations.editor.ObjectRef; @@ -43,15 +44,18 @@ public class AccountFetchService implements EntityFetchService { private static final String FIELD_ROLES = "roles"; private final RestTemplate restTemplate; private final ObjectMapper mapper; - @Value("${idm.url}") - private String idmUrl; + private final SecurityContext securityContext; + @Value("${ervu.url}") + private String ervuUrl; @ObjectRef public EditableGridColumn editableGridColumnRef; - public AccountFetchService(RestTemplate restTemplate, ObjectMapper mapper) { + public AccountFetchService(RestTemplate restTemplate, ObjectMapper mapper, + SecurityContext securityContext) { this.restTemplate = restTemplate; this.mapper = mapper; + this.securityContext = securityContext; } @Override @@ -65,9 +69,11 @@ public class AccountFetchService implements EntityFetchService { try { HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_JSON); + headers.setBearerAuth(securityContext.getToken()); HttpEntity httpEntity = new HttpEntity<>(request, headers); - URI uri = UriComponentsBuilder.fromHttpUrl(idmUrl) + URI uri = UriComponentsBuilder.fromHttpUrl(ervuUrl) + .path(PathConstant.IDM_PATH) .pathSegment(PathConstant.ACCOUNTS_PATH, "search", "v1") .build() .toUri(); @@ -107,7 +113,8 @@ public class AccountFetchService implements EntityFetchService { } private Account fetchAccountById(Object id) { - URI uri = UriComponentsBuilder.fromHttpUrl(idmUrl) + URI uri = UriComponentsBuilder.fromHttpUrl(ervuUrl) + .path(PathConstant.IDM_PATH) .pathSegment(PathConstant.ACCOUNTS_PATH, id.toString(), "v1") .build() .toUri(); @@ -115,6 +122,7 @@ public class AccountFetchService implements EntityFetchService { try { HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_JSON); + headers.setBearerAuth(securityContext.getToken()); HttpEntity request = new HttpEntity<>(headers); ResponseEntity response = restTemplate.exchange( diff --git a/backend/src/main/java/ru/micord/ervu/account_applications/service/constant/PathConstant.java b/backend/src/main/java/ru/micord/ervu/account_applications/service/constant/PathConstant.java index f6f2faaa..5ba4dbc6 100644 --- a/backend/src/main/java/ru/micord/ervu/account_applications/service/constant/PathConstant.java +++ b/backend/src/main/java/ru/micord/ervu/account_applications/service/constant/PathConstant.java @@ -6,6 +6,7 @@ package ru.micord.ervu.account_applications.service.constant; public final class PathConstant { public static final String ACCOUNTS_PATH = "accounts"; public static final String PERSONS_PATH = "persons"; + public static final String IDM_PATH = "/service/idm"; private PathConstant() { }