Skip to content

Commit e98085d

Browse files
authored
Fjerner bruk av callback url og scope. (#2540)
1 parent 59d705f commit e98085d

File tree

9 files changed

+62
-87
lines changed

9 files changed

+62
-87
lines changed

domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/InnhentingSamletTjeneste.java

+2-5
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,11 @@
88
import java.util.Set;
99
import java.util.stream.Collectors;
1010

11-
import jakarta.enterprise.context.ApplicationScoped;
12-
import jakarta.inject.Inject;
13-
1411
import org.slf4j.Logger;
1512
import org.slf4j.LoggerFactory;
1613

14+
import jakarta.enterprise.context.ApplicationScoped;
15+
import jakarta.inject.Inject;
1716
import no.nav.abakus.iaygrunnlag.kodeverk.InntektskildeType;
1817
import no.nav.abakus.iaygrunnlag.kodeverk.YtelseStatus;
1918
import no.nav.abakus.iaygrunnlag.kodeverk.YtelseType;
@@ -44,8 +43,6 @@ public class InnhentingSamletTjeneste {
4443
private static final Logger LOG = LoggerFactory.getLogger(InnhentingSamletTjeneste.class);
4544
private static final Set<YtelseType> LØNNSKOMP_FOR_YTELSER = Set.of(YtelseType.FORELDREPENGER, YtelseType.SVANGERSKAPSPENGER);
4645
private final boolean isDev = Environment.current().isDev();
47-
private final boolean isLocal = Environment.current().isLocal();
48-
4946
private ArbeidsforholdTjeneste arbeidsforholdTjeneste;
5047
private InntektTjeneste inntektTjeneste;
5148
private FpwsproxyKlient fpwsproxyKlient;

domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/RegisterdataInnhentingTask.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ private IAYRegisterInnhentingTjeneste finnInnhenter(YtelseType ytelseType) {
5757

5858
@Override
5959
protected void prosesser(ProsessTaskData prosessTaskData) {
60-
String nyKoblingId = prosessTaskData.getPropertyValue(TaskConstants.NY_KOBLING_ID);
60+
String nyKoblingId = prosessTaskData.getPropertyValue(TaskConstants.KOBLING_ID);
6161
Long koblingId = nyKoblingId != null ? Long.valueOf(nyKoblingId) : Long.valueOf(prosessTaskData.getBehandlingId());
6262
Kobling kobling = koblingTjeneste.hent(koblingId);
6363
LOG.info("Starter registerinnhenting for sak=[{}, {}] med behandling='{}'", kobling.getSaksnummer(), kobling.getYtelseType(),
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,16 @@
11
package no.nav.foreldrepenger.abakus.registerdata.callback;
22

3-
import java.net.URI;
4-
import java.net.URISyntaxException;
5-
import java.util.LinkedHashMap;
6-
import java.util.Map;
7-
import java.util.Optional;
83
import java.util.UUID;
94

105
import jakarta.enterprise.context.ApplicationScoped;
116
import jakarta.inject.Inject;
127
import no.nav.abakus.callback.registerdata.CallbackDto;
138
import no.nav.abakus.callback.registerdata.Grunnlag;
149
import no.nav.abakus.callback.registerdata.ReferanseDto;
15-
import no.nav.foreldrepenger.abakus.domene.iay.InntektArbeidYtelseGrunnlag;
1610
import no.nav.foreldrepenger.abakus.iay.InntektArbeidYtelseTjeneste;
1711
import no.nav.foreldrepenger.abakus.kobling.Kobling;
1812
import no.nav.foreldrepenger.abakus.kobling.KoblingTjeneste;
1913
import no.nav.foreldrepenger.abakus.kobling.TaskConstants;
20-
import no.nav.vedtak.exception.TekniskException;
21-
import no.nav.vedtak.felles.integrasjon.rest.RestClient;
22-
import no.nav.vedtak.felles.integrasjon.rest.RestConfig;
23-
import no.nav.vedtak.felles.integrasjon.rest.RestRequest;
24-
import no.nav.vedtak.felles.integrasjon.rest.TokenFlow;
2514
import no.nav.vedtak.felles.prosesstask.api.ProsessTask;
2615
import no.nav.vedtak.felles.prosesstask.api.ProsessTaskData;
2716
import no.nav.vedtak.felles.prosesstask.api.ProsessTaskHandler;
@@ -32,27 +21,23 @@ public class CallbackTask implements ProsessTaskHandler {
3221

3322
public static final String EKSISTERENDE_GRUNNLAG_REF = "grunnlag.ref.old";
3423

35-
private static final Map<String, RestConfig> CALLBACK_MAP = new LinkedHashMap<>(2);
36-
37-
private RestClient restClient;
24+
private FpsakKlient fpsakKlient;
3825
private KoblingTjeneste koblingTjeneste;
3926
private InntektArbeidYtelseTjeneste inntektArbeidYtelseTjeneste;
4027

4128
CallbackTask() {
4229
}
4330

4431
@Inject
45-
public CallbackTask(KoblingTjeneste koblingTjeneste, InntektArbeidYtelseTjeneste inntektArbeidYtelseTjeneste) {
46-
this.restClient = RestClient.client();
32+
public CallbackTask(FpsakKlient fpsakKlient, KoblingTjeneste koblingTjeneste, InntektArbeidYtelseTjeneste inntektArbeidYtelseTjeneste) {
33+
this.fpsakKlient = fpsakKlient;
4734
this.koblingTjeneste = koblingTjeneste;
4835
this.inntektArbeidYtelseTjeneste = inntektArbeidYtelseTjeneste;
4936
}
5037

5138
@Override
5239
public void doTask(ProsessTaskData data) {
53-
String callbackUrl = data.getPropertyValue(TaskConstants.CALLBACK_URL);
54-
String callbackScope = data.getPropertyValue(TaskConstants.CALLBACK_SCOPE);
55-
String nyKoblingId = data.getPropertyValue(TaskConstants.NY_KOBLING_ID);
40+
String nyKoblingId = data.getPropertyValue(TaskConstants.KOBLING_ID);
5641
Long koblingId = nyKoblingId != null ? Long.valueOf(nyKoblingId) : Long.valueOf(data.getBehandlingId());
5742
Kobling kobling = koblingTjeneste.hent(koblingId);
5843

@@ -63,8 +48,7 @@ public void doTask(ProsessTaskData data) {
6348
setInformasjonOmEksisterendeGrunnlag(data, callbackDto);
6449
setInformasjonOmNyttGrunnlag(kobling, data, callbackDto);
6550

66-
var restConfig = getRestConfigFor(callbackUrl, callbackScope);
67-
restClient.sendReturnOptional(RestRequest.newPOSTJson(callbackDto, restConfig.endpoint(), restConfig), String.class);
51+
fpsakKlient.sendCallback(callbackDto);
6852
}
6953

7054
private void setInformasjonOmAvsenderRef(Kobling kobling, CallbackDto callbackDto) {
@@ -84,7 +68,7 @@ private void setInformasjonOmEksisterendeGrunnlag(ProsessTaskData data, Callback
8468
}
8569

8670
private void setInformasjonOmNyttGrunnlag(Kobling kobling, ProsessTaskData data, CallbackDto callbackDto) {
87-
Optional<InntektArbeidYtelseGrunnlag> grunnlag = inntektArbeidYtelseTjeneste.hentGrunnlagFor(kobling.getKoblingReferanse());
71+
var grunnlag = inntektArbeidYtelseTjeneste.hentGrunnlagFor(kobling.getKoblingReferanse());
8872
grunnlag.ifPresent(gr -> {
8973
ReferanseDto grunnlagRef = new ReferanseDto();
9074
grunnlagRef.setReferanse(gr.getGrunnlagReferanse().getReferanse());
@@ -96,17 +80,4 @@ private void setInformasjonOmNyttGrunnlag(Kobling kobling, ProsessTaskData data,
9680
}
9781
}
9882

99-
private RestConfig getRestConfigFor(String url, String scope) {
100-
var key = url + scope;
101-
if (CALLBACK_MAP.get(key) == null) {
102-
try {
103-
var uri = new URI(url);
104-
var restConfig = new RestConfig(TokenFlow.ADAPTIVE, uri, scope, null);
105-
CALLBACK_MAP.put(key, restConfig);
106-
} catch (URISyntaxException e) {
107-
throw new TekniskException("FP-349977", String.format("Ugyldig callback url ved callback etter registerinnhenting: %s", url));
108-
}
109-
}
110-
return CALLBACK_MAP.get(key);
111-
}
11283
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
package no.nav.foreldrepenger.abakus.registerdata.callback;
2+
3+
import java.net.URI;
4+
5+
import org.slf4j.Logger;
6+
import org.slf4j.LoggerFactory;
7+
8+
import jakarta.enterprise.context.ApplicationScoped;
9+
import jakarta.ws.rs.core.UriBuilder;
10+
import jakarta.ws.rs.core.UriBuilderException;
11+
import no.nav.abakus.callback.registerdata.CallbackDto;
12+
import no.nav.vedtak.felles.integrasjon.rest.FpApplication;
13+
import no.nav.vedtak.felles.integrasjon.rest.RestClient;
14+
import no.nav.vedtak.felles.integrasjon.rest.RestClientConfig;
15+
import no.nav.vedtak.felles.integrasjon.rest.RestConfig;
16+
import no.nav.vedtak.felles.integrasjon.rest.RestRequest;
17+
import no.nav.vedtak.felles.integrasjon.rest.TokenFlow;
18+
19+
@ApplicationScoped
20+
@RestClientConfig(tokenConfig = TokenFlow.AZUREAD_CC, application = FpApplication.FPSAK)
21+
public class FpsakKlient {
22+
23+
private static final Logger LOG = LoggerFactory.getLogger(FpsakKlient.class);
24+
protected static final String CALLBACK_PATH = "/api/registerdata/iay/callback";
25+
26+
private final RestClient restClient;
27+
private final RestConfig restConfig;
28+
private final URI endpointFpsak;
29+
30+
public FpsakKlient() {
31+
this.restClient = RestClient.client();
32+
this.restConfig = RestConfig.forClient(this.getClass());
33+
this.endpointFpsak = UriBuilder.fromUri(restConfig.endpoint()).path(CALLBACK_PATH).build();
34+
}
35+
36+
public void sendCallback(CallbackDto callbackDto) {
37+
try {
38+
LOG.info("Sender callback til fpsak.");
39+
restClient.sendReturnOptional(RestRequest.newPOSTJson(callbackDto, endpointFpsak, restConfig), String.class);
40+
LOG.info("Callback sendt OK til fpsak.");
41+
} catch (UriBuilderException | IllegalArgumentException e) {
42+
throw new IllegalArgumentException("Ugyldig callback url ved callback etter registerinnhenting.");
43+
}
44+
}
45+
46+
}

domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/tjeneste/InnhentRegisterdataTjeneste.java

+2-7
Original file line numberDiff line numberDiff line change
@@ -111,24 +111,19 @@ public String triggAsyncInnhent(InnhentRegisterdataRequest dto) {
111111
var innhentingTask = ProsessTaskData.forProsessTask(RegisterdataInnhentingTask.class);
112112
var callbackTask = ProsessTaskData.forProsessTask(CallbackTask.class);
113113
innhentingTask.setAktørId(kobling.getAktørId().getId());
114-
innhentingTask.setProperty(TaskConstants.GAMMEL_KOBLING_ID, kobling.getId().toString());
115-
innhentingTask.setProperty(TaskConstants.NY_KOBLING_ID, kobling.getId().toString());
114+
innhentingTask.setProperty(TaskConstants.KOBLING_ID, kobling.getId().toString());
116115
try {
117116
innhentingTask.setPayload(JsonObjectMapper.getMapper().writeValueAsString(dto));
118117
} catch (JsonProcessingException e) {
119118
throw new RuntimeException("Feil i serialisering av innhentingrequest", e);
120119
}
121120
callbackTask.setAktørId(kobling.getAktørId().getId());
122-
callbackTask.setProperty(TaskConstants.GAMMEL_KOBLING_ID, kobling.getId().toString());
123-
callbackTask.setProperty(TaskConstants.NY_KOBLING_ID, kobling.getId().toString());
121+
callbackTask.setProperty(TaskConstants.KOBLING_ID, kobling.getId().toString());
124122

125123
Optional<GrunnlagReferanse> eksisterendeGrunnlagRef = hentSisteReferanseFor(kobling.getKoblingReferanse());
126124
eksisterendeGrunnlagRef.map(GrunnlagReferanse::getReferanse)
127125
.ifPresent(ref -> callbackTask.setProperty(EKSISTERENDE_GRUNNLAG_REF, ref.toString()));
128126

129-
callbackTask.setProperty(TaskConstants.CALLBACK_URL, dto.getCallbackUrl());
130-
callbackTask.setProperty(TaskConstants.CALLBACK_SCOPE, dto.getCallbackScope());
131-
132127
taskGruppe.addNesteSekvensiell(innhentingTask);
133128
taskGruppe.addNesteSekvensiell(callbackTask);
134129
taskGruppe.setCallIdFraEksisterende();

domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/tjeneste/RegisterdataRestTjeneste.java

-3
Original file line numberDiff line numberDiff line change
@@ -77,9 +77,6 @@ public RegisterdataRestTjeneste(InnhentRegisterdataTjeneste innhentTjeneste, Kob
7777
@SuppressWarnings({"findsecbugs:JAXRS_ENDPOINT", "resource"})
7878
public Response innhentOgLagreRegisterdataAsync(@Parameter(name = "innhent") @Valid InnhentRegisterdataAbacDto dto) {
7979
Response response;
80-
if (dto.getCallbackUrl() == null || dto.getCallbackScope() == null) {
81-
return Response.status(HttpURLConnection.HTTP_FORBIDDEN).build();
82-
}
8380
if (!YtelseType.abakusYtelser().contains(dto.getYtelseType())) {
8481
return Response.status(HttpURLConnection.HTTP_BAD_REQUEST).build();
8582
}

domenetjenester/kobling/src/main/java/no/nav/foreldrepenger/abakus/kobling/KoblingTask.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import no.nav.foreldrepenger.abakus.kobling.repository.LåsRepository;
44
import no.nav.vedtak.felles.prosesstask.api.ProsessTaskData;
55
import no.nav.vedtak.felles.prosesstask.api.ProsessTaskHandler;
6-
import no.nav.vedtak.log.mdc.MdcExtendedLogContext;
76

87
public abstract class KoblingTask implements ProsessTaskHandler {
98

@@ -18,7 +17,7 @@ public KoblingTask(LåsRepository låsRepository) {
1817

1918
@Override
2019
public void doTask(ProsessTaskData prosessTaskData) {
21-
String nyKoblingId = prosessTaskData.getPropertyValue(TaskConstants.NY_KOBLING_ID);
20+
String nyKoblingId = prosessTaskData.getPropertyValue(TaskConstants.KOBLING_ID);
2221
Long koblingId = nyKoblingId != null ? Long.valueOf(nyKoblingId) : Long.valueOf(prosessTaskData.getBehandlingId());
2322

2423
KoblingLås koblingLås = låsRepository.taLås(koblingId);
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
11
package no.nav.foreldrepenger.abakus.kobling;
22

33
public final class TaskConstants {
4-
public static final String GAMMEL_KOBLING_ID = "behandlingId";
5-
public static final String NY_KOBLING_ID = "koblingId";
6-
public static final String CALLBACK_URL = "callbackUrl";
7-
public static final String CALLBACK_SCOPE = "callbackScope";
4+
public static final String KOBLING_ID = "koblingId";
85
private TaskConstants() {
96
}
107
}

kontrakt/src/main/java/no/nav/abakus/iaygrunnlag/request/InnhentRegisterdataRequest.java

+3-30
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,6 @@
33
import java.util.Set;
44
import java.util.UUID;
55

6-
import jakarta.validation.Valid;
7-
import jakarta.validation.constraints.NotNull;
8-
import jakarta.validation.constraints.Pattern;
9-
106
import com.fasterxml.jackson.annotation.JsonAutoDetect;
117
import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
128
import com.fasterxml.jackson.annotation.JsonCreator;
@@ -15,6 +11,9 @@
1511
import com.fasterxml.jackson.annotation.JsonInclude.Include;
1612
import com.fasterxml.jackson.annotation.JsonProperty;
1713

14+
import jakarta.validation.Valid;
15+
import jakarta.validation.constraints.NotNull;
16+
import jakarta.validation.constraints.Pattern;
1817
import no.nav.abakus.iaygrunnlag.Periode;
1918
import no.nav.abakus.iaygrunnlag.PersonIdent;
2019
import no.nav.abakus.iaygrunnlag.kodeverk.YtelseType;
@@ -72,16 +71,6 @@ public class InnhentRegisterdataRequest {
7271
private Set<RegisterdataType> elementer = Set.of(RegisterdataType.ARBEIDSFORHOLD, RegisterdataType.INNTEKT_PENSJONSGIVENDE,
7372
RegisterdataType.YTELSE);
7473

75-
@JsonProperty(value = "callbackUrl")
76-
@Valid
77-
@Pattern(regexp = URL_PATTERN, message = "callbackUrl [${validatedValue}] matcher ikke tillatt url pattern [{regexp}]")
78-
private String callbackUrl;
79-
80-
@JsonProperty(value = "callbackScope")
81-
@Valid
82-
@Pattern(regexp = SCOPE_PATTERN, message = "callbackScope [${validatedValue}] matcher ikke tillatt scope pattern [{regexp}]")
83-
private String callbackScope;
84-
8574
public InnhentRegisterdataRequest(@JsonProperty(value = "saksnummer", required = true) @Valid @NotNull String saksnummer,
8675
@JsonProperty(value = "referanse", required = true) @Valid @NotNull UUID referanse,
8776
@JsonProperty(value = "ytelseType", required = true) @NotNull YtelseType ytelseType,
@@ -141,22 +130,6 @@ public void setOpptjeningsperiode(Periode opptjeningsperiode) {
141130
this.opptjeningsperiode = opptjeningsperiode;
142131
}
143132

144-
public String getCallbackUrl() {
145-
return callbackUrl;
146-
}
147-
148-
public void setCallbackUrl(String callbackUrl) {
149-
this.callbackUrl = callbackUrl;
150-
}
151-
152-
public String getCallbackScope() {
153-
return callbackScope;
154-
}
155-
156-
public void setCallbackScope(String callbackScope) {
157-
this.callbackScope = callbackScope;
158-
}
159-
160133
public Set<RegisterdataType> getElementer() {
161134
return elementer;
162135
}

0 commit comments

Comments
 (0)