Skip to content

Commit

Permalink
ID-porten ACR endringer
Browse files Browse the repository at this point in the history
Legger til nye ACR verdier idporten-loa-substantial og idporten-loa-high
  • Loading branch information
maccyber committed Sep 11, 2023
1 parent ff9c45c commit 4d37cbf
Showing 1 changed file with 6 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -22,15 +22,15 @@ open class PersonbrukerAutorisasjonService(
bruker.gjeldendeFoedselsnummer
)
validerTilgangOgAuditlog(cefMelding, bruker)
validerInnloggingsnivå(listOf(INNLOGGINGSNIVÅ_3, INNLOGGINGSNIVÅ_4))
validerInnloggingsnivå(INNLOGGINGSNIVÅ_3 + INNLOGGINGSNIVÅ_4)
}
override fun sjekkLesetilgangTilBruker(bruker: Bruker, kontekst: String) {
val cefMelding = CefMelding(
"Personbruker med fødselsnummer=${bruker.gjeldendeFoedselsnummer.foedselsnummer} ber om lesetilgang for $kontekst",
bruker.gjeldendeFoedselsnummer
)
validerTilgangOgAuditlog(cefMelding, bruker)
validerInnloggingsnivå(listOf(INNLOGGINGSNIVÅ_4))
validerInnloggingsnivå(INNLOGGINGSNIVÅ_4)
}

override fun sjekkSkrivetilgangTilBruker(bruker: Bruker, kontekst: String) {
Expand All @@ -39,7 +39,7 @@ open class PersonbrukerAutorisasjonService(
bruker.gjeldendeFoedselsnummer
)
validerTilgangOgAuditlog(cefMelding, bruker)
validerInnloggingsnivå(listOf(INNLOGGINGSNIVÅ_4))
validerInnloggingsnivå(INNLOGGINGSNIVÅ_4)
}

private fun validerTilgangOgAuditlog(
Expand Down Expand Up @@ -78,14 +78,13 @@ open class PersonbrukerAutorisasjonService(
logger.info("harTilgangTilPerson utfører $handling for ${UserRole.EKSTERN}-rolle")

if (!veilarbPep.harTilgangTilPerson(innloggetBrukerToken, handling, bruker)) {
if (INNLOGGINGSNIVÅ_3 == authContextHolder.hentInnloggingsnivå()) throw AutorisasjonLevel3Exception("Bruker er innlogget på nivå 3. $handling-tilgang til ekstern bruker som krever nivå 4-innlogging.")
if (INNLOGGINGSNIVÅ_3.contains(authContextHolder.hentInnloggingsnivå())) throw AutorisasjonLevel3Exception("Bruker er innlogget på nivå 3. $handling-tilgang til ekstern bruker som krever nivå 4-innlogging.")
throw AutorisasjonException("Bruker mangler $handling-tilgang til ekstern bruker")
}
}

private fun rolle(): UserRole = authContextHolder.role.orElseThrow { IllegalStateException("Ingen role funnet") }


private fun AuthContextHolder.hentInnloggingsnivå(): String {
return idTokenClaims.flatMap { getStringClaim(it, "acr") }
.also { logger.info("Fant innloggsnivå med nivå $it") }
Expand All @@ -109,7 +108,7 @@ open class PersonbrukerAutorisasjonService(
override fun erVeileder(): Boolean = false

companion object {
private val INNLOGGINGSNIVÅ_3 = "Level3"
private val INNLOGGINGSNIVÅ_4 = "Level4"
private val INNLOGGINGSNIVÅ_3 = listOf("Level3", "idporten-loa-substantial")
private val INNLOGGINGSNIVÅ_4 = listOf("Level4", "idporten-loa-high")
}
}

0 comments on commit 4d37cbf

Please sign in to comment.