Skip to content

Commit 4c3974c

Browse files
authored
Fjerne GET intrygd-grunnlag (#1348)
* Fjerne GET intrygd-grunnlag * TFP-5660 oppdatere infotrygd-saker * Tillate litt mer word
1 parent e0510e5 commit 4c3974c

File tree

16 files changed

+264
-344
lines changed

16 files changed

+264
-344
lines changed

felles/util/src/main/java/no/nav/vedtak/konfig/Tid.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,11 @@ private Tid() {
1212
// hidden
1313
}
1414

15-
public static LocalDate fomEllerBegynnelse(LocalDate fom) {
15+
public static LocalDate fomEllerMin(LocalDate fom) {
1616
return fom != null ? fom : TIDENES_BEGYNNELSE;
1717
}
1818

19-
public static LocalDate tomEllerEndetid(LocalDate tom) {
19+
public static LocalDate tomEllerMax(LocalDate tom) {
2020
return tom != null ? tom : TIDENES_ENDE;
2121
}
2222
}

felles/util/src/main/java/no/nav/vedtak/util/InputValideringRegex.java

+9
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,15 @@ public class InputValideringRegex {
5555
*/
5656
public static final String FRITEKST = REGEXP_START + TEGN_FRITEKST + REGEXP_SLUTT;
5757

58+
/**
59+
* Bruk dette mønsteret for å validere fritekst til brev.
60+
* <p>
61+
* Godtar i tillegg til alt som er tillatt i navn og adresser også flere andre tegn som er relevante.
62+
* <p>
63+
* Godtar ikke større-enn og mindre-enn tegn da disse kan misbrukes til å gjøre XSS-angrep
64+
*/
65+
public static final String FRITEKST_BREV = REGEXP_START + TEGN_FRITEKST + "\\p{Graph}\\p{M}\\p{N}\\p{P}\\p{Zl}\\p{Zp}" + REGEXP_SLUTT;
66+
5867
/**
5968
* Bruk dette mønsteret for å validere BASE64 "URL and Filename safe".
6069
*
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,19 @@
11
package no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag;
22

3-
import java.time.LocalDate;
4-
import java.time.format.DateTimeFormatter;
53
import java.util.Arrays;
64
import java.util.Collections;
75
import java.util.List;
8-
import java.util.Optional;
96

107
import org.slf4j.Logger;
118
import org.slf4j.LoggerFactory;
129

13-
import jakarta.ws.rs.core.UriBuilder;
1410
import no.nav.vedtak.exception.TekniskException;
1511
import no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.v1.respons.Grunnlag;
1612
import no.nav.vedtak.felles.integrasjon.rest.RestClient;
1713
import no.nav.vedtak.felles.integrasjon.rest.RestConfig;
1814
import no.nav.vedtak.felles.integrasjon.rest.RestRequest;
1915

20-
// Extend og annoter med endpoint, evt default. tokenConfig kan settes til TokenFlow.STS_CC eller AZURE_CC
16+
// Extend og annoter med endpoint, evt default. tokenConfig kan settes til TokenFlow.AZURE_CC
2117
public abstract class AbstractInfotrygdGrunnlag implements InfotrygdGrunnlag {
2218
protected static final Logger LOG = LoggerFactory.getLogger(AbstractInfotrygdGrunnlag.class);
2319

@@ -33,32 +29,6 @@ protected AbstractInfotrygdGrunnlag(RestClient client) {
3329
this.restConfig = RestConfig.forClient(this.getClass());
3430
}
3531

36-
@Override
37-
public List<Grunnlag> hentGrunnlag(String fnr, LocalDate fom, LocalDate tom) {
38-
try {
39-
var path = UriBuilder.fromUri(restConfig.endpoint())
40-
.queryParam("fnr", fnr)
41-
.queryParam("fom", konverter(fom))
42-
.queryParam("tom", konverter(tom))
43-
.build();
44-
return restClient.sendReturnList(RestRequest.newGET(path, restConfig), Grunnlag.class);
45-
} catch (Exception e) {
46-
throw new TekniskException("FP-180125",
47-
String.format("Tjeneste %s gir feil, meld til #infotrygd_replikering hvis dette skjer gjennom lengre tidsperiode.",
48-
restConfig.endpoint()), e);
49-
}
50-
}
51-
52-
@Override
53-
public List<Grunnlag> hentGrunnlagFailSoft(String fnr, LocalDate fom, LocalDate tom) {
54-
try {
55-
return hentGrunnlag(fnr, fom, tom);
56-
} catch (Exception e) {
57-
LOG.warn("Feil ved oppslag mot {}, returnerer ingen grunnlag", restConfig.endpoint(), e);
58-
return Collections.emptyList();
59-
}
60-
}
61-
6232
@Override
6333
public List<Grunnlag> hentGrunnlag(GrunnlagRequest request) {
6434
try {
@@ -82,17 +52,4 @@ public List<Grunnlag> hentGrunnlagFailSoft(GrunnlagRequest request) {
8252
}
8353
}
8454

85-
private static String konverter(LocalDate dato) {
86-
var brukDato = Optional.ofNullable(dato).orElseGet(LocalDate::now);
87-
return brukDato.format(DateTimeFormatter.ISO_LOCAL_DATE);
88-
}
89-
90-
protected RestClient getRestClient() {
91-
return restClient;
92-
}
93-
94-
protected RestConfig getRestConfig() {
95-
return restConfig;
96-
}
97-
9855
}

integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/grunnlag/InfotrygdGrunnlag.java

-7
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,11 @@
11
package no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag;
22

3-
import java.time.LocalDate;
43
import java.util.List;
54

65
import no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.v1.respons.Grunnlag;
76

87
public interface InfotrygdGrunnlag {
98

10-
/*
11-
* Klassisk GET
12-
*/
13-
List<Grunnlag> hentGrunnlag(String fnr, LocalDate fom, LocalDate tom);
14-
15-
List<Grunnlag> hentGrunnlagFailSoft(String fnr, LocalDate fom, LocalDate tom);
169

1710
/*
1811
* POST
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
package no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.v1.respons;
22

3-
public record Arbeidskategori(ArbeidskategoriKode kode, String termnavn) {
3+
public record Arbeidskategori(ArbeidskategoriKode kode, String termnavn) implements InfotrygdKode {
4+
5+
@Override
6+
public String getKode() {
7+
return kode().getKode();
8+
}
49

510
}
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
package no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.v1.respons;
22

3-
public record Behandlingstema(BehandlingstemaKode kode, String termnavn) {
3+
public record Behandlingstema(BehandlingstemaKode kode, String termnavn) implements InfotrygdKode {
44
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.v1.respons;
2+
3+
public interface InfotrygdKode {
4+
5+
Enum<?> kode();
6+
7+
default String getKode() {
8+
return kode() != null ? kode().name() : null;
9+
}
10+
11+
String termnavn();
12+
13+
}
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
package no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.v1.respons;
22

3-
public record Inntektsperiode(InntektsperiodeKode kode, String termnavn) {
3+
public record Inntektsperiode(InntektsperiodeKode kode, String termnavn) implements InfotrygdKode {
44

55
}
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
package no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.v1.respons;
22

3-
public record Status(StatusKode kode, String termnavn) {
3+
public record Status(StatusKode kode, String termnavn) implements InfotrygdKode {
44
}
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
package no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.v1.respons;
22

3-
public record Tema(TemaKode kode, String termnavn) {
3+
public record Tema(TemaKode kode, String termnavn) implements InfotrygdKode {
44

55
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
package no.nav.vedtak.felles.integrasjon.infotrygd.saker;
2+
3+
import java.util.Arrays;
4+
import java.util.Collections;
5+
import java.util.List;
6+
7+
import org.slf4j.Logger;
8+
import org.slf4j.LoggerFactory;
9+
10+
import no.nav.vedtak.exception.TekniskException;
11+
import no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.GrunnlagRequest;
12+
import no.nav.vedtak.felles.integrasjon.infotrygd.saker.v1.respons.InfotrygdSak;
13+
import no.nav.vedtak.felles.integrasjon.rest.RestClient;
14+
import no.nav.vedtak.felles.integrasjon.rest.RestConfig;
15+
import no.nav.vedtak.felles.integrasjon.rest.RestRequest;
16+
17+
// Extend og annoter med endpoint, evt default. tokenConfig kan settes til TokenFlow.AZURE_CC
18+
public abstract class AbstractInfotrygdSaker implements InfotrygdSaker {
19+
protected static final Logger LOG = LoggerFactory.getLogger(AbstractInfotrygdSaker.class);
20+
21+
private final RestClient restClient;
22+
private final RestConfig restConfig;
23+
24+
protected AbstractInfotrygdSaker() {
25+
this(RestClient.client());
26+
}
27+
28+
protected AbstractInfotrygdSaker(RestClient client) {
29+
this.restClient = client;
30+
this.restConfig = RestConfig.forClient(this.getClass());
31+
}
32+
33+
@Override
34+
public List<InfotrygdSak> hentSaker(GrunnlagRequest request) {
35+
try {
36+
var rrequest = RestRequest.newPOSTJson(request, restConfig.endpoint(), restConfig);
37+
var resultat = restClient.send(rrequest, InfotrygdSak[].class);
38+
return Arrays.asList(resultat);
39+
} catch (Exception e) {
40+
throw new TekniskException("FP-180125",
41+
String.format("Tjeneste %s gir feil, meld til #infotrygd_replikering hvis dette skjer gjennom lengre tidsperiode.",
42+
restConfig.endpoint()), e);
43+
}
44+
}
45+
46+
@Override
47+
public List<InfotrygdSak> hentSakerFailSoft(GrunnlagRequest request) {
48+
try {
49+
return hentSaker(request);
50+
} catch (Exception e) {
51+
LOG.warn("Feil ved oppslag mot {}, returnerer ingen grunnlag", restConfig.endpoint(), e);
52+
return Collections.emptyList();
53+
}
54+
}
55+
56+
}
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
package no.nav.vedtak.felles.integrasjon.infotrygd.saker;
22

3-
import no.nav.vedtak.felles.integrasjon.infotrygd.saker.v1.respons.Saker;
3+
import java.util.List;
44

5-
import java.time.LocalDate;
5+
import no.nav.vedtak.felles.integrasjon.infotrygd.grunnlag.GrunnlagRequest;
6+
import no.nav.vedtak.felles.integrasjon.infotrygd.saker.v1.respons.InfotrygdSak;
67

78
public interface InfotrygdSaker {
89

9-
Saker getSaker(String fnr, LocalDate fom);
10+
List<InfotrygdSak> hentSaker(GrunnlagRequest request);
11+
12+
List<InfotrygdSak> hentSakerFailSoft(GrunnlagRequest request);
1013

1114
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package no.nav.vedtak.felles.integrasjon.infotrygd.saker.v1.respons;
2+
3+
import java.time.LocalDate;
4+
5+
public record InfotrygdSak(LocalDate iverksatt, SakResultat resultat, LocalDate registrert, Saksnummer sakId, LocalDate mottatt,
6+
SakType type, LocalDate vedtatt, SakValg valg, SakUndervalg undervalg, SakNivå nivaa) {
7+
8+
9+
10+
public String saksBlokkNummer() {
11+
return sakId().blokk() + nrFra(sakId().nr());
12+
}
13+
14+
public String saksNummerBlokk() {
15+
return nrFra(sakId().nr()) + sakId().blokk();
16+
}
17+
18+
private static String nrFra(int nr) {
19+
return nr < 10 ? "0" + nr : String.valueOf(nr);
20+
}
21+
22+
23+
public record Saksnummer(String blokk, int nr) { }
24+
25+
public interface InfotrygdKode {
26+
String kode();
27+
String termnavn();
28+
}
29+
30+
public record SakValg(String kode, String termnavn) implements InfotrygdKode { }
31+
32+
public record SakUndervalg(String kode, String termnavn) implements InfotrygdKode { }
33+
34+
public record SakNivå(String kode, String termnavn) implements InfotrygdKode { }
35+
36+
public record SakType(String kode, String termnavn) implements InfotrygdKode { }
37+
38+
public record SakResultat(String kode, String termnavn) implements InfotrygdKode { }
39+
40+
}

integrasjon/infotrygd-grunnlag-klient/src/main/java/no/nav/vedtak/felles/integrasjon/infotrygd/saker/v1/respons/Saker.java

-84
This file was deleted.

0 commit comments

Comments
 (0)