From 875a202293423cdea7a395a04321d66e85a24dcf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vebj=C3=B8rn=20Nordby?= Date: Mon, 19 Feb 2024 11:00:43 +0100 Subject: [PATCH] Eksponerer prod mot gcp, fjernet public routes = krever saksbehandler token for alle endpoints (#1102) * nais config * typo * Fjernet publicroutes, krever token for alle endepunkter, fikset tester --------- Co-authored-by: albrektsson --- Dockerfile | 2 +- nais/prod-fss.yml | 4 ++++ src/main/kotlin/no/nav/k9punsj/CoroutineRequestContext.kt | 4 ---- .../integrasjoner/arbeidsgivere/ArbeidsgiverRoutes.kt | 3 +-- .../no/nav/k9punsj/integrasjoner/gosys/GosysRoutes.kt | 3 +-- .../kotlin/no/nav/k9punsj/fordel/LokalHendelseRoutes.kt | 8 +++++--- src/test/kotlin/no/nav/k9punsj/gosys/GosysRoutesTest.kt | 1 + .../arbeidsgivere/ArbeidsgivereRoutesTest.kt | 2 ++ 8 files changed, 15 insertions(+), 12 deletions(-) diff --git a/Dockerfile b/Dockerfile index 36f9ae977..a6d4baf1d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,4 +7,4 @@ COPY docker-init-scripts/import-serviceuser-credentials.sh /init-scripts/21-impo COPY docker-init-scripts/import-appdynamics-settings.sh /init-scripts/22-import-appdynamics-settings.sh -COPY target/*.jar app.jar +COPY target/*.jar app.jar \ No newline at end of file diff --git a/nais/prod-fss.yml b/nais/prod-fss.yml index c91ad0cab..d3d921613 100644 --- a/nais/prod-fss.yml +++ b/nais/prod-fss.yml @@ -18,6 +18,9 @@ spec: rules: - application: k9-punsj-oidc-auth-proxy - application: k9-sak + - application: k9-punsj-frontend + namespace: k9saksbehandling + cluster: prod-gcp liveness: path: /internal/actuator/info initialDelay: 20 @@ -38,6 +41,7 @@ spec: ingresses: - https://k9-punsj.nais.adeo.no - https://k9-punsj.intern.nav.no + - https://k9-punsj.prod-fss-pub.nais.io replicas: min: 1 max: 1 diff --git a/src/main/kotlin/no/nav/k9punsj/CoroutineRequestContext.kt b/src/main/kotlin/no/nav/k9punsj/CoroutineRequestContext.kt index cd782f8a7..95eed343b 100644 --- a/src/main/kotlin/no/nav/k9punsj/CoroutineRequestContext.kt +++ b/src/main/kotlin/no/nav/k9punsj/CoroutineRequestContext.kt @@ -65,10 +65,6 @@ internal fun SaksbehandlerRoutes( setOf("azurev2") ) { true } -internal fun PublicRoutes( - routes: CoRouterFunctionDsl.() -> Unit -) = Routes(null, routes, null, null) - private fun Routes( authenticationHandler: AuthenticationHandler?, routes: CoRouterFunctionDsl.() -> Unit, diff --git a/src/main/kotlin/no/nav/k9punsj/integrasjoner/arbeidsgivere/ArbeidsgiverRoutes.kt b/src/main/kotlin/no/nav/k9punsj/integrasjoner/arbeidsgivere/ArbeidsgiverRoutes.kt index 5c1a6ad76..940598989 100644 --- a/src/main/kotlin/no/nav/k9punsj/integrasjoner/arbeidsgivere/ArbeidsgiverRoutes.kt +++ b/src/main/kotlin/no/nav/k9punsj/integrasjoner/arbeidsgivere/ArbeidsgiverRoutes.kt @@ -1,6 +1,5 @@ package no.nav.k9punsj.integrasjoner.arbeidsgivere -import no.nav.k9punsj.PublicRoutes import no.nav.k9punsj.RequestContext import no.nav.k9punsj.SaksbehandlerRoutes import no.nav.k9punsj.tilgangskontroll.AuthenticationHandler @@ -97,7 +96,7 @@ internal class ArbeidsgiverRoutes( } @Bean - fun hentArbeidsgiverInfoRoute() = PublicRoutes { + fun hentArbeidsgiverInfoRoute() = SaksbehandlerRoutes(authenticationHandler) { GET("/api/arbeidsgiver") { request -> RequestContext(coroutineContext, request) { when (val navn = arbeidsgiverService.hentOrganisasjonsnavn(request.organisasjonsnummer())) { diff --git a/src/main/kotlin/no/nav/k9punsj/integrasjoner/gosys/GosysRoutes.kt b/src/main/kotlin/no/nav/k9punsj/integrasjoner/gosys/GosysRoutes.kt index f2c4d1203..c35e15e44 100644 --- a/src/main/kotlin/no/nav/k9punsj/integrasjoner/gosys/GosysRoutes.kt +++ b/src/main/kotlin/no/nav/k9punsj/integrasjoner/gosys/GosysRoutes.kt @@ -1,7 +1,6 @@ package no.nav.k9punsj.integrasjoner.gosys import kotlinx.coroutines.reactive.awaitFirst -import no.nav.k9punsj.PublicRoutes import no.nav.k9punsj.RequestContext import no.nav.k9punsj.SaksbehandlerRoutes import no.nav.k9punsj.felles.IkkeTilgang @@ -29,7 +28,7 @@ internal class GosysRoutes( } @Bean - fun PublicGosysRoutes() = PublicRoutes { + fun PublicGosysRoutes() = SaksbehandlerRoutes(authenticationHandler) { GET("/api${Urls.Gjelder}") { return@GET ServerResponse .status(HttpStatus.OK) diff --git a/src/test/kotlin/no/nav/k9punsj/fordel/LokalHendelseRoutes.kt b/src/test/kotlin/no/nav/k9punsj/fordel/LokalHendelseRoutes.kt index 94a805f49..03f1232bb 100644 --- a/src/test/kotlin/no/nav/k9punsj/fordel/LokalHendelseRoutes.kt +++ b/src/test/kotlin/no/nav/k9punsj/fordel/LokalHendelseRoutes.kt @@ -2,8 +2,9 @@ package no.nav.k9punsj.fordel import kotlinx.coroutines.reactive.awaitFirst import no.nav.k9punsj.LokalProfil -import no.nav.k9punsj.PublicRoutes import no.nav.k9punsj.RequestContext +import no.nav.k9punsj.SaksbehandlerRoutes +import no.nav.k9punsj.tilgangskontroll.AuthenticationHandler import org.springframework.context.annotation.Bean import org.springframework.context.annotation.Configuration import org.springframework.http.HttpStatus @@ -17,7 +18,8 @@ import kotlin.coroutines.coroutineContext @Configuration @LokalProfil class LokalHendelseRoutes( - private val hendelseMottaker: HendelseMottaker + private val hendelseMottaker: HendelseMottaker, + private val authenticationHandler: AuthenticationHandler ) { internal object Urls { @@ -25,7 +27,7 @@ class LokalHendelseRoutes( } @Bean - fun prosesserHendelseRoute() = PublicRoutes { + fun prosesserHendelseRoute() = SaksbehandlerRoutes(authenticationHandler) { POST("/api${Urls.ProsesserHendelse}", contentType(MediaType.APPLICATION_JSON)) { request -> RequestContext(coroutineContext, request) { val fordelPunsjEventDto = request.request() diff --git a/src/test/kotlin/no/nav/k9punsj/gosys/GosysRoutesTest.kt b/src/test/kotlin/no/nav/k9punsj/gosys/GosysRoutesTest.kt index 4f23ef9f8..dadd5c8b5 100644 --- a/src/test/kotlin/no/nav/k9punsj/gosys/GosysRoutesTest.kt +++ b/src/test/kotlin/no/nav/k9punsj/gosys/GosysRoutesTest.kt @@ -17,6 +17,7 @@ internal class GosysRoutesTest: AbstractContainerBaseTest() { fun `hente gyldige verdier for gjelder`() { webTestClient.get() .uri{ it.path("/api/gosys/gjelder").build() } + .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader) .exchange() .expectStatus().isOk .expectBody().json(Gjelder.JSON) diff --git a/src/test/kotlin/no/nav/k9punsj/integrasjoner/arbeidsgivere/ArbeidsgivereRoutesTest.kt b/src/test/kotlin/no/nav/k9punsj/integrasjoner/arbeidsgivere/ArbeidsgivereRoutesTest.kt index 503306b07..c6b3394e7 100644 --- a/src/test/kotlin/no/nav/k9punsj/integrasjoner/arbeidsgivere/ArbeidsgivereRoutesTest.kt +++ b/src/test/kotlin/no/nav/k9punsj/integrasjoner/arbeidsgivere/ArbeidsgivereRoutesTest.kt @@ -52,6 +52,7 @@ internal class ArbeidsgivereRoutesTest : AbstractContainerBaseTest() { fun `hente navn på arbeidsgiver som finnes`() { webTestClient.get() .uri { it.path("/api/arbeidsgiver").queryParam("organisasjonsnummer", "979312059").build() } + .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader) .exchange() .expectStatus().isOk .expectBody().json("""{"navn":"NAV AS"}""") @@ -61,6 +62,7 @@ internal class ArbeidsgivereRoutesTest : AbstractContainerBaseTest() { fun `hente navn på arbeidsgiver som ikke finnes`() { webTestClient.get() .uri { it.path("/api/arbeidsgiver").queryParam("organisasjonsnummer", "993110469").build() } + .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader) .exchange() .expectStatus().isNotFound }