1
1
package no .nav .vedtak .sikkerhet .abac ;
2
2
3
- import static no .nav .vedtak .sikkerhet .abac .AbacResultat .AVSLÅTT_ANNEN_ÅRSAK ;
4
- import static no .nav .vedtak .sikkerhet .abac .AbacResultat .GODKJENT ;
5
-
6
3
import java .util .HashSet ;
7
4
import java .util .LinkedHashSet ;
8
- import java .util .Objects ;
9
5
import java .util .stream .Collectors ;
10
6
11
7
import jakarta .enterprise .context .ApplicationScoped ;
19
15
import no .nav .vedtak .sikkerhet .abac .internal .BeskyttetRessursAttributter ;
20
16
import no .nav .vedtak .sikkerhet .abac .pdp .AppRessursData ;
21
17
import no .nav .vedtak .sikkerhet .abac .policy .EksternBrukerPolicies ;
22
- import no .nav .vedtak .sikkerhet .abac .policy .ForeldrepengerAttributter ;
23
18
import no .nav .vedtak .sikkerhet .abac .policy .InternBrukerPolicies ;
24
19
import no .nav .vedtak .sikkerhet .abac .policy .SystemressursPolicies ;
25
20
import no .nav .vedtak .sikkerhet .abac .policy .Tilgangsvurdering ;
26
21
import no .nav .vedtak .sikkerhet .kontekst .AnsattGruppe ;
27
- import no .nav .vedtak .sikkerhet .kontekst .IdentType ;
28
22
import no .nav .vedtak .sikkerhet .tilgang .AnsattGruppeKlient ;
29
23
import no .nav .vedtak .sikkerhet .tilgang .PopulasjonKlient ;
30
24
37
31
public class PepImpl implements Pep {
38
32
39
33
private static final Logger LOG = LoggerFactory .getLogger (PepImpl .class );
40
- private static final String PIP = ForeldrepengerAttributter .RESOURCE_TYPE_INTERNAL_PIP ;
41
34
42
- private PdpKlient pdpKlient ;
43
35
private PopulasjonKlient populasjonKlient ;
44
36
private AnsattGruppeKlient ansattGruppeKlient ;
45
37
private PdpRequestBuilder pdpRequestBuilder ;
@@ -50,8 +42,7 @@ public class PepImpl implements Pep {
50
42
}
51
43
52
44
@ Inject
53
- public PepImpl (PdpKlient pdpKlient , PopulasjonKlient populasjonKlient , AnsattGruppeKlient ansattGruppeKlient , PdpRequestBuilder pdpRequestBuilder ) {
54
- this .pdpKlient = pdpKlient ;
45
+ public PepImpl (PopulasjonKlient populasjonKlient , AnsattGruppeKlient ansattGruppeKlient , PdpRequestBuilder pdpRequestBuilder ) {
55
46
this .populasjonKlient = populasjonKlient ;
56
47
this .ansattGruppeKlient = ansattGruppeKlient ;
57
48
this .pdpRequestBuilder = pdpRequestBuilder ;
@@ -61,36 +52,10 @@ public PepImpl(PdpKlient pdpKlient, PopulasjonKlient populasjonKlient, AnsattGru
61
52
public Tilgangsbeslutning vurderTilgang (BeskyttetRessursAttributter beskyttetRessursAttributter ) {
62
53
var appRessurser = pdpRequestBuilder .lagAppRessursData (beskyttetRessursAttributter .getDataAttributter ());
63
54
64
- if (IdentType .Systemressurs .equals (beskyttetRessursAttributter .getIdentType ())) {
65
- var pdpResultat = vurderLokalTilgang (beskyttetRessursAttributter , appRessurser );
66
- sammenlignOgLogg (beskyttetRessursAttributter , appRessurser , pdpResultat .beslutningKode ());
67
- return pdpResultat ;
68
- } else if (PIP .equals (beskyttetRessursAttributter .getResourceType ())) { // pip tilgang bør vurderes kun lokalt
69
- return new Tilgangsbeslutning (AVSLÅTT_ANNEN_ÅRSAK , beskyttetRessursAttributter , appRessurser );
70
- } else {
71
- var pdpResultat = pdpKlient .forespørTilgang (beskyttetRessursAttributter , pdpRequestBuilder .abacDomene (), appRessurser );
72
- sammenlignOgLogg (beskyttetRessursAttributter , appRessurser , pdpResultat .beslutningKode ());
73
- return pdpResultat ;
74
- }
75
- }
76
-
77
- protected Tilgangsbeslutning vurderLokalTilgang (BeskyttetRessursAttributter beskyttetRessursAttributter , AppRessursData appRessursData ) {
78
- var harTilgang = SystemressursPolicies .riktigClusterNamespacePreAuth (beskyttetRessursAttributter .getBrukerId (), beskyttetRessursAttributter .getAvailabilityType ());
79
- return new Tilgangsbeslutning (harTilgang ? GODKJENT : AVSLÅTT_ANNEN_ÅRSAK , beskyttetRessursAttributter , appRessursData );
55
+ var vurdering = forespørTilgang (beskyttetRessursAttributter , appRessurser );
56
+ return new Tilgangsbeslutning (vurdering .tilgangResultat (), beskyttetRessursAttributter , appRessurser );
80
57
}
81
58
82
- private void sammenlignOgLogg (BeskyttetRessursAttributter beskyttetRessursAttributter , AppRessursData appRessursData , AbacResultat resultat ) {
83
- try {
84
- var lokalt = forespørTilgang (beskyttetRessursAttributter , appRessursData );
85
- if (!Objects .equals (lokalt .tilgangResultat (), resultat )) {
86
- var metode = beskyttetRessursAttributter .getServicePath ();
87
- LOG .info ("FPEGENTILGANG: ulikt svar - abac {} tilgang {} - årsak {} - metode {}" , resultat , lokalt .tilgangResultat (), lokalt .årsak (), metode );
88
- }
89
- } catch (Exception e ) {
90
- var metode = beskyttetRessursAttributter .getServicePath ();
91
- LOG .info ("FPEGENTILGANG: feil for metode {}" , metode , e );
92
- }
93
- }
94
59
95
60
// Skal kunne kalles fra evt subklasser av PepImpl
96
61
protected Tilgangsvurdering forespørTilgang (BeskyttetRessursAttributter beskyttetRessursAttributter , AppRessursData appRessursData ) {
0 commit comments