Skip to content

Commit

Permalink
Merge pull request #1254 from navikt/use_system_token
Browse files Browse the repository at this point in the history
Specify system context, for correct token usage.
  • Loading branch information
oyvind-wedoe authored Nov 4, 2024
2 parents f1a8de8 + 538849d commit ef380cb
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 28 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@ class GosysOppgaveClient(
}

@Cacheable(CacheWithJCacheConfiguration.GOSYSOPPGAVE_GJELDER_CACHE)
fun getGjelderKodeverkForTema(tema: Tema): List<Gjelder> {
fun getGjelderKodeverkForTema(tema: Tema, systemContext: Boolean): List<Gjelder> {
val gjelderResponse =
logTimingAndWebClientResponseException(GosysOppgaveClient::getGjelderKodeverkForTema.name) {
oppgaveApiWebClient.get()
Expand All @@ -173,7 +173,7 @@ class GosysOppgaveClient(
}
.header(
HttpHeaders.AUTHORIZATION,
"Bearer ${tokenUtil.getSaksbehandlerAccessTokenWithOppgaveApiScope()}"
"Bearer ${if (systemContext) tokenUtil.getAppAccessTokenWithOppgaveApiScope() else tokenUtil.getSaksbehandlerAccessTokenWithOppgaveApiScope()}"
)
.header("Nav-Consumer-Id", applicationName)
.retrieve()
Expand All @@ -185,17 +185,17 @@ class GosysOppgaveClient(
}

@Cacheable(CacheWithJCacheConfiguration.GOSYSOPPGAVE_OPPGAVETYPE_CACHE)
fun getOppgavetypeKodeverkForTema(tema: Tema): List<OppgavetypeResponse> {
fun getOppgavetypeKodeverkForTema(tema: Tema, systemContext: Boolean): List<OppgavetypeResponse> {
val oppgavetypeResponse =
logTimingAndWebClientResponseException(GosysOppgaveClient::getGjelderKodeverkForTema.name) {
logTimingAndWebClientResponseException(GosysOppgaveClient::getOppgavetypeKodeverkForTema.name) {
oppgaveApiWebClient.get()
.uri { uriBuilder ->
uriBuilder.pathSegment("kodeverk", "oppgavetype", "{tema}")
uriBuilder.build(tema.navn)
}
.header(
HttpHeaders.AUTHORIZATION,
"Bearer ${tokenUtil.getSaksbehandlerAccessTokenWithOppgaveApiScope()}"
"Bearer ${if (systemContext) tokenUtil.getAppAccessTokenWithOppgaveApiScope() else tokenUtil.getSaksbehandlerAccessTokenWithOppgaveApiScope()}"
)
.header("Nav-Consumer-Id", applicationName)
.retrieve()
Expand Down
45 changes: 24 additions & 21 deletions src/main/kotlin/no/nav/klage/oppgave/service/GosysOppgaveService.kt
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ class GosysOppgaveService(
throw IllegalOperation("Gosys-oppgave hører ikke til angitt person")
}
}
return gosysOppgaveRecord.toGosysOppgaveView()
return gosysOppgaveRecord.toGosysOppgaveView(systemContext = false)
}

fun assignGosysOppgave(
Expand Down Expand Up @@ -106,7 +106,7 @@ class GosysOppgaveService(
navn = saksbehandlerService.getNameForIdentDefaultIfNull(utfoerendeSaksbehandlerIdent),
),
timestamp = LocalDateTime.now(),
gosysOppgave = updatedGosysOppgave.toGosysOppgaveView(),
gosysOppgave = updatedGosysOppgave.toGosysOppgaveView(systemContext = true),
)
),
behandlingId = behandlingId,
Expand All @@ -116,8 +116,9 @@ class GosysOppgaveService(

fun updateGosysOppgave(
behandling: Behandling,
systemContext: Boolean,
) {
val currentGosysOppgave = gosysOppgaveClient.getGosysOppgave(gosysOppgaveId = behandling.gosysOppgaveId!!, systemContext = true)
val currentGosysOppgave = gosysOppgaveClient.getGosysOppgave(gosysOppgaveId = behandling.gosysOppgaveId!!, systemContext = systemContext)

val updateGosysOppgaveRequest = UpdateGosysOppgaveInput(
versjon = currentGosysOppgave.versjon,
Expand All @@ -132,15 +133,16 @@ class GosysOppgaveService(
)
)

updateOppgaveAndPublishEvent(behandling, updateGosysOppgaveRequest)
updateOppgaveAndPublishEvent(behandling = behandling, updateGosysOppgaveRequest = updateGosysOppgaveRequest, systemContext = systemContext)
}

fun addKommentar(
behandling: Behandling,
kommentar: String,
systemContext: Boolean,
) {
logger.debug("Adding kommentar to Gosys-oppgave ${behandling.gosysOppgaveId}")
val currentGosysOppgave = gosysOppgaveClient.getGosysOppgave(gosysOppgaveId = behandling.gosysOppgaveId!!, systemContext = true)
val currentGosysOppgave = gosysOppgaveClient.getGosysOppgave(gosysOppgaveId = behandling.gosysOppgaveId!!, systemContext = systemContext)

if (!currentGosysOppgave.isEditable()) {
logger.warn("Gosys-oppgave ${behandling.gosysOppgaveId} kan ikke oppdateres, returnerer")
Expand All @@ -156,17 +158,18 @@ class GosysOppgaveService(
)
)

updateOppgaveAndPublishEvent(behandling, updateGosysOppgaveRequest)
updateOppgaveAndPublishEvent(behandling = behandling, updateGosysOppgaveRequest = updateGosysOppgaveRequest, systemContext = true)
}

private fun updateOppgaveAndPublishEvent(
behandling: Behandling,
updateGosysOppgaveRequest: UpdateOppgaveRequest
updateGosysOppgaveRequest: UpdateOppgaveRequest,
systemContext: Boolean,
) {
val updatedGosysOppgave = gosysOppgaveClient.updateGosysOppgave(
gosysOppgaveId = behandling.gosysOppgaveId!!,
updateOppgaveInput = updateGosysOppgaveRequest,
systemContext = true,
systemContext = systemContext,
)

val saksbehandlerident = behandling.tildeling?.saksbehandlerident ?: systembrukerIdent
Expand All @@ -179,7 +182,7 @@ class GosysOppgaveService(
navn = saksbehandlerService.getNameForIdentDefaultIfNull(saksbehandlerident),
),
timestamp = LocalDateTime.now(),
gosysOppgave = updatedGosysOppgave.toGosysOppgaveView(),
gosysOppgave = updatedGosysOppgave.toGosysOppgaveView(systemContext = systemContext),
)
),
behandlingId = behandling.id,
Expand Down Expand Up @@ -227,10 +230,10 @@ class GosysOppgaveService(
tema = tema,
)

return gosysOppgaveList.map { it.toGosysOppgaveView() }
return gosysOppgaveList.map { it.toGosysOppgaveView(systemContext = false) }
}

fun GosysOppgaveRecord.toGosysOppgaveView(): GosysOppgaveView {
fun GosysOppgaveRecord.toGosysOppgaveView(systemContext: Boolean): GosysOppgaveView {
val tema = Tema.fromNavn(tema)
return GosysOppgaveView(
id = id,
Expand All @@ -242,8 +245,8 @@ class GosysOppgaveService(
opprettetTidspunkt = opprettetTidspunkt,
beskrivelse = beskrivelse,
temaId = tema.id,
gjelder = getGjelder(behandlingstype = behandlingstype, tema = tema),
oppgavetype = getOppgavetype(oppgavetype = oppgavetype, tema = tema),
gjelder = getGjelder(behandlingstype = behandlingstype, tema = tema, systemContext = systemContext),
oppgavetype = getOppgavetype(oppgavetype = oppgavetype, tema = tema, systemContext = systemContext),
fristFerdigstillelse = fristFerdigstillelse,
ferdigstiltTidspunkt = ferdigstiltTidspunkt,
status = GosysOppgaveView.Status.valueOf(status.name),
Expand All @@ -270,20 +273,20 @@ class GosysOppgaveService(
} else null
}

private fun getGjelder(behandlingstype: String?, tema: Tema): String? {
return getGjelderKodeverkForTema(tema = tema).firstOrNull { it.behandlingstype == behandlingstype }?.behandlingstypeTerm
private fun getGjelder(behandlingstype: String?, tema: Tema, systemContext: Boolean): String? {
return getGjelderKodeverkForTema(tema = tema, systemContext = systemContext).firstOrNull { it.behandlingstype == behandlingstype }?.behandlingstypeTerm
}

private fun getOppgavetype(oppgavetype: String?, tema: Tema): String? {
return getOppgavetypeKodeverkForTema(tema = tema).firstOrNull { it.oppgavetype == oppgavetype }?.term
private fun getOppgavetype(oppgavetype: String?, tema: Tema, systemContext: Boolean): String? {
return getOppgavetypeKodeverkForTema(tema = tema, systemContext = systemContext).firstOrNull { it.oppgavetype == oppgavetype }?.term
}

private fun getGjelderKodeverkForTema(tema: Tema): List<Gjelder> {
return gosysOppgaveClient.getGjelderKodeverkForTema(tema = tema)
private fun getGjelderKodeverkForTema(tema: Tema, systemContext: Boolean): List<Gjelder> {
return gosysOppgaveClient.getGjelderKodeverkForTema(tema = tema, systemContext = systemContext)
}

private fun getOppgavetypeKodeverkForTema(tema: Tema): List<OppgavetypeResponse> {
return gosysOppgaveClient.getOppgavetypeKodeverkForTema(tema = tema)
private fun getOppgavetypeKodeverkForTema(tema: Tema, systemContext: Boolean): List<OppgavetypeResponse> {
return gosysOppgaveClient.getOppgavetypeKodeverkForTema(tema = tema, systemContext = systemContext)
}

private fun publishInternalEvent(data: String, behandlingId: UUID, type: InternalEventType) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -189,6 +189,7 @@ class BehandlingAvslutningService(
if (behandling.gosysOppgaveId != null && behandling.gosysOppgaveUpdate != null && !behandling.ignoreGosysOppgave) {
oppgaveApiService.updateGosysOppgave(
behandling = behandling,
systemContext = true,
)
}

Expand All @@ -213,7 +214,8 @@ class BehandlingAvslutningService(

oppgaveApiService.addKommentar(
behandling = ankeITrygderettenbehandling,
kommentar = kommentar
kommentar = kommentar,
systemContext = true,
)
}
}
Expand All @@ -230,7 +232,8 @@ class BehandlingAvslutningService(

oppgaveApiService.addKommentar(
behandling = ankeITrygderettenbehandling,
kommentar = kommentar
kommentar = kommentar,
systemContext = true,
)
}
}
Expand Down

0 comments on commit ef380cb

Please sign in to comment.