From 538849d73ee73a00752ad7e8c7b4172e52132cef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=98yvind=20N=2E=20Wed=C3=B8e?= Date: Mon, 4 Nov 2024 08:35:24 +0100 Subject: [PATCH] Specify system context, for correct token usage. --- .../clients/oppgaveapi/GosysOppgaveClient.kt | 10 ++--- .../oppgave/service/GosysOppgaveService.kt | 45 ++++++++++--------- .../BehandlingAvslutningService.kt | 7 ++- 3 files changed, 34 insertions(+), 28 deletions(-) diff --git a/src/main/kotlin/no/nav/klage/oppgave/clients/oppgaveapi/GosysOppgaveClient.kt b/src/main/kotlin/no/nav/klage/oppgave/clients/oppgaveapi/GosysOppgaveClient.kt index 59e516890..308001d23 100644 --- a/src/main/kotlin/no/nav/klage/oppgave/clients/oppgaveapi/GosysOppgaveClient.kt +++ b/src/main/kotlin/no/nav/klage/oppgave/clients/oppgaveapi/GosysOppgaveClient.kt @@ -163,7 +163,7 @@ class GosysOppgaveClient( } @Cacheable(CacheWithJCacheConfiguration.GOSYSOPPGAVE_GJELDER_CACHE) - fun getGjelderKodeverkForTema(tema: Tema): List { + fun getGjelderKodeverkForTema(tema: Tema, systemContext: Boolean): List { val gjelderResponse = logTimingAndWebClientResponseException(GosysOppgaveClient::getGjelderKodeverkForTema.name) { oppgaveApiWebClient.get() @@ -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() @@ -185,9 +185,9 @@ class GosysOppgaveClient( } @Cacheable(CacheWithJCacheConfiguration.GOSYSOPPGAVE_OPPGAVETYPE_CACHE) - fun getOppgavetypeKodeverkForTema(tema: Tema): List { + fun getOppgavetypeKodeverkForTema(tema: Tema, systemContext: Boolean): List { val oppgavetypeResponse = - logTimingAndWebClientResponseException(GosysOppgaveClient::getGjelderKodeverkForTema.name) { + logTimingAndWebClientResponseException(GosysOppgaveClient::getOppgavetypeKodeverkForTema.name) { oppgaveApiWebClient.get() .uri { uriBuilder -> uriBuilder.pathSegment("kodeverk", "oppgavetype", "{tema}") @@ -195,7 +195,7 @@ class GosysOppgaveClient( } .header( HttpHeaders.AUTHORIZATION, - "Bearer ${tokenUtil.getSaksbehandlerAccessTokenWithOppgaveApiScope()}" + "Bearer ${if (systemContext) tokenUtil.getAppAccessTokenWithOppgaveApiScope() else tokenUtil.getSaksbehandlerAccessTokenWithOppgaveApiScope()}" ) .header("Nav-Consumer-Id", applicationName) .retrieve() diff --git a/src/main/kotlin/no/nav/klage/oppgave/service/GosysOppgaveService.kt b/src/main/kotlin/no/nav/klage/oppgave/service/GosysOppgaveService.kt index d5b6578ca..9c39f3988 100644 --- a/src/main/kotlin/no/nav/klage/oppgave/service/GosysOppgaveService.kt +++ b/src/main/kotlin/no/nav/klage/oppgave/service/GosysOppgaveService.kt @@ -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( @@ -106,7 +106,7 @@ class GosysOppgaveService( navn = saksbehandlerService.getNameForIdentDefaultIfNull(utfoerendeSaksbehandlerIdent), ), timestamp = LocalDateTime.now(), - gosysOppgave = updatedGosysOppgave.toGosysOppgaveView(), + gosysOppgave = updatedGosysOppgave.toGosysOppgaveView(systemContext = true), ) ), behandlingId = behandlingId, @@ -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, @@ -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") @@ -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 @@ -179,7 +182,7 @@ class GosysOppgaveService( navn = saksbehandlerService.getNameForIdentDefaultIfNull(saksbehandlerident), ), timestamp = LocalDateTime.now(), - gosysOppgave = updatedGosysOppgave.toGosysOppgaveView(), + gosysOppgave = updatedGosysOppgave.toGosysOppgaveView(systemContext = systemContext), ) ), behandlingId = behandling.id, @@ -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, @@ -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), @@ -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 { - return gosysOppgaveClient.getGjelderKodeverkForTema(tema = tema) + private fun getGjelderKodeverkForTema(tema: Tema, systemContext: Boolean): List { + return gosysOppgaveClient.getGjelderKodeverkForTema(tema = tema, systemContext = systemContext) } - private fun getOppgavetypeKodeverkForTema(tema: Tema): List { - return gosysOppgaveClient.getOppgavetypeKodeverkForTema(tema = tema) + private fun getOppgavetypeKodeverkForTema(tema: Tema, systemContext: Boolean): List { + return gosysOppgaveClient.getOppgavetypeKodeverkForTema(tema = tema, systemContext = systemContext) } private fun publishInternalEvent(data: String, behandlingId: UUID, type: InternalEventType) { diff --git a/src/main/kotlin/no/nav/klage/oppgave/service/distribusjon/BehandlingAvslutningService.kt b/src/main/kotlin/no/nav/klage/oppgave/service/distribusjon/BehandlingAvslutningService.kt index 1619eaa38..cef5fc5e8 100644 --- a/src/main/kotlin/no/nav/klage/oppgave/service/distribusjon/BehandlingAvslutningService.kt +++ b/src/main/kotlin/no/nav/klage/oppgave/service/distribusjon/BehandlingAvslutningService.kt @@ -189,6 +189,7 @@ class BehandlingAvslutningService( if (behandling.gosysOppgaveId != null && behandling.gosysOppgaveUpdate != null && !behandling.ignoreGosysOppgave) { oppgaveApiService.updateGosysOppgave( behandling = behandling, + systemContext = true, ) } @@ -213,7 +214,8 @@ class BehandlingAvslutningService( oppgaveApiService.addKommentar( behandling = ankeITrygderettenbehandling, - kommentar = kommentar + kommentar = kommentar, + systemContext = true, ) } } @@ -230,7 +232,8 @@ class BehandlingAvslutningService( oppgaveApiService.addKommentar( behandling = ankeITrygderettenbehandling, - kommentar = kommentar + kommentar = kommentar, + systemContext = true, ) } }