use idm
This commit is contained in:
parent
bddc5fed30
commit
0caca90dda
11 changed files with 30 additions and 42 deletions
|
|
@ -5,26 +5,22 @@ import org.springframework.http.HttpEntity;
|
|||
import org.springframework.http.HttpHeaders;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.web.client.RestTemplate;
|
||||
import ru.micord.ervu.account_applications.security.context.SecurityContext;
|
||||
|
||||
/**
|
||||
* @author Emir Suleimanov
|
||||
*/
|
||||
public abstract class AbstractIdmValidatorService implements IdmValidatorService{
|
||||
protected RestTemplate restTemplate;
|
||||
protected SecurityContext securityContext;
|
||||
|
||||
@Value("${ervu.url}")
|
||||
protected String ervuUrl;
|
||||
@Value("${idm.url}")
|
||||
protected String idmUrl;
|
||||
|
||||
public AbstractIdmValidatorService(RestTemplate restTemplate, SecurityContext securityContext) {
|
||||
public AbstractIdmValidatorService(RestTemplate restTemplate) {
|
||||
this.restTemplate = restTemplate;
|
||||
this.securityContext = securityContext;
|
||||
}
|
||||
|
||||
public HttpEntity<Void> createRequestEntity() {
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
headers.setBearerAuth(securityContext.getToken());
|
||||
headers.setContentType(MediaType.APPLICATION_JSON);
|
||||
return new HttpEntity<>(headers);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -42,8 +42,8 @@ public class ErvuUserGridLoadService extends Behavior implements GridService {
|
|||
private final SecurityContext securityContext;
|
||||
@Value("${ervu.http.timeout:30}")
|
||||
private int httpTimeout;
|
||||
@Value("${ervu.url}")
|
||||
private String ervuUrl;
|
||||
@Value("${idm.url}")
|
||||
private String idmUrl;
|
||||
|
||||
public ErvuUserGridLoadService(ObjectMapper objectMapper,
|
||||
SecurityContext securityContext) {
|
||||
|
|
@ -84,11 +84,10 @@ public class ErvuUserGridLoadService extends Behavior implements GridService {
|
|||
.build();
|
||||
|
||||
HttpRequest request = HttpRequest.newBuilder()
|
||||
.uri(UriComponentsBuilder.fromHttpUrl(ervuUrl)
|
||||
.uri(UriComponentsBuilder.fromHttpUrl(idmUrl)
|
||||
.pathSegment(PathConstant.ACCOUNTS_PATH, FILTER_PATH)
|
||||
.build().toUri())
|
||||
.header(HttpHeaders.CONTENT_TYPE, "application/json")
|
||||
.header(HttpHeaders.AUTHORIZATION, "Bearer " + securityContext.getToken())
|
||||
.timeout(Duration.ofSeconds(httpTimeout))
|
||||
.POST(HttpRequest.BodyPublishers.ofString(requestBody))
|
||||
.build();
|
||||
|
|
|
|||
|
|
@ -10,7 +10,6 @@ import org.springframework.http.HttpEntity;
|
|||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.web.client.RestTemplate;
|
||||
import ru.micord.ervu.account_applications.component.exception.IdmValidatorException;
|
||||
import ru.micord.ervu.account_applications.security.context.SecurityContext;
|
||||
|
||||
/**
|
||||
* @author Emir Suleimanov
|
||||
|
|
@ -18,13 +17,13 @@ import ru.micord.ervu.account_applications.security.context.SecurityContext;
|
|||
@Service
|
||||
public class IdmLoginValidatorService extends AbstractIdmValidatorService{
|
||||
|
||||
public IdmLoginValidatorService(RestTemplate restTemplate, SecurityContext securityContext) {
|
||||
super(restTemplate, securityContext);
|
||||
public IdmLoginValidatorService(RestTemplate restTemplate) {
|
||||
super(restTemplate);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean valueExists(String login) {
|
||||
String url = String.format("%s/service/idm/credentials/login/%s", ervuUrl, login);
|
||||
String url = String.format("%s/credentials/login/%s", idmUrl, login);
|
||||
HttpEntity<Void> entity = createRequestEntity();
|
||||
try {
|
||||
ResponseEntity<List<Map<String, Object>>> response = restTemplate.exchange(
|
||||
|
|
|
|||
|
|
@ -11,7 +11,6 @@ import org.springframework.stereotype.Service;
|
|||
import org.springframework.web.client.RestTemplate;
|
||||
import ru.micord.ervu.account_applications.component.exception.IdmValidatorException;
|
||||
import ru.micord.ervu.account_applications.component.model.dto.IdmPersonsResponse;
|
||||
import ru.micord.ervu.account_applications.security.context.SecurityContext;
|
||||
|
||||
/**
|
||||
* @author Emir Suleimanov
|
||||
|
|
@ -19,13 +18,13 @@ import ru.micord.ervu.account_applications.security.context.SecurityContext;
|
|||
@Service
|
||||
public class IdmSnilsValidatorService extends AbstractIdmValidatorService {
|
||||
|
||||
public IdmSnilsValidatorService(RestTemplate restTemplate, SecurityContext securityContext) {
|
||||
super(restTemplate, securityContext);
|
||||
public IdmSnilsValidatorService(RestTemplate restTemplate) {
|
||||
super(restTemplate);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean valueExists(String snils) {
|
||||
String url = String.format("%s/service/idm/persons?query=snils==\"%s\"", ervuUrl, snils);
|
||||
String url = String.format("%s/persons?query=snils==\"%s\"", idmUrl, snils);
|
||||
HttpEntity<Void> entity = createRequestEntity();
|
||||
try {
|
||||
ResponseEntity<IdmPersonsResponse> response = restTemplate.exchange(
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ import java.util.Map;
|
|||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.google.common.net.HttpHeaders;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import ru.micord.ervu.account_applications.security.context.SecurityContext;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
|
|
@ -19,15 +19,13 @@ import ru.micord.ervu.account_applications.security.context.SecurityContext;
|
|||
*/
|
||||
public abstract class AbstractUserDataService implements UserDataService {
|
||||
protected final ObjectMapper objectMapper;
|
||||
protected final SecurityContext securityContext;
|
||||
@Value("${ervu.http.timeout:30}")
|
||||
protected int httpTimeout;
|
||||
@Value("${ervu.url}")
|
||||
protected String ervuUrl;
|
||||
@Value("${idm.url}")
|
||||
protected String idmUrl;
|
||||
|
||||
protected AbstractUserDataService(ObjectMapper objectMapper, SecurityContext securityContext) {
|
||||
protected AbstractUserDataService(ObjectMapper objectMapper) {
|
||||
this.objectMapper = objectMapper;
|
||||
this.securityContext = securityContext;
|
||||
}
|
||||
|
||||
protected HttpResponse<String> sendGetRequest(String url)
|
||||
|
|
@ -39,7 +37,6 @@ public abstract class AbstractUserDataService implements UserDataService {
|
|||
HttpRequest request = HttpRequest.newBuilder()
|
||||
.uri(URI.create(url))
|
||||
.header(HttpHeaders.CONTENT_TYPE, "application/json")
|
||||
.header(HttpHeaders.AUTHORIZATION, "Bearer " + securityContext.getToken())
|
||||
.timeout(Duration.ofSeconds(httpTimeout))
|
||||
.GET()
|
||||
.build();
|
||||
|
|
|
|||
|
|
@ -17,7 +17,6 @@ import org.springframework.util.ClassUtils;
|
|||
import org.springframework.web.util.UriComponentsBuilder;
|
||||
import ru.micord.ervu.account_applications.component.exception.UserDataLoadException;
|
||||
import ru.micord.ervu.account_applications.component.model.Account;
|
||||
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;
|
||||
|
|
@ -31,8 +30,8 @@ public class AccountServiceImpl extends AbstractUserDataService {
|
|||
@ObjectRef
|
||||
public EditableGridColumn editableGridColumnRef;
|
||||
|
||||
public AccountServiceImpl(ObjectMapper objectMapper, SecurityContext securityContext) {
|
||||
super(objectMapper, securityContext);
|
||||
public AccountServiceImpl(ObjectMapper objectMapper) {
|
||||
super(objectMapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -42,7 +41,7 @@ public class AccountServiceImpl extends AbstractUserDataService {
|
|||
}
|
||||
|
||||
private Account fetchAccountById(Object id) throws IOException, InterruptedException {
|
||||
String url = UriComponentsBuilder.fromHttpUrl(ervuUrl)
|
||||
String url = UriComponentsBuilder.fromHttpUrl(idmUrl)
|
||||
.path(PathConstant.ACCOUNTS_PATH)
|
||||
.pathSegment(id.toString())
|
||||
.queryParam("expand", "person,user-domain,region")
|
||||
|
|
|
|||
|
|
@ -16,7 +16,6 @@ import org.springframework.stereotype.Service;
|
|||
import org.springframework.web.util.UriComponentsBuilder;
|
||||
import ru.micord.ervu.account_applications.component.exception.UserDataLoadException;
|
||||
import ru.micord.ervu.account_applications.component.model.Role;
|
||||
import ru.micord.ervu.account_applications.security.context.SecurityContext;
|
||||
import ru.micord.ervu.account_applications.service.constant.PathConstant;
|
||||
|
||||
/**
|
||||
|
|
@ -26,9 +25,8 @@ import ru.micord.ervu.account_applications.service.constant.PathConstant;
|
|||
public class RoleServiceImpl extends AbstractUserDataService {
|
||||
private static final String ROLES = "roles";
|
||||
|
||||
protected RoleServiceImpl(ObjectMapper objectMapper,
|
||||
SecurityContext securityContext) {
|
||||
super(objectMapper, securityContext);
|
||||
protected RoleServiceImpl(ObjectMapper objectMapper) {
|
||||
super(objectMapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -50,7 +48,7 @@ public class RoleServiceImpl extends AbstractUserDataService {
|
|||
}
|
||||
|
||||
private List<Role> fetchRolesByAccountId(Object accountId) throws IOException, InterruptedException {
|
||||
String url = UriComponentsBuilder.fromHttpUrl(ervuUrl)
|
||||
String url = UriComponentsBuilder.fromHttpUrl(idmUrl)
|
||||
.path(PathConstant.ACCOUNTS_PATH)
|
||||
.pathSegment(accountId.toString(), ROLES)
|
||||
.toUriString();
|
||||
|
|
|
|||
|
|
@ -11,7 +11,6 @@ import com.fasterxml.jackson.databind.type.CollectionType;
|
|||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.web.util.UriComponentsBuilder;
|
||||
import ru.micord.ervu.account_applications.component.model.Credential;
|
||||
import ru.micord.ervu.account_applications.security.context.SecurityContext;
|
||||
import ru.micord.ervu.account_applications.service.constant.PathConstant;
|
||||
|
||||
/**
|
||||
|
|
@ -21,8 +20,8 @@ import ru.micord.ervu.account_applications.service.constant.PathConstant;
|
|||
public class UserCredentialsServiceIpml extends AbstractUserDataService {
|
||||
private static final String CREDENTIALS = "credentials";
|
||||
|
||||
public UserCredentialsServiceIpml(ObjectMapper objectMapper, SecurityContext securityContext) {
|
||||
super(objectMapper, securityContext);
|
||||
public UserCredentialsServiceIpml(ObjectMapper objectMapper) {
|
||||
super(objectMapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -32,7 +31,7 @@ public class UserCredentialsServiceIpml extends AbstractUserDataService {
|
|||
}
|
||||
|
||||
private List<Credential> fetchCredentialsByPersonId(Object personId) throws IOException, InterruptedException {
|
||||
String url = UriComponentsBuilder.fromHttpUrl(ervuUrl)
|
||||
String url = UriComponentsBuilder.fromHttpUrl(idmUrl)
|
||||
.path(PathConstant.PERSONS_PATH)
|
||||
.pathSegment(personId.toString(), CREDENTIALS)
|
||||
.toUriString();
|
||||
|
|
|
|||
|
|
@ -4,8 +4,8 @@ package ru.micord.ervu.account_applications.service.constant;
|
|||
* @author Adel Kalimullin
|
||||
*/
|
||||
public final class PathConstant {
|
||||
public static final String ACCOUNTS_PATH = "service/idm/accounts";
|
||||
public static final String PERSONS_PATH = "service/idm/persons";
|
||||
public static final String ACCOUNTS_PATH = "accounts";
|
||||
public static final String PERSONS_PATH = "persons";
|
||||
|
||||
private PathConstant() {
|
||||
}
|
||||
|
|
|
|||
|
|
@ -58,6 +58,7 @@
|
|||
<property name="com.arjuna.ats.arjuna.allowMultipleLastResources" value="true"/>
|
||||
<property name="ervu.url" value="https://ervu-dev.pgs.rtlabs.ru"/>
|
||||
<property name="ervu.pwd.sign.secret_key" value="xoL2Y3VRdQ4phXG85o6dRqcgqb4bk6ULdkJJdlRLhZM="/>
|
||||
<property name="idm.url" value="http://idm"/>
|
||||
</system-properties>
|
||||
<management>
|
||||
<audit-log>
|
||||
|
|
|
|||
|
|
@ -27,3 +27,4 @@ ERVU_HTTP_TIMEOUT=30
|
|||
ERVU_PWD_SIGN_SECRET_KEY=xoL2Y3VRdQ4phXG85o6dRqcgqb4bk6ULdkJJdlRLhZM=
|
||||
KAFKA_ROLE_RECONCILIATION=idmv2.role.reconciliation
|
||||
KAFKA_DOMAIN_RECONCILIATION=idmv2.domain.reconciliation
|
||||
IDM_URL=http://idm
|
||||
Loading…
Add table
Add a link
Reference in a new issue