Skip to content

Commit

Permalink
Implementerte felles sikkerhetsmodul i bekreftelse-api
Browse files Browse the repository at this point in the history
  • Loading branch information
naviktthomas committed Oct 31, 2024
1 parent 428d622 commit 0de4459
Show file tree
Hide file tree
Showing 39 changed files with 904 additions and 1,059 deletions.
1 change: 1 addition & 0 deletions apps/bekreftelse-api/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ dependencies {
// Project
implementation(project(":lib:hoplite-config"))
implementation(project(":lib:error-handling"))
implementation(project(":lib:security"))
implementation(project(":lib:kafka-streams"))
implementation(project(":lib:kafka-key-generator-client"))
implementation(project(":domain:bekreftelse-interne-hendelser"))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,12 +72,7 @@ data class ApplicationContext(
)
)

val authorizationService = AuthorizationService(
serverConfig,
applicationConfig,
kafkaKeysClient,
poaoTilgangClient
)
val authorizationService = AuthorizationService(serverConfig, poaoTilgangClient)

val kafkaConsumerExceptionHandler = KafkaConsumerExceptionHandler(
healthIndicatorRepository.addLivenessIndicator(LivenessHealthIndicator(HealthStatus.HEALTHY)),
Expand Down Expand Up @@ -107,6 +102,7 @@ data class ApplicationContext(
serverConfig,
applicationConfig,
prometheusMeterRegistry,
kafkaKeysClient,
bekreftelseKafkaProducer,
bekreftelseRepository
)
Expand Down

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
package no.nav.paw.bekreftelse.api.model

import no.nav.paw.bekreftelse.internehendelser.BekreftelseTilgjengelig
import no.nav.paw.bekreftelse.melding.v1.Bekreftelse
import no.nav.paw.bekreftelse.melding.v1.vo.Bekreftelsesloesning
import no.nav.paw.bekreftelse.melding.v1.vo.BrukerType
import no.nav.paw.bekreftelse.melding.v1.vo.Metadata
import no.nav.paw.bekreftelse.melding.v1.vo.Svar
import no.nav.paw.security.authentication.model.Bruker
import no.nav.paw.security.authentication.model.M2MToken
import no.nav.paw.security.authentication.model.NavAnsatt
import no.nav.paw.security.authentication.model.Sluttbruker
import no.nav.paw.security.authorization.exception.IngenTilgangException
import java.time.Instant

fun Bruker<*>.asBekreftelseBruker(): no.nav.paw.bekreftelse.melding.v1.vo.Bruker {
return when (this) {
is Sluttbruker -> no.nav.paw.bekreftelse.melding.v1.vo.Bruker(BrukerType.SLUTTBRUKER, ident.verdi)
is NavAnsatt -> no.nav.paw.bekreftelse.melding.v1.vo.Bruker(BrukerType.VEILEDER, ident)
is M2MToken -> no.nav.paw.bekreftelse.melding.v1.vo.Bruker(BrukerType.SYSTEM, ident)
else -> throw IngenTilgangException("Ukjent brukergruppe")
}
}

fun BekreftelseTilgjengelig.asBekreftelse(
harJobbetIDennePerioden: Boolean,
vilFortsetteSomArbeidssoeker: Boolean,
bruker: no.nav.paw.bekreftelse.melding.v1.vo.Bruker,
kilde: String,
aarsak: String,
bekreftelsesloesning: Bekreftelsesloesning
): Bekreftelse {
return Bekreftelse.newBuilder()
.setBekreftelsesloesning(bekreftelsesloesning)
.setId(bekreftelseId)
.setPeriodeId(periodeId)
.setSvar(
asSvar(
harJobbetIDennePerioden,
vilFortsetteSomArbeidssoeker,
bruker,
kilde,
aarsak
)
)
.build()
}

private fun BekreftelseTilgjengelig.asSvar(
harJobbetIDennePerioden: Boolean,
vilFortsetteSomArbeidssoeker: Boolean,
bruker: no.nav.paw.bekreftelse.melding.v1.vo.Bruker,
kilde: String,
aarsak: String
): Svar {
return Svar.newBuilder()
.setSendtInnAv(
Metadata.newBuilder()
.setUtfoertAv(bruker)
.setKilde(kilde)
.setAarsak(aarsak)
.setTidspunkt(Instant.now())
.build()
)
.setGjelderFra(gjelderFra)
.setGjelderTil(gjelderTil)
.setHarJobbetIDennePerioden(harJobbetIDennePerioden)
.setVilFortsetteSomArbeidssoeker(vilFortsetteSomArbeidssoeker)
.build()
}

fun BekreftelseRow.asTilgjengeligBekreftelse() = this.data.asTilgjengeligBekreftelse()

private fun BekreftelseTilgjengelig.asTilgjengeligBekreftelse() = TilgjengeligBekreftelse(
periodeId = this.periodeId,
bekreftelseId = this.bekreftelseId,
gjelderFra = this.gjelderFra,
gjelderTil = this.gjelderTil
)

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,12 +1,5 @@
package no.nav.paw.bekreftelse.api.model

import no.nav.paw.bekreftelse.internehendelser.BekreftelseTilgjengelig
import no.nav.paw.bekreftelse.melding.v1.Bekreftelse
import no.nav.paw.bekreftelse.melding.v1.vo.Bekreftelsesloesning
import no.nav.paw.bekreftelse.melding.v1.vo.Bruker
import no.nav.paw.bekreftelse.melding.v1.vo.Metadata
import no.nav.paw.bekreftelse.melding.v1.vo.Svar
import java.time.Instant
import java.util.*

data class MottaBekreftelseRequest(
Expand All @@ -15,50 +8,3 @@ data class MottaBekreftelseRequest(
val harJobbetIDennePerioden: Boolean,
val vilFortsetteSomArbeidssoeker: Boolean
)

fun BekreftelseTilgjengelig.asBekreftelse(
harJobbetIDennePerioden: Boolean,
vilFortsetteSomArbeidssoeker: Boolean,
bruker: Bruker,
kilde: String,
aarsak: String,
bekreftelsesloesning: Bekreftelsesloesning
): Bekreftelse {
return Bekreftelse.newBuilder()
.setBekreftelsesloesning(bekreftelsesloesning)
.setId(bekreftelseId)
.setPeriodeId(periodeId)
.setSvar(
asSvar(
harJobbetIDennePerioden,
vilFortsetteSomArbeidssoeker,
bruker,
kilde,
aarsak
)
)
.build()
}

private fun BekreftelseTilgjengelig.asSvar(
harJobbetIDennePerioden: Boolean,
vilFortsetteSomArbeidssoeker: Boolean,
bruker: Bruker,
kilde: String,
aarsak: String
): Svar {
return Svar.newBuilder()
.setSendtInnAv(
Metadata.newBuilder()
.setUtfoertAv(bruker)
.setKilde(kilde)
.setAarsak(aarsak)
.setTidspunkt(Instant.now())
.build()
)
.setGjelderFra(gjelderFra)
.setGjelderTil(gjelderTil)
.setHarJobbetIDennePerioden(harJobbetIDennePerioden)
.setVilFortsetteSomArbeidssoeker(vilFortsetteSomArbeidssoeker)
.build()
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package no.nav.paw.bekreftelse.api.model

import no.nav.paw.bekreftelse.internehendelser.BekreftelseTilgjengelig
import java.time.Instant
import java.util.*

Expand All @@ -10,12 +9,3 @@ data class TilgjengeligBekreftelse(
val gjelderFra: Instant,
val gjelderTil: Instant,
)

fun BekreftelseRow.asTilgjengeligBekreftelse() = this.data.asTilgjengeligBekreftelse()

private fun BekreftelseTilgjengelig.asTilgjengeligBekreftelse() = TilgjengeligBekreftelse(
periodeId = this.periodeId,
bekreftelseId = this.bekreftelseId,
gjelderFra = this.gjelderFra,
gjelderTil = this.gjelderTil
)
Loading

0 comments on commit 0de4459

Please sign in to comment.