package Ġno . nav . mod i ap erson over s ik t . infrastructure . til gang sk ont roll Ċ Ċ import Ġno . nav . common . auth . subject . S so Token Ċ import Ġno . nav . common . auth . subject . Subject Handler Ċ import Ġno . nav . mod i ap erson over s ik t . consumer . ab ac .* Ċ import Ġno . nav . mod i ap erson over s ik t . consumer . ab ac . Nav Attributes .* Ċ import Ġno . nav . mod i ap erson over s ik t . consumer . ab ac . Standard Attribut ter . ACTION _ ID Ċ import Ġjava . util .* Ċ Ċ private Ġfun Ġparse Oid c Token ( sso Token : ĠS so Token ): ĠString Ġ{ ĊĠĠĠ Ġval Ġfragments Ġ= Ġs so Token . token . split ('.') ĊĠĠĠ Ġreturn Ġif Ġ( fragments . size Ġ== Ġ 1 ) Ġfragments [ 0 ] Ġelse Ġfragments [ 1 ] Ċ } Ċ Ċ private Ġfun ĠOptional < S so Token >. create With Token Body ( block : ĠRequest .( token : ĠString ) Ġ-> ĠUnit ): ĠAb ac Request Ġ{ ĊĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ. map (:: parse Oid c Token ) ĊĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġtoken Ġ-> Ġab ac Request Ġ{ Ġblock ( this , Ġtoken ) Ġ} Ġ} ĊĠĠĠĠĠĠĠ Ġ. orElse Throw Ġ{ ĠIllegalStateException (" F ant Ġik ke Ġs aks be handler - token ") Ġ} Ċ } Ċ Ċ object ĠAb ac Policies Ġ{ ĊĠĠĠ Ġfun Ġtil gang Til Mod ia (): ĠAb ac Request Ġ= ĠSubject Handler . getS so Token () ĊĠĠĠĠĠĠĠ Ġ. create With Token Body Ġ{ Ġtoken Body Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġenvironment Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattribute ( ENVIRONMENT _ F EL LES _ PE P _ ID , Ġ" mod ia ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattribute ( ENVIRONMENT _ F EL LES _ OID C _ TOKEN _ BODY , Ġtoken Body ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresource Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattribute ( RESOURCE _ F EL LES _ DOM ENE , Ġ" mod ia ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattribute ( RESOURCE _ F EL LES _ RESOURCE _ TYPE , Ġ" no . nav . ab ac . attribut ter . resource . mod ia ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtil gang Til B ru ker ( fn r : ĠString ): ĠAb ac Request Ġ= ĠSubject Handler . getS so Token () ĊĠĠĠĠĠĠĠ Ġ. create With Token Body Ġ{ Ġtoken Body Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġenvironment Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattribute ( ENVIRONMENT _ F EL LES _ PE P _ ID , Ġ" mod ia ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattribute ( ENVIRONMENT _ F EL LES _ OID C _ TOKEN _ BODY , Ġtoken Body ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresource Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattribute ( RESOURCE _ F EL LES _ DOM ENE , Ġ" mod ia ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattribute ( RESOURCE _ F EL LES _ RESOURCE _ TYPE , Ġ" no . nav . ab ac . attribut ter . resource . mod ia ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattribute ( RESOURCE _ F EL LES _ PERSON _ FN R , Ġfn r ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtil gang Til B ru ker Med A ktor Id ( ak tor Id : ĠString ): ĠAb ac Request Ġ= ĠSubject Handler . getS so Token () ĊĠĠĠĠĠĠĠ Ġ. create With Token Body Ġ{ Ġtoken Body Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġenvironment Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattribute ( ENVIRONMENT _ F EL LES _ PE P _ ID , Ġ" mod ia ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattribute ( ENVIRONMENT _ F EL LES _ OID C _ TOKEN _ BODY , Ġtoken Body ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresource Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattribute ( RESOURCE _ F EL LES _ DOM ENE , Ġ" mod ia ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattribute ( RESOURCE _ F EL LES _ RESOURCE _ TYPE , Ġ" no . nav . ab ac . attribut ter . resource . mod ia ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattribute ( RESOURCE _ F EL LES _ PERSON _ AK TO ER ID _ RESOURCE , Ġakt or Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġkan Pl uk ke Opp g ave (): ĠAb ac Request Ġ= ĠSubject Handler . getS so Token () ĊĠĠĠĠĠĠĠ Ġ. create With Token Body Ġ{ Ġtoken Body Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġenvironment Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattribute ( ENVIRONMENT _ F EL LES _ PE P _ ID , Ġ" mod ia ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattribute ( ENVIRONMENT _ F EL LES _ OID C _ TOKEN _ BODY , Ġtoken Body ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresource Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattribute ( RESOURCE _ F EL LES _ DOM ENE , Ġ" mod ia ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattribute ( RESOURCE _ F EL LES _ RESOURCE _ TYPE , Ġ" no . nav . ab ac . attribut ter . resource . mod ia . op pg ave ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattribute ( ACTION _ ID , Ġ" read ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ċ } Ċ