Skip to content

Commit 21f4040

Browse files
authored
TFP-5972 støtte for å sende saksnummer til fptilgang (#1426)
1 parent 96ec656 commit 21f4040

File tree

5 files changed

+34
-9
lines changed

5 files changed

+34
-9
lines changed

felles/abac-kontekst/src/main/java/no/nav/foreldrepenger/sikkerhet/populasjon/TilgangKlient.java

+17-5
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import no.nav.vedtak.felles.integrasjon.rest.RestConfig;
1717
import no.nav.vedtak.felles.integrasjon.rest.RestRequest;
1818
import no.nav.vedtak.felles.integrasjon.rest.TokenFlow;
19+
import no.nav.vedtak.sikkerhet.abac.AbacResultat;
1920
import no.nav.vedtak.sikkerhet.abac.policy.Tilgangsvurdering;
2021
import no.nav.vedtak.sikkerhet.kontekst.AnsattGruppe;
2122
import no.nav.vedtak.sikkerhet.tilgang.AnsattGruppeKlient;
@@ -53,17 +54,19 @@ public Set<AnsattGruppe> vurderAnsattGrupper(UUID ansattOid, Set<AnsattGruppe> p
5354
}
5455

5556
@Override
56-
public Tilgangsvurdering vurderTilgangInternBruker(UUID ansattOid, Set<String> personIdenter, Set<String> aktørIdenter) {
57-
var request = new PopulasjonInternRequest(ansattOid, personIdenter, aktørIdenter);
57+
public Tilgangsvurdering vurderTilgangInternBruker(UUID ansattOid, Set<String> personIdenter, Set<String> aktørIdenter, String saksnummer) {
58+
var request = new PopulasjonInternRequest(ansattOid, personIdenter, aktørIdenter, saksnummer);
5859
var rrequest = RestRequest.newPOSTJson(request, internBrukerUri, restConfig).timeout(Duration.ofSeconds(3));
59-
return klient.send(rrequest, Tilgangsvurdering.class);
60+
var resultat = klient.send(rrequest, TilgangsvurderingDto.class);
61+
return resultat.tilTilgangsvurdering();
6062
}
6163

6264
@Override
6365
public Tilgangsvurdering vurderTilgangEksternBruker(String subjectPersonIdent, Set<String> personIdenter, Set<String> aktørIdenter) {
6466
var request = new PopulasjonEksternRequest(subjectPersonIdent, personIdenter, aktørIdenter);
6567
var rrequest = RestRequest.newPOSTJson(request, eksternBrukerUri, restConfig).timeout(Duration.ofSeconds(3));
66-
return klient.send(rrequest, Tilgangsvurdering.class);
68+
var resultat = klient.send(rrequest, TilgangsvurderingDto.class);
69+
return resultat.tilTilgangsvurdering();
6770
}
6871

6972
private record GruppeDto(@NotNull @Valid Set<AnsattGruppe> grupper) { }
@@ -73,12 +76,21 @@ private record UidGruppeDto(@NotNull UUID uid, @Valid @NotNull Set<AnsattGruppe>
7376

7477
private record PopulasjonInternRequest(UUID ansattOid,
7578
Set<String> personIdenter,
76-
Set<String> aktørIdenter) {
79+
Set<String> aktørIdenter,
80+
String saksnummer) {
7781
}
7882

7983
private record PopulasjonEksternRequest(String subjectPersonIdent,
8084
Set<String> personIdenter,
8185
Set<String> aktørIdenter) {
8286
}
8387

88+
// TBD når lager abac-kontrakt TilgangResultat eller
89+
public record TilgangsvurderingDto(AbacResultat tilgangResultat, String årsak) {
90+
91+
public Tilgangsvurdering tilTilgangsvurdering() {
92+
return new Tilgangsvurdering(tilgangResultat, årsak, Set.of());
93+
}
94+
}
95+
8496
}

felles/abac/src/main/java/no/nav/vedtak/sikkerhet/abac/PepImpl.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ public AbacResultat vurderTilgang(BeskyttetRessursAttributter beskyttetRessursAt
119119
return Tilgangsvurdering.godkjenn();
120120
}
121121
var popTilgang = populasjonKlient.vurderTilgangInternBruker(beskyttetRessursAttributter.getBrukerOid(),
122-
appRessursData.getFødselsnumre(), appRessursData.getAktørIdSet());
122+
appRessursData.getFødselsnumre(), appRessursData.getAktørIdSet(), appRessursData.getSaksnummer());
123123
if (popTilgang == null) {
124124
return Tilgangsvurdering.avslåGenerell("Feil ved kontakt med tilgangskontroll");
125125
}

felles/abac/src/main/java/no/nav/vedtak/sikkerhet/abac/pdp/AppRessursData.java

+13
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ public class AppRessursData {
2121

2222
private String auditIdent;
2323

24+
private String saksnummer;
2425
private final Set<String> aktørIdSet = new LinkedHashSet<>();
2526
private final Set<String> fødselsnumre = new LinkedHashSet<>();
2627
private final Map<ForeldrepengerDataKeys, RessursData> resources = new HashMap<>();
@@ -29,6 +30,10 @@ public String getAuditIdent() {
2930
return Optional.ofNullable(auditIdent).orElse(auditAktørId);
3031
}
3132

33+
public String getSaksnummer() {
34+
return saksnummer;
35+
}
36+
3237
public Set<String> getAktørIdSet() {
3338
return aktørIdSet;
3439
}
@@ -69,6 +74,14 @@ public Builder medAuditIdent(String ident) {
6974
return this;
7075
}
7176

77+
public Builder medSaksnummer(String saksnummer) {
78+
if (saksnummer == null || pdpRequest.saksnummer != null) {
79+
throw new IllegalArgumentException("Utviklerfeil: saksnummer er null eller allerede satt");
80+
}
81+
pdpRequest.saksnummer = saksnummer;
82+
return this;
83+
}
84+
7285
public Builder leggTilAktørId(String aktørId) {
7386
pdpRequest.aktørIdSet.add(aktørId);
7487
return this;

felles/abac/src/main/java/no/nav/vedtak/sikkerhet/tilgang/PopulasjonKlient.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
public interface PopulasjonKlient {
99

10-
Tilgangsvurdering vurderTilgangInternBruker(UUID ansattOid, Set<String> personIdenter, Set<String> aktørIdenter);
10+
Tilgangsvurdering vurderTilgangInternBruker(UUID ansattOid, Set<String> personIdenter, Set<String> aktørIdenter, String saksnummer);
1111
Tilgangsvurdering vurderTilgangEksternBruker(String subjectPersonIdent, Set<String> personIdenter, Set<String> aktørIdenter);
1212

1313
}

felles/abac/src/test/java/no/nav/vedtak/sikkerhet/abac/PepImplTest.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -172,11 +172,11 @@ void skal_kalle_pdp_for_annet_enn_pip_tjenester() {
172172
var appressursData = AppRessursData.builder().leggTilAktørId("1234567890123").build();
173173

174174
when(pdpRequestBuilder.lagAppRessursData(any())).thenReturn(appressursData);
175-
when(popKlientMock.vurderTilgangInternBruker(any(), any(), any())).thenReturn(Tilgangsvurdering.godkjenn());
175+
when(popKlientMock.vurderTilgangInternBruker(any(), any(), any(), any())).thenReturn(Tilgangsvurdering.godkjenn());
176176

177177
@SuppressWarnings("unused") var permit = pep.vurderTilgang(attributter);
178178
verifyNoInteractions(gruppeKlientMock);
179-
verify(popKlientMock).vurderTilgangInternBruker(attributter.getBrukerOid(), Set.of(), appressursData.getAktørIdSet());
179+
verify(popKlientMock).vurderTilgangInternBruker(attributter.getBrukerOid(), Set.of(), appressursData.getAktørIdSet(), null);
180180
}
181181

182182
private BeskyttetRessursAttributter lagBeskyttetRessursAttributter() {

0 commit comments

Comments
 (0)