Skip to content

Commit

Permalink
Remove java-utils usage from OppijenumerorekisteriClient
Browse files Browse the repository at this point in the history
  • Loading branch information
rce committed Jun 19, 2024
1 parent 2f8f53b commit deed196
Show file tree
Hide file tree
Showing 7 changed files with 77 additions and 72 deletions.

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
package fi.vm.sade.organisaatio.client;

import com.fasterxml.jackson.databind.ObjectMapper;
import fi.vm.sade.organisaatio.cas.CasAuthenticatedServiceClient;
import fi.vm.sade.organisaatio.cas.CasClient;
import lombok.extern.slf4j.Slf4j;

import java.io.IOException;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

@Slf4j
public class OppijanumerorekisteriClient extends CasAuthenticatedServiceClient {
private final ObjectMapper mapper;
private final String baseUrl;
public OppijanumerorekisteriClient(HttpClient httpClient, CasClient casClient, String baseUrl, ObjectMapper mapper) {
super(httpClient, casClient, baseUrl);
this.mapper = mapper;
this.baseUrl = baseUrl;
}

public Henkilo getHenkilo(String oid) throws IOException, InterruptedException {
var response = get("/henkilo/" + oid);
if (response.statusCode() == 200) {
return mapper.readValue(response.body(), Henkilo.class);
} else {
throw new RuntimeException("Unexpected status code " + response.statusCode() + " when fetching henkilo " + oid);
}
}

private HttpResponse<String> get(String path) throws IOException, InterruptedException {
var uri = URI.create(baseUrl + path);
log.info("Executing request GET {}", uri);
var request = HttpRequest.newBuilder()
.uri(uri)
.method("GET", HttpRequest.BodyPublishers.noBody())
.header("Accept", "application/json");
var response = sendRequest(request);
log.info("Received response {} {}", response.statusCode(), response.body());
return response;
}

public record Henkilo(String oidHenkilo, String etunimet, String sukunimi) {}
}
Original file line number Diff line number Diff line change
@@ -1,13 +1,22 @@
package fi.vm.sade.organisaatio.config;

import com.fasterxml.jackson.databind.ObjectMapper;
import fi.vm.sade.javautils.http.OphHttpClient;
import fi.vm.sade.javautils.http.auth.CasAuthenticator;
import fi.vm.sade.javautils.httpclient.apache.ApacheOphHttpClient;
import fi.vm.sade.organisaatio.cas.CasClient;
import fi.vm.sade.organisaatio.client.OppijanumerorekisteriClient;
import fi.vm.sade.properties.OphProperties;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;

import java.net.CookieManager;
import java.net.http.HttpClient;
import java.time.Duration;

@Slf4j
@Configuration
public class HttpClientConfiguration {

Expand All @@ -16,7 +25,6 @@ public class HttpClientConfiguration {
public static final String HTTP_CLIENT_VIESTINTA = "viestintaHttpClient";
public static final String HTTP_CLIENT_KOODISTO = "koodistoHttpClient";
public static final String HTTP_CLIENT_LOKALISOINTI = "lokalisointiHttpClient";
public static final String HTTP_CLIENT_OPPIJANUMERO = "oppijanumeroHttpClient";

@Bean
@Primary
Expand All @@ -41,15 +49,21 @@ public OphHttpClient kayttooikeusHttpClient(OphProperties properties) {
return new OphHttpClient.Builder(CALLER_ID).authenticator(authenticator).build();
}

@Bean(name = HTTP_CLIENT_OPPIJANUMERO)
public OphHttpClient oppijanumeroHttpClient(OphProperties properties) {
CasAuthenticator authenticator = new CasAuthenticator.Builder()
.username(properties.require("organisaatio.service.username"))
.password(properties.require("organisaatio.service.password"))
.webCasUrl(properties.url("cas.base"))
.casServiceUrl(properties.url("oppijanumero-service.login"))
@Bean
public OppijanumerorekisteriClient oppijanumerorekisteriClient(OphProperties properties, ObjectMapper objectMapper) {
log.info("Initializing OppijanumerorekisteriClient...");
var username = properties.require("organisaatio.service.username");
var password = properties.require("organisaatio.service.password");
var casBase = properties.require("cas.base");

var httpClient = HttpClient.newBuilder()
.cookieHandler(new CookieManager())
.connectTimeout(Duration.ofSeconds(10))
.build();
return new OphHttpClient.Builder(CALLER_ID).authenticator(authenticator).build();
var casClient = new CasClient(httpClient, casBase, username, password);

var baseUrl = properties.require("url-virkailija") + "/oppijanumerorekisteri-service";
return new OppijanumerorekisteriClient(httpClient, casClient, baseUrl, objectMapper);
}

@Bean(name = HTTP_CLIENT_VIESTINTA)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import fi.vm.sade.organisaatio.api.model.types.OrganisaatioTyyppi;
import fi.vm.sade.organisaatio.business.*;
import fi.vm.sade.organisaatio.business.impl.OrganisaatioNimiMasking;
import fi.vm.sade.organisaatio.client.OppijanumeroClient;
import fi.vm.sade.organisaatio.client.OppijanumerorekisteriClient;
import fi.vm.sade.organisaatio.dto.ChildOidsCriteria;
import fi.vm.sade.organisaatio.dto.OrganisaatioNimiDTO;
import fi.vm.sade.organisaatio.dto.OrganisaatioNimiUpdateDTO;
Expand Down Expand Up @@ -55,7 +55,7 @@
@RequiredArgsConstructor
@Slf4j
public class OrganisaatioApiImpl implements OrganisaatioApi {
private final OppijanumeroClient oppijanumeroClient;
private final OppijanumerorekisteriClient oppijanumerorekisteriClient;
private final OrganisaatioResourceV2 organisaatioResourceV2;

private final OrganisaatioDTOV4ModelMapper organisaatioDTOV4ModelMapper;
Expand Down Expand Up @@ -270,9 +270,9 @@ public OrganisaatioPaivittajaDTO getOrganisaatioPaivittaja(String oid) {
tulos.setPaivittaja(org.getPaivittaja());
tulos.setPaivitysPvm(org.getPaivitysPvm());
try {
OppijanumeroClient.OppijanumeroDto henkilo = oppijanumeroClient.henkilo(org.getPaivittaja());
tulos.setEtuNimet(henkilo.getEtunimet());
tulos.setSukuNimi(henkilo.getSukunimi());
var henkilo = oppijanumerorekisteriClient.getHenkilo(org.getPaivittaja());
tulos.setEtuNimet(henkilo.etunimet());
tulos.setSukuNimi(henkilo.sukunimi());

} catch (Exception ex) {
log.error(ex.getMessage());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
import fi.vm.sade.organisaatio.business.OrganisaatioFindBusinessService;
import fi.vm.sade.organisaatio.business.OrganisaatioNimiService;
import fi.vm.sade.organisaatio.business.exception.NotAuthorizedException;
import fi.vm.sade.organisaatio.client.OppijanumeroClient;
import fi.vm.sade.organisaatio.client.OppijanumerorekisteriClient;
import fi.vm.sade.organisaatio.dto.mapping.OrganisaatioDTOV4ModelMapper;
import fi.vm.sade.organisaatio.dto.mapping.OrganisaatioNimiModelMapper;
import fi.vm.sade.organisaatio.dto.mapping.v3.GroupModelMapperV3;
Expand All @@ -29,8 +29,8 @@ public class OrganisaatioResourceImplV4 extends OrganisaatioApiImpl implements
OrganisaatioResourceV4 {
protected final PermissionChecker permissionChecker;

public OrganisaatioResourceImplV4(OrganisaatioResourceV2 organisaatioResourceV2, OrganisaatioDTOV4ModelMapper organisaatioDTOV4ModelMapper, PermissionChecker permissionChecker, OrganisaatioBusinessService organisaatioBusinessService, OrganisaatioNimiService organisaatioNimiService, OrganisaatioFindBusinessService organisaatioFindBusinessService, HakutoimistoService hakutoimistoService, OppijanumeroClient oppijanumeroClient, OrganisaatioNimiModelMapper organisaatioNimiModelMapper, GroupModelMapperV3 groupModelMapper) {
super(oppijanumeroClient, organisaatioResourceV2, organisaatioDTOV4ModelMapper, organisaatioNimiModelMapper, groupModelMapper, organisaatioBusinessService, organisaatioNimiService, organisaatioFindBusinessService, hakutoimistoService);
public OrganisaatioResourceImplV4(OrganisaatioResourceV2 organisaatioResourceV2, OrganisaatioDTOV4ModelMapper organisaatioDTOV4ModelMapper, PermissionChecker permissionChecker, OrganisaatioBusinessService organisaatioBusinessService, OrganisaatioNimiService organisaatioNimiService, OrganisaatioFindBusinessService organisaatioFindBusinessService, HakutoimistoService hakutoimistoService, OppijanumerorekisteriClient oppijanumerorekisteriClient, OrganisaatioNimiModelMapper organisaatioNimiModelMapper, GroupModelMapperV3 groupModelMapper) {
super(oppijanumerorekisteriClient, organisaatioResourceV2, organisaatioDTOV4ModelMapper, organisaatioNimiModelMapper, groupModelMapper, organisaatioBusinessService, organisaatioNimiService, organisaatioFindBusinessService, hakutoimistoService);
this.permissionChecker = permissionChecker;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,6 @@ kayttooikeus-service.virkailija.haku=${url-virkailija}/kayttooikeus-service/virk
kayttooikeus-service.kutsu=${url-virkailija}/kayttooikeus-service/kutsu

oppijanumero-service.login=${url-virkailija}/oppijanumerorekisteri-service/j_spring_cas_security_check
oppijanumero-service.henkilo=${url-virkailija}/oppijanumerorekisteri-service/henkilo/$1

organisaatio-service.koodisto-service.rest.url=${url-virkailija}/koodisto-service
organisaatio-service.koodisto-service.rest.codeelement=${organisaatio-service.koodisto-service.rest.url}/rest/codeelement/$1

Expand Down

0 comments on commit deed196

Please sign in to comment.