From 07279bafb38c25d1dc627ffc3fa12d621a8062b7 Mon Sep 17 00:00:00 2001 From: Cato Olsen Date: Mon, 3 Mar 2025 10:02:57 +0100 Subject: [PATCH] change/common_testing_internal (#3768) Changes liveness/readiness endpoints to match default Spring Boot Actuator endpoints. --- .github/workflows/integration-tests.yml | 2 +- apps/adresse-service/config.yml | 4 +- .../AdresseServiceApplicationStarter.java | 2 + .../adresseservice/config/SecurityConfig.java | 32 ++----- .../src/main/resources/application.yml | 30 +------ .../ApplicationContextTest.java | 16 +--- apps/altinn3-tilgang-service/config.dev.yml | 4 +- apps/altinn3-tilgang-service/config.prod.yml | 4 +- .../src/main/resources/application.yml | 26 +----- .../ApplicationContextTest.java | 14 +-- apps/amelding-service/config.yml | 4 +- .../src/main/resources/application.yml | 32 +------ .../ApplicationContextTest.java | 14 +-- apps/app-tilgang-analyse-service/config.yml | 4 +- .../src/main/resources/application.yml | 31 +------ .../ApplicationContextTest.java | 14 +-- apps/arbeidsforhold-service/config.yml | 4 +- .../ArbeidsforholdApiApplicationStarter.java | 2 + .../config/SecurityConfig.java | 33 ++----- .../src/main/resources/application.yml | 32 +------ .../ApplicationContextTest.java | 14 +-- apps/batch-bestilling-service/config.yml | 4 +- ...chBestillingServiceApplicationStarter.java | 2 + .../config/SecurityConfig.java | 30 ++----- .../src/main/resources/application.yml | 30 +------ .../ApplicationContextTest.java | 14 +-- apps/brreg-stub/config.yml | 4 +- .../no/nav/brregstub/rs/NaisController.java | 19 ---- .../src/main/resources/application.yml | 29 +------ .../v1/HentRolleoversiktControllerTest.java | 2 +- .../rs/v1/HentRollerControllerTest.java | 2 +- .../endpoint/rs/v1/KodeControllerTest.java | 2 +- .../rs/v2/RolleoversiktControllerTest.java | 2 +- .../endpoint/ws/BrregEndpointTest.java | 2 +- .../brregstub/service/BrregServiceTest.java | 2 +- apps/bruker-service/config.test.yml | 4 +- apps/bruker-service/config.yml | 4 +- .../src/main/resources/application.yml | 31 +------ .../brukerservice/ApplicationContextTest.java | 15 +--- .../WireMockInitializer.java | 19 ++-- .../initializer/H2Initializer.java | 14 --- apps/budpro-service/config.yml | 6 +- .../src/main/resources/application.yml | 26 +----- .../budpro/generate/BudproControllerTest.java | 2 +- apps/dolly-backend/config.test.yml | 4 +- apps/dolly-backend/config.yml | 4 +- .../dolly/DollyBackendApplicationStarter.java | 2 + .../nav/dolly/bestilling/ConsumerStatus.java | 47 ++++++---- .../dolly/bestilling/aareg/AaregConsumer.java | 2 +- .../ArbeidsplassenCVConsumer.java | 2 +- .../ArenaForvalterConsumer.java | 2 +- .../brregstub/BrregstubConsumer.java | 2 +- .../bestilling/dokarkiv/DokarkivConsumer.java | 2 +- .../bestilling/fullmakt/FullmaktConsumer.java | 2 +- .../InntektsmeldingConsumer.java | 2 +- .../inntektstub/InntektstubConsumer.java | 2 +- .../bestilling/instdata/InstdataConsumer.java | 2 +- .../KontoregisterConsumer.java | 2 +- .../bestilling/krrstub/KrrstubConsumer.java | 2 +- .../dolly/bestilling/medl/MedlConsumer.java | 2 +- .../bestilling/pdldata/PdlDataConsumer.java | 2 +- .../PensjonforvalterConsumer.java | 3 +- .../personservice/PersonServiceConsumer.java | 4 +- .../sigrunstub/SigrunStubConsumer.java | 2 +- .../SkjermingsRegisterConsumer.java | 2 +- .../sykemelding/SykemeldingConsumer.java | 2 +- .../tpsmessagingservice/MiljoerConsumer.java | 2 +- .../TpsMessagingConsumer.java | 2 +- .../bestilling/udistub/UdiStubConsumer.java | 2 +- .../no/nav/dolly/config/SecurityConfig.java | 28 ++---- .../dolly/consumer/norg2/Norg2Consumer.java | 2 +- .../src/main/resources/application.yml | 24 +----- .../bestilling/aareg/AaregConsumerTest.java | 2 +- .../ArenaForvalterConsumerTest.java | 2 +- .../InntektsmeldingClientTest.java | 2 +- .../instdata/InstdataConsumerTest.java | 2 +- .../KontoregisterConsumerTest.java | 2 +- .../krrstub/KrrstubConsumerTest.java | 2 +- .../PensjonforvalterConsumerTest.java | 2 +- .../sigrunstub/SigrunStubConsumerTest.java | 2 +- .../TpsMessagingConsumerTest.java | 2 +- .../TestgruppeMappingStrategyTest.java | 2 +- .../provider/api/AbstractControllerTest.java | 2 +- .../api/MalBestillingControllerTest.java | 2 +- .../api/OpensearchControllerTest.java | 2 +- apps/dolly-frontend/build.gradle | 6 -- apps/dolly-frontend/config.idporten.yml | 4 +- apps/dolly-frontend/config.test.yml | 4 +- apps/dolly-frontend/config.unstable.yml | 4 +- apps/dolly-frontend/config.yml | 4 +- .../web/config/IdportenSecurityConfig.java | 24 +++--- .../dolly/web/config/LocalSecurityConfig.java | 22 +++-- .../nav/dolly/web/config/SecurityConfig.java | 41 +++++---- .../src/main/resources/application.yml | 32 +------ .../nav/dolly/web/ApplicationContextTest.java | 14 +-- apps/dollystatus/config.yml | 4 +- .../apps/statusfrontend/NaisController.java | 18 ---- .../src/main/resources/application.yml | 33 +------ apps/endringsmelding-frontend/build.gradle | 6 -- apps/endringsmelding-frontend/config.yml | 4 +- .../config/SecurityConfig.java | 5 +- .../src/main/resources/application.yml | 25 +----- .../ApplicationContextTest.java | 19 ++-- apps/endringsmelding-service/config.yml | 4 +- .../src/main/resources/application.yml | 38 ++------ .../ApplicationContextTest.java | 14 +-- apps/faste-data-frontend/config.yml | 4 +- .../config/SecurityConfig.java | 22 +++-- .../src/main/resources/application.yml | 33 +------ .../ApplicationContextTest.java | 19 ++-- .../config.yml | 4 +- .../src/main/resources/application.yml | 30 +------ .../ApplicationContextTest.java | 14 +-- apps/generer-navn-service/config.yml | 4 +- .../GenererNavnServiceApplicationStarter.java | 2 + .../config/SecurityConfig.java | 30 ++----- .../src/main/resources/application.yml | 32 +------ .../ApplicationContextTest.java | 14 +-- .../config.yml | 4 +- ...onPopulasjonServiceApplicationStarter.java | 2 + .../config/SecurityConfig.java | 33 ++----- .../src/main/resources/application.yml | 32 +------ .../ApplicationContextTest.java | 14 +-- apps/generer-synt-amelding-service/config.yml | 4 +- ...GenererSyntAmeldingApplicationStarter.java | 2 + .../config/SecurityConfig.java | 29 ++----- .../src/main/resources/application.yml | 30 +------ .../consumer/SyntAmeldingConsumerTest.java | 2 +- apps/helsepersonell-service/config.yml | 4 +- ...lsepersonellServiceApplicationStarter.java | 2 + .../config/SecurityConfig.java | 33 ++----- .../src/main/resources/application.yml | 33 +------ .../ApplicationContextTest.java | 14 +-- .../config.yml | 4 +- ...ktsmeldingGeneratorApplicationStarter.java | 2 + .../config/SecurityConfig.java | 30 +++---- .../src/main/resources/application.yml | 33 +------ .../v2/InntektsmeldingV2ControllerTest.java | 2 +- apps/inntektsmelding-service/config.yml | 4 +- .../controller/StatusController.java | 4 +- .../src/main/resources/application.yml | 33 +------ .../InntektsmeldingControllerTest.java | 2 +- apps/jenkins-batch-status-service/config.yml | 4 +- ...sBatchStatusServiceApplicationStarter.java | 2 + .../config/SecurityConfig.java | 30 ++----- .../src/main/resources/application.yml | 33 +------ .../ApplicationContextTest.java | 14 +-- apps/joark-dokument-service/config.yml | 4 +- ...oarkDokumentServiceApplicationStarter.java | 2 + .../config/SecurityConfig.java | 30 ++----- .../src/main/resources/application.yml | 35 +------- .../ApplicationContextTest.java | 14 +-- apps/kodeverk-service/config.yml | 4 +- .../config/SecurityConfig.java | 4 +- .../src/main/resources/application.yml | 31 +------ .../ApplicationContextTest.java | 14 +-- .../src/main/resources/application.yml | 30 +------ .../ApplicationContextTest.java | 8 ++ ...eidsforholdAnsettelseApplicationTests.java | 16 ---- .../config.yml | 4 +- .../src/main/resources/application.yml | 30 +------ .../ApplicationContextTest.java | 8 ++ ...beidsforholdSchedulerApplicationTests.java | 16 ---- .../levende-arbeidsforhold-service/config.yml | 4 +- .../src/main/resources/application.yml | 29 +------ .../ApplicationContextTest.java | 14 +-- apps/miljoer-service/config.yml | 4 +- .../MiljoerServiceApplicationStarter.java | 2 + .../miljoerservice/config/SecurityConfig.java | 31 ++----- .../src/main/resources/application.yml | 31 +------ .../ApplicationContextTest.java | 14 +-- apps/oppsummeringsdokument-service/config.yml | 4 +- ...ingsdokumentServiceApplicationStarter.java | 2 + .../config/SecurityConfig.java | 30 ++----- .../src/main/resources/application.yml | 29 +------ .../config.yml | 4 +- .../config/SecurityConfig.java | 5 +- .../src/main/resources/application.yml | 31 +------ .../ApplicationContextTest.java | 14 +-- .../config.yml | 4 +- ...jonFasteDataServiceApplicationStarter.java | 2 + .../config/SecurityConfig.java | 32 ++----- .../src/main/resources/application.yml | 28 +----- .../ApplicationContextTest.java | 14 +-- apps/organisasjon-forvalter/config.yml | 4 +- .../config/SecurityConfig.java | 5 +- .../src/main/resources/application.yml | 31 +------ .../ApplicationContextTest.java | 14 +-- apps/organisasjon-mottak-service/config.yml | 4 +- .../config/SecurityConfig.java | 4 +- .../src/main/resources/application.yml | 31 +------ .../ApplicationContextTest.java | 14 +-- apps/organisasjon-service/config.yml | 4 +- ...OrganisasjonServiceApplicationStarter.java | 2 + .../config/SecurityConfig.java | 30 +++---- .../src/main/resources/application.yml | 32 +------ ...nisasjonControllerEregIntegrationTest.java | 2 +- apps/orgnummer-service/config.yml | 4 +- .../OrgnummerServiceApplicationStarter.java | 2 + .../orgnrservice/config/SecurityConfig.java | 30 ++----- .../src/main/resources/application.yml | 31 +------ .../orgnrservice/ApplicationContextTest.java | 14 +-- apps/oversikt-frontend/config.yml | 4 +- .../config/SecurityConfig.java | 28 +++--- .../src/main/resources/application.yml | 24 +----- apps/pdl-forvalter/config.test.yml | 4 +- apps/pdl-forvalter/config.yml | 4 +- .../src/main/resources/application.yml | 30 +------ apps/person-faste-data-service/config.yml | 4 +- .../src/main/resources/application.yml | 31 +------ .../ApplicationContextTest.java | 14 +-- apps/person-search-service/config.yml | 4 +- ...PersonSearchServiceApplicationStarter.java | 2 + .../config/SecurityConfig.java | 30 ++----- .../src/main/resources/application.yml | 37 ++------ .../ApplicationContextTest.java | 14 +-- apps/person-service/config.yml | 4 +- .../PersonServiceApplicationStarter.java | 2 + .../personservice/config/SecurityConfig.java | 33 +++---- .../src/main/resources/application.yml | 31 +------ .../personservice/ApplicationContextTest.java | 14 +-- apps/profil-api/config.test.yml | 4 +- apps/profil-api/config.yml | 4 +- .../profil/ProfilApiApplicationStarter.java | 2 + .../profil/config/SecurityConfiguration.java | 28 ++---- .../src/main/resources/application.yml | 31 +------ .../profil/ApplicationContextTest.java | 14 +-- apps/skattekort-service/config.yml | 4 +- .../src/main/resources/application.yml | 29 +------ .../ApplicationContextTest.java | 14 +-- apps/sykemelding-api/config.test.yml | 4 +- apps/sykemelding-api/config.yml | 4 +- .../SykemeldingApiApplicationStarter.java | 4 +- .../sykemelding/config/SecurityConfig.java | 33 ++----- .../src/main/resources/application.yml | 30 +------ .../sykemelding/ApplicationContextTest.java | 14 +-- apps/synt-sykemelding-api/config.test.yml | 4 +- apps/synt-sykemelding-api/config.yml | 4 +- .../SyntSykemeldingApiApplicationStarter.java | 3 +- .../config/SecurityConfig.java | 31 ++----- .../src/main/resources/application.yml | 31 +------ .../consumer/ArbeidsforholdConsumerTest.java | 2 +- .../consumer/HelsepersonellConsumerTest.java | 2 +- .../consumer/OrganisasjonConsumerTest.java | 2 +- .../consumer/PdlProxyConsumerTest.java | 2 +- .../consumer/SykemeldingConsumerTest.java | 2 +- .../consumer/SyntElsamConsumerTest.java | 2 +- ...tSykemeldingControllerIntegrationTest.java | 2 +- apps/synt-vedtakshistorikk-service/config.yml | 4 +- ...akshistorikkServiceApplicationStarter.java | 2 + .../config/SecurityConfig.java | 33 +++---- .../src/main/resources/application.yml | 29 +------ .../consumer/ArenaForvalterConsumerTest.java | 2 +- .../consumer/PdlConsumerTest.java | 2 +- .../PensjonTestdataFacadeConsumerTest.java | 2 +- .../consumer/PersonSearchConsumerTest.java | 2 +- .../SyntVedtakshistorikkConsumerTest.java | 2 +- apps/tenor-search-service/build.gradle | 1 + apps/tenor-search-service/config.yml | 4 +- .../src/main/resources/application.yml | 25 +----- .../ApplicationContextTest.java | 13 +-- apps/testnav-ident-pool/config.yml | 4 +- .../src/main/resources/application.yml | 30 +------ .../testnav/identpool/ComponentTestbase.java | 2 +- .../config.yml | 4 +- .../src/main/resources/application.yml | 29 +------ ...treringControllerAaregIntegrationTest.java | 2 +- ...estreringControllerKrrIntegrationTest.java | 2 +- ...cDataControllerV1AaregIntegrationTest.java | 2 +- ...icDataControllerV1EregIntegrationTest.java | 2 +- ...ticDataControllerV1KrrIntegrationTest.java | 2 +- apps/tilbakemelding-api/config.yml | 4 +- .../config/SecurityConfig.java | 26 ++---- .../src/main/resources/application.yml | 31 +------ .../ApplicationContextTest.java | 14 +-- apps/tps-messaging-service/config.yml | 4 +- ...TpsMessagingServiceApplicationStarter.java | 2 + .../config/SecurityConfig.java | 32 ++----- .../src/main/resources/application.yml | 31 +------ .../ApplicationContextTest.java | 14 +-- apps/udi-stub/config.yml | 4 +- .../src/main/resources/application.yml | 29 +------ .../udistub/converter/itest/UdiStubITest.java | 2 +- apps/varslinger-service/config.test.yml | 4 +- apps/varslinger-service/config.yml | 4 +- .../VarslingerServiceApplicationStarter.java | 2 + .../config/SecurityConfig.java | 27 ++---- .../src/main/resources/application.yml | 31 +------ .../controller/VarslingerControllerTest.java | 2 +- .../VarslingerPersonControllerTest.java | 2 +- .../libs/reactivecore/config/CoreConfig.java | 4 - .../reactivecore/router/InternalHandler.java | 51 ----------- .../reactivecore/router/InternalRouter.java | 30 ------- .../router/InternalHandlerTest.java | 75 ---------------- .../TokenServiceAutoConfiguration.java | 7 +- .../azuread/AzureNavTokenService.java | 14 +++ .../exchange/azuread/AzureTokenService.java | 14 +++ .../AzureTrygdeetatenTokenService.java | 14 +++ .../config/ApplicationCoreConfig.java | 6 +- .../libs/servletcore/health/Health.java | 13 ++- ...nfig.java => HealthAutoConfiguration.java} | 17 +++- .../health/HealthToMeterBinder.java | 19 ++-- ...LegacyHealthEndpointsForwardingFilter.java | 41 +++++++++ .../provider/InternalController.java | 62 ------------- ...ot.autoconfigure.AutoConfiguration.imports | 1 + .../provider/InternalControllerTest.java | 49 ----------- .../security/config/DollyHttpSecurity.java | 28 ++++++ ...ironmentApplicationContextInitializer.java | 3 + .../test/DollyApplicationContextTest.java | 86 +++++++++++++++++++ .../{nais => test}/DollySpringBootTest.java | 4 +- .../src/main/resources/dolly-application.yml | 37 ++++++++ .../java/src/main/groovy/dolly-apps.gradle | 5 +- .../java/src/main/groovy/dolly-libs.gradle | 5 +- .../java/src/main/groovy/dolly-proxies.gradle | 5 +- proxies/aareg-proxy/config.yml | 4 +- .../src/main/resources/application.yml | 9 +- .../proxies/aareg/ApplicationContextTest.java | 14 +-- proxies/aareg-synt-services-proxy/config.yml | 4 +- ...regSyntServiceProxyApplicationStarter.java | 11 ++- .../src/main/resources/application.yml | 11 +-- .../ApplicationContextTest.java | 14 +-- proxies/altinn3-tilgang-proxy/config.yml | 4 +- ...Altinn3TilgangProxyApplicationStarter.java | 20 +++-- .../src/main/resources/application.yml | 9 +- .../ApplicationContextTest.java | 14 +-- proxies/arbeidsplassencv-proxy/config.yml | 4 +- ...beidsplassenCVProxyApplicationStarter.java | 16 ++-- .../src/main/resources/application.yml | 9 +- .../ApplicationContextTest.java | 14 +-- .../arbeidssoekerregisteret-proxy/config.yml | 4 +- ...ekerregisteretProxyApplicationStarter.java | 23 +++-- .../src/main/resources/application.yml | 9 +- .../ApplicationContextTest.java | 16 +--- proxies/arena-forvalteren-proxy/config.yml | 4 +- .../src/main/resources/application.yml | 9 +- .../ApplicationContextTest.java | 14 +-- proxies/batch-adeo-proxy/config.yml | 4 +- .../BatchAdeoProxyApplicationStarter.java | 11 ++- .../src/main/resources/application.yml | 11 +-- .../ApplicationContextTest.java | 14 +-- proxies/brregstub-proxy/config.yml | 4 +- .../BrregstubProxyApplicationStarter.java | 11 ++- .../brregstubproxy/StatusController.java | 4 +- .../src/main/resources/application.yml | 11 +-- .../ApplicationContextTest.java | 14 +-- proxies/brregstub-reverse-proxy/build.gradle | 3 +- .../ApplicationContextTest.java | 2 +- proxies/dokarkiv-proxy/config.yml | 4 +- .../src/main/resources/application.yml | 9 +- .../dokarkivproxy/ApplicationContextTest.java | 14 +-- proxies/ereg-proxy/config.yml | 4 +- .../src/main/resources/application.yml | 11 +-- .../eregproxy/ApplicationContextTest.java | 14 +-- proxies/fullmakt-proxy/config.yml | 4 +- .../FullmaktProxyApplicationStarter.java | 22 +++-- .../src/main/resources/application.yml | 9 +- .../fullmaktproxy/ApplicationContextTest.java | 14 +-- proxies/histark-proxy/config.yml | 4 +- .../HistarkProxyApplicationStarter.java | 9 +- .../src/main/resources/application.yml | 11 +-- .../histarkproxy/ApplicationContextTest.java | 14 +-- proxies/inntektstub-proxy/config.yml | 4 +- .../InntektstubProxyApplicationStarter.java | 8 +- .../src/main/resources/application.yml | 11 +-- .../ApplicationContextTest.java | 14 +-- proxies/inst-proxy/config.yml | 4 +- .../InstProxyApplicationStarter.java | 7 +- .../src/main/resources/application.yml | 9 +- .../instproxy/ApplicationContextTest.java | 14 +-- proxies/kontoregister-person-proxy/config.yml | 4 +- .../KontoregisterProxyApplicationStarter.java | 4 +- .../src/main/resources/application.yml | 9 +- .../ApplicationContextTest.java | 14 +-- proxies/krrstub-proxy/config.yml | 4 +- .../src/main/resources/application.yml | 9 +- .../krrstubproxy/ApplicationContextTest.java | 14 +-- proxies/medl-proxy/config.yml | 4 +- .../src/main/resources/application.yml | 9 +- .../medlproxy/ApplicationContextTest.java | 14 +-- proxies/norg2-proxy/config.yml | 4 +- .../Norg2ProxyApplicationStarter.java | 10 ++- .../src/main/resources/application.yml | 11 +-- .../norg2proxy/ApplicationContextTest.java | 14 +-- proxies/pdl-proxy/config.yml | 4 +- .../src/main/resources/application.yml | 9 +- .../pdlproxy/ApplicationContextTest.java | 14 +-- .../pensjon-testdata-facade-proxy/config.yml | 4 +- .../src/main/resources/application.yml | 9 +- .../ApplicationContextTest.java | 14 +-- proxies/saf-proxy/config.yml | 4 +- .../src/main/resources/application.yml | 9 +- .../safproxy/ApplicationContextTest.java | 14 +-- proxies/sigrunstub-proxy/config.yml | 4 +- .../SigrunstubProxyApplicationStarter.java | 11 ++- .../src/main/resources/application.yml | 11 +-- .../ApplicationContextTest.java | 14 +-- proxies/skjermingsregister-proxy/config.yml | 4 +- .../RouteLocatorConfig.java | 2 + .../src/main/resources/application.yml | 9 +- .../RouteLocatorConfigTest.java | 12 +-- proxies/sykemelding-proxy/config.yml | 4 +- .../sykemeldingproxy/RouteLocatorConfig.java | 2 + .../src/main/resources/application.yml | 9 +- .../RouteLocatorConfigTest.java | 12 +-- .../synthdata-meldekort-proxy/build.gradle | 6 -- proxies/synthdata-meldekort-proxy/config.yml | 4 +- ...hdataMeldekortProxyApplicationStarter.java | 7 +- .../src/main/resources/application.yml | 9 +- .../src/main/resources/logback-spring.xml | 2 +- .../ApplicationContextTest.java | 14 +-- proxies/udistub-proxy/config.yml | 4 +- .../udistubproxy/StatusController.java | 4 +- .../UdistubProxyApplicationStarter.java | 14 +-- .../src/main/resources/application.yml | 9 +- .../udistubproxy/ApplicationContextTest.java | 14 +-- proxies/yrkesskade-proxy/config.yml | 4 +- .../YrkesskadeProxyApplicationStarter.java | 2 + .../src/main/resources/application-prod.yml | 8 -- .../src/main/resources/application.yml | 12 ++- .../ApplicationContextTest.java | 8 ++ 420 files changed, 1507 insertions(+), 3696 deletions(-) delete mode 100644 apps/brreg-stub/src/main/java/no/nav/brregstub/rs/NaisController.java rename apps/bruker-service/src/test/java/no/nav/testnav/apps/brukerservice/{initializer => }/WireMockInitializer.java (62%) delete mode 100644 apps/bruker-service/src/test/java/no/nav/testnav/apps/brukerservice/initializer/H2Initializer.java delete mode 100644 apps/dollystatus/src/main/java/no/nav/testnav/apps/statusfrontend/NaisController.java create mode 100644 apps/levende-arbeidsforhold-ansettelse/src/test/java/no/nav/testnav/levendearbeidsforholdansettelse/ApplicationContextTest.java delete mode 100644 apps/levende-arbeidsforhold-ansettelse/src/test/java/no/nav/testnav/levendearbeidsforholdansettelse/LevendeArbeidsforholdAnsettelseApplicationTests.java create mode 100644 apps/levende-arbeidsforhold-scheduler/src/test/java/no/nav/testnav/levendearbeidsforholdscheduler/ApplicationContextTest.java delete mode 100644 apps/levende-arbeidsforhold-scheduler/src/test/java/no/nav/testnav/levendearbeidsforholdscheduler/LevendeArbeidsforholdSchedulerApplicationTests.java delete mode 100644 libs/reactive-core/src/main/java/no/nav/testnav/libs/reactivecore/router/InternalHandler.java delete mode 100644 libs/reactive-core/src/main/java/no/nav/testnav/libs/reactivecore/router/InternalRouter.java delete mode 100644 libs/reactive-core/src/test/java/no/nav/testnav/libs/reactivecore/router/InternalHandlerTest.java rename libs/servlet-core/src/main/java/no/nav/testnav/libs/servletcore/health/{HealthToMeterAutoConfig.java => HealthAutoConfiguration.java} (60%) create mode 100644 libs/servlet-core/src/main/java/no/nav/testnav/libs/servletcore/health/LegacyHealthEndpointsForwardingFilter.java delete mode 100644 libs/servlet-core/src/main/java/no/nav/testnav/libs/servletcore/provider/InternalController.java create mode 100644 libs/servlet-core/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports delete mode 100644 libs/servlet-core/src/test/java/no/nav/testnav/libs/servletcore/provider/InternalControllerTest.java create mode 100644 libs/servlet-security/src/main/java/no/nav/dolly/libs/security/config/DollyHttpSecurity.java create mode 100644 libs/testing/src/main/java/no/nav/dolly/libs/test/DollyApplicationContextTest.java rename libs/testing/src/main/java/no/nav/dolly/libs/{nais => test}/DollySpringBootTest.java (91%) create mode 100644 libs/testing/src/main/resources/dolly-application.yml delete mode 100644 proxies/yrkesskade-proxy/src/main/resources/application-prod.yml create mode 100644 proxies/yrkesskade-proxy/src/test/java/no/nav/testnav/proxies/yrkesskadeproxy/ApplicationContextTest.java diff --git a/.github/workflows/integration-tests.yml b/.github/workflows/integration-tests.yml index e7f6e7bb121..250ad71e8ea 100644 --- a/.github/workflows/integration-tests.yml +++ b/.github/workflows/integration-tests.yml @@ -14,6 +14,6 @@ jobs: uses: ./.github/workflows/common.integration-test.yml with: working-directory: "apps/bruker-service/" - healthcheck: "http://localhost:8002/internal/isAlive" + healthcheck: "http://localhost:8002/internal/health/liveness" secrets: NAV_TOKEN: ${{ secrets.NAV_TOKEN }} \ No newline at end of file diff --git a/apps/adresse-service/config.yml b/apps/adresse-service/config.yml index a0979da9f6c..4af02b6c8d9 100644 --- a/apps/adresse-service/config.yml +++ b/apps/adresse-service/config.yml @@ -18,7 +18,7 @@ spec: ingresses: - "https://testnav-adresse-service.intern.dev.nav.no" liveness: - path: /internal/isAlive + path: /internal/health/liveness periodSeconds: 30 initialDelay: 30 observability: @@ -29,7 +29,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 30 prometheus: enabled: true diff --git a/apps/adresse-service/src/main/java/no/nav/testnav/apps/adresseservice/AdresseServiceApplicationStarter.java b/apps/adresse-service/src/main/java/no/nav/testnav/apps/adresseservice/AdresseServiceApplicationStarter.java index 78ba993f39a..ebe3d43a38b 100644 --- a/apps/adresse-service/src/main/java/no/nav/testnav/apps/adresseservice/AdresseServiceApplicationStarter.java +++ b/apps/adresse-service/src/main/java/no/nav/testnav/apps/adresseservice/AdresseServiceApplicationStarter.java @@ -3,7 +3,9 @@ import no.nav.dolly.libs.nais.NaisEnvironmentApplicationContextInitializer; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +@EnableWebSecurity @SpringBootApplication public class AdresseServiceApplicationStarter { diff --git a/apps/adresse-service/src/main/java/no/nav/testnav/apps/adresseservice/config/SecurityConfig.java b/apps/adresse-service/src/main/java/no/nav/testnav/apps/adresseservice/config/SecurityConfig.java index 873a539a747..697757991e6 100644 --- a/apps/adresse-service/src/main/java/no/nav/testnav/apps/adresseservice/config/SecurityConfig.java +++ b/apps/adresse-service/src/main/java/no/nav/testnav/apps/adresseservice/config/SecurityConfig.java @@ -1,39 +1,25 @@ package no.nav.testnav.apps.adresseservice.config; +import no.nav.dolly.libs.security.config.DollyHttpSecurity; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Profile; -import org.springframework.core.annotation.Order; import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; -import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; -@EnableWebSecurity @Configuration -@Profile({ "prod", "local" }) -@Order(1) -public class SecurityConfig { +class SecurityConfig { @Bean - public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { - - httpSecurity.sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) + SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { + return httpSecurity + .sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) .csrf(AbstractHttpConfigurer::disable) - .authorizeHttpRequests(authorizeConfig -> authorizeConfig.requestMatchers( - "/internal/**", - "/webjars/**", - "/swagger-resources/**", - "/v3/api-docs/**", - "/swagger-ui/**", - "/swagger", - "/error", - "/swagger-ui.html" - ).permitAll().requestMatchers("/api/**").fullyAuthenticated()) - .oauth2ResourceServer(oauth2RSConfig -> oauth2RSConfig.jwt(Customizer.withDefaults())); - - return httpSecurity.build(); + .authorizeHttpRequests(DollyHttpSecurity.withDefaultHttpRequests()) + .oauth2ResourceServer(oauth2RSConfig -> oauth2RSConfig.jwt(Customizer.withDefaults())) + .build(); } + } diff --git a/apps/adresse-service/src/main/resources/application.yml b/apps/adresse-service/src/main/resources/application.yml index 9b742cb296e..2e18cbe6c16 100644 --- a/apps/adresse-service/src/main/resources/application.yml +++ b/apps/adresse-service/src/main/resources/application.yml @@ -1,6 +1,8 @@ spring: application: name: adresse-service + config: + import: "classpath:dolly-application.yml" flyway: enabled: false security: @@ -13,35 +15,9 @@ spring: issuer-uri: ${TOKEN_X_ISSUER} accepted-audience: ${TOKEN_X_CLIENT_ID} -springdoc: - swagger-ui: - disable-swagger-default-url: true - url: /v3/api-docs - consumers: pdl-services: url: https://testnav-pdl-proxy.dev-fss-pub.nais.io cluster: dev-fss namespace: dolly - name: testnav-pdl-proxy - -management: - endpoints: - access: - default: read_only - web: - base-path: /internal - exposure: - include: prometheus,health - path-mapping: - prometheus: metrics - prometheus: - metrics: - export: - enabled: true -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always \ No newline at end of file + name: testnav-pdl-proxy \ No newline at end of file diff --git a/apps/adresse-service/src/test/java/no/nav/testnav/apps/adresseservice/ApplicationContextTest.java b/apps/adresse-service/src/test/java/no/nav/testnav/apps/adresseservice/ApplicationContextTest.java index 0030cc8c23a..42bd61cad17 100644 --- a/apps/adresse-service/src/test/java/no/nav/testnav/apps/adresseservice/ApplicationContextTest.java +++ b/apps/adresse-service/src/test/java/no/nav/testnav/apps/adresseservice/ApplicationContextTest.java @@ -1,16 +1,8 @@ package no.nav.testnav.apps.adresseservice; -import no.nav.dolly.libs.nais.DollySpringBootTest; -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import no.nav.dolly.libs.test.DollySpringBootTest; +import no.nav.dolly.libs.test.DollyApplicationContextTest; @DollySpringBootTest -class ApplicationContextTest { - - @Test - void load_app_context() { - assertThat(true).isTrue(); - } - -} +class ApplicationContextTest extends DollyApplicationContextTest { +} \ No newline at end of file diff --git a/apps/altinn3-tilgang-service/config.dev.yml b/apps/altinn3-tilgang-service/config.dev.yml index 6b66adf5c44..6153a4c6d87 100644 --- a/apps/altinn3-tilgang-service/config.dev.yml +++ b/apps/altinn3-tilgang-service/config.dev.yml @@ -38,7 +38,7 @@ spec: - host: platform.tt02.altinn.no - host: data.brreg.no liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 10 periodSeconds: 5 failureThreshold: 500 @@ -50,7 +50,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 10 periodSeconds: 5 failureThreshold: 500 diff --git a/apps/altinn3-tilgang-service/config.prod.yml b/apps/altinn3-tilgang-service/config.prod.yml index ed0e4aff1d6..5c9a96206cb 100644 --- a/apps/altinn3-tilgang-service/config.prod.yml +++ b/apps/altinn3-tilgang-service/config.prod.yml @@ -42,7 +42,7 @@ spec: - host: platform.altinn.no - host: data.brreg.no liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 10 periodSeconds: 5 failureThreshold: 500 @@ -54,7 +54,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 10 periodSeconds: 5 failureThreshold: 500 diff --git a/apps/altinn3-tilgang-service/src/main/resources/application.yml b/apps/altinn3-tilgang-service/src/main/resources/application.yml index ca0b9822873..65d541fc3ae 100644 --- a/apps/altinn3-tilgang-service/src/main/resources/application.yml +++ b/apps/altinn3-tilgang-service/src/main/resources/application.yml @@ -2,6 +2,8 @@ spring: application: name: testnav-altinn3-tilgang-service description: Tjeneste for å hente og sette tilganger for orgnisasjoner + config: + import: "classpath:dolly-application.yml" security: oauth2: resourceserver: @@ -15,11 +17,6 @@ spring: serialization: write_dates_as_timestamps: false -springdoc: - swagger-ui: - disable-swagger-default-url: true - url: /v3/api-docs - altinn: api: url: ${ALTINN_URL} @@ -27,25 +24,6 @@ altinn: owner: nav identifier: godkjente-dolly-tilganger -management: - endpoints: - access: - default: read_only - web: - base-path: /internal - exposure: - include: prometheus,health - path-mapping: - prometheus: metrics - prometheus: - metrics: - export: - enabled: true - server: - servlet: - encoding: - charset: UTF-8 error: - include-message: always include-stacktrace: never \ No newline at end of file diff --git a/apps/altinn3-tilgang-service/src/test/java/no/nav/testnav/altinn3tilgangservice/ApplicationContextTest.java b/apps/altinn3-tilgang-service/src/test/java/no/nav/testnav/altinn3tilgangservice/ApplicationContextTest.java index 7c6207e48bd..a7fa2281abb 100644 --- a/apps/altinn3-tilgang-service/src/test/java/no/nav/testnav/altinn3tilgangservice/ApplicationContextTest.java +++ b/apps/altinn3-tilgang-service/src/test/java/no/nav/testnav/altinn3tilgangservice/ApplicationContextTest.java @@ -1,16 +1,8 @@ package no.nav.testnav.altinn3tilgangservice; -import no.nav.dolly.libs.nais.DollySpringBootTest; -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import no.nav.dolly.libs.test.DollySpringBootTest; +import no.nav.dolly.libs.test.DollyApplicationContextTest; @DollySpringBootTest -class ApplicationContextTest { - - @Test - void load_app_context() { - assertThat(true).isTrue(); - } - +class ApplicationContextTest extends DollyApplicationContextTest { } diff --git a/apps/amelding-service/config.yml b/apps/amelding-service/config.yml index 8e554df5641..2132aa60c58 100644 --- a/apps/amelding-service/config.yml +++ b/apps/amelding-service/config.yml @@ -29,7 +29,7 @@ spec: enabled: true tenant: nav.no liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 @@ -41,7 +41,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 diff --git a/apps/amelding-service/src/main/resources/application.yml b/apps/amelding-service/src/main/resources/application.yml index 2ee2afe36e4..65b14e4f756 100644 --- a/apps/amelding-service/src/main/resources/application.yml +++ b/apps/amelding-service/src/main/resources/application.yml @@ -3,6 +3,8 @@ spring: name: testnav-amelding-service version: application.version.todo description: Tjeneste for å sende inn amelding + config: + import: "classpath:dolly-application.yml" security: oauth2: resourceserver: @@ -10,37 +12,9 @@ spring: issuer-uri: ${AZURE_OPENID_CONFIG_ISSUER} accepted-audience: ${AZURE_APP_CLIENT_ID}, api:// ${AZURE_APP_CLIENT_ID} -springdoc: - swagger-ui: - disable-swagger-default-url: true - url: /v3/api-docs - consumers: oppsummeringsdokument-service: cluster: dev-gcp namespace: dolly name: testnav-oppsummeringsdokument-service - url: http://testnav-oppsummeringsdokument-service.dolly.svc.cluster.local - -management: - endpoints: - enabled-by-default: true - web: - base-path: /internal - exposure: - include: prometheus,health - path-mapping: - prometheus: metrics - endpoint: - prometheus: - enabled: true - prometheus: - metrics: - export: - enabled: true -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always \ No newline at end of file + url: http://testnav-oppsummeringsdokument-service.dolly.svc.cluster.local \ No newline at end of file diff --git a/apps/amelding-service/src/test/java/no/nav/registre/testnav/ameldingservice/ApplicationContextTest.java b/apps/amelding-service/src/test/java/no/nav/registre/testnav/ameldingservice/ApplicationContextTest.java index 38bbf30dd8d..d7fd23bb871 100644 --- a/apps/amelding-service/src/test/java/no/nav/registre/testnav/ameldingservice/ApplicationContextTest.java +++ b/apps/amelding-service/src/test/java/no/nav/registre/testnav/ameldingservice/ApplicationContextTest.java @@ -1,16 +1,8 @@ package no.nav.registre.testnav.ameldingservice; -import no.nav.dolly.libs.nais.DollySpringBootTest; -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import no.nav.dolly.libs.test.DollySpringBootTest; +import no.nav.dolly.libs.test.DollyApplicationContextTest; @DollySpringBootTest -class ApplicationContextTest { - - @Test - void load_app_context() { - assertThat(true).isTrue(); - } - +class ApplicationContextTest extends DollyApplicationContextTest { } diff --git a/apps/app-tilgang-analyse-service/config.yml b/apps/app-tilgang-analyse-service/config.yml index 70f3bf95994..04d88e71f7f 100644 --- a/apps/app-tilgang-analyse-service/config.yml +++ b/apps/app-tilgang-analyse-service/config.yml @@ -30,7 +30,7 @@ spec: databases: - name: testnav-app-tilgang-analyse-service-db liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 @@ -42,7 +42,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 diff --git a/apps/app-tilgang-analyse-service/src/main/resources/application.yml b/apps/app-tilgang-analyse-service/src/main/resources/application.yml index b9c6c9f0aab..8493750c74c 100644 --- a/apps/app-tilgang-analyse-service/src/main/resources/application.yml +++ b/apps/app-tilgang-analyse-service/src/main/resources/application.yml @@ -2,6 +2,8 @@ spring: application: name: testnav-app-tilgang-analyse-service description: API for å app tilgang analyse + config: + import: "classpath:dolly-application.yml" security: oauth2: resourceserver: @@ -12,34 +14,7 @@ spring: issuer-uri: ${TOKEN_X_ISSUER} accepted-audience: ${TOKEN_X_CLIENT_ID} -springdoc: - swagger-ui: - disable-swagger-default-url: true - url: /v3/api-docs - consumers: github: url: https://api.github.com - token: ${DOLLY_READER_TOKEN} - -management: - endpoints: - access: - default: read_only - web: - base-path: /internal - exposure: - include: prometheus,health - path-mapping: - prometheus: metrics - prometheus: - metrics: - export: - enabled: true - -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always \ No newline at end of file + token: ${DOLLY_READER_TOKEN} \ No newline at end of file diff --git a/apps/app-tilgang-analyse-service/src/test/java/no/nav/testnav/apps/apptilganganalyseservice/ApplicationContextTest.java b/apps/app-tilgang-analyse-service/src/test/java/no/nav/testnav/apps/apptilganganalyseservice/ApplicationContextTest.java index b874b3d7a01..559a7a53986 100644 --- a/apps/app-tilgang-analyse-service/src/test/java/no/nav/testnav/apps/apptilganganalyseservice/ApplicationContextTest.java +++ b/apps/app-tilgang-analyse-service/src/test/java/no/nav/testnav/apps/apptilganganalyseservice/ApplicationContextTest.java @@ -1,16 +1,8 @@ package no.nav.testnav.apps.apptilganganalyseservice; -import no.nav.dolly.libs.nais.DollySpringBootTest; -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import no.nav.dolly.libs.test.DollySpringBootTest; +import no.nav.dolly.libs.test.DollyApplicationContextTest; @DollySpringBootTest -class ApplicationContextTest { - - @Test - void load_app_context() { - assertThat(true).isTrue(); - } - +class ApplicationContextTest extends DollyApplicationContextTest { } diff --git a/apps/arbeidsforhold-service/config.yml b/apps/arbeidsforhold-service/config.yml index f5ead086d9d..e316ed7ec77 100644 --- a/apps/arbeidsforhold-service/config.yml +++ b/apps/arbeidsforhold-service/config.yml @@ -34,7 +34,7 @@ spec: external: - host: testnav-aareg-proxy.dev-fss-pub.nais.io liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 @@ -46,7 +46,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 diff --git a/apps/arbeidsforhold-service/src/main/java/no/nav/registre/testnorge/arbeidsforholdservice/ArbeidsforholdApiApplicationStarter.java b/apps/arbeidsforhold-service/src/main/java/no/nav/registre/testnorge/arbeidsforholdservice/ArbeidsforholdApiApplicationStarter.java index 40cfc905e88..ca1945e302d 100644 --- a/apps/arbeidsforhold-service/src/main/java/no/nav/registre/testnorge/arbeidsforholdservice/ArbeidsforholdApiApplicationStarter.java +++ b/apps/arbeidsforhold-service/src/main/java/no/nav/registre/testnorge/arbeidsforholdservice/ArbeidsforholdApiApplicationStarter.java @@ -3,7 +3,9 @@ import no.nav.dolly.libs.nais.NaisEnvironmentApplicationContextInitializer; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +@EnableWebSecurity @SpringBootApplication public class ArbeidsforholdApiApplicationStarter { diff --git a/apps/arbeidsforhold-service/src/main/java/no/nav/registre/testnorge/arbeidsforholdservice/config/SecurityConfig.java b/apps/arbeidsforhold-service/src/main/java/no/nav/registre/testnorge/arbeidsforholdservice/config/SecurityConfig.java index 224a0415f32..123378db225 100644 --- a/apps/arbeidsforhold-service/src/main/java/no/nav/registre/testnorge/arbeidsforholdservice/config/SecurityConfig.java +++ b/apps/arbeidsforhold-service/src/main/java/no/nav/registre/testnorge/arbeidsforholdservice/config/SecurityConfig.java @@ -1,41 +1,26 @@ package no.nav.registre.testnorge.arbeidsforholdservice.config; +import no.nav.dolly.libs.security.config.DollyHttpSecurity; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Profile; -import org.springframework.core.annotation.Order; import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; -import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; - -@Order(1) -@EnableWebSecurity @Configuration -@Profile({ "prod", "dev" }) -public class SecurityConfig { +class SecurityConfig { @Bean - public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { - - httpSecurity.sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) + SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { + return httpSecurity + .sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) .csrf(AbstractHttpConfigurer::disable) - .authorizeHttpRequests(authorizeConfig -> authorizeConfig.requestMatchers( - "/internal/**", - "/webjars/**", - "/swagger-resources/**", - "/v3/api-docs/**", - "/swagger-ui/**", - "/swagger", - "/error", - "/swagger-ui.html" - ).permitAll().requestMatchers("/api/**").fullyAuthenticated()) - .oauth2ResourceServer(oauth2RSConfig -> oauth2RSConfig.jwt(Customizer.withDefaults())); - - return httpSecurity.build(); + .authorizeHttpRequests(DollyHttpSecurity.withDefaultHttpRequests()) + .oauth2ResourceServer(oauth2RSConfig -> oauth2RSConfig.jwt(Customizer.withDefaults())) + .build(); } + } diff --git a/apps/arbeidsforhold-service/src/main/resources/application.yml b/apps/arbeidsforhold-service/src/main/resources/application.yml index 226cff6e713..57f5720ef2b 100644 --- a/apps/arbeidsforhold-service/src/main/resources/application.yml +++ b/apps/arbeidsforhold-service/src/main/resources/application.yml @@ -2,6 +2,8 @@ spring: application: name: testnav-arbeidsforhold-service description: Tjenester for arbeidsforhold. + config: + import: "classpath:dolly-application.yml" security: oauth2: resourceserver: @@ -12,37 +14,9 @@ spring: issuer-uri: ${TOKEN_X_ISSUER} accepted-audience: ${TOKEN_X_CLIENT_ID} -springdoc: - swagger-ui: - disable-swagger-default-url: true - url: /v3/api-docs - consumers: testnav-aareg-proxy: name: testnav-aareg-proxy namespace: dolly url: https://testnav-aareg-proxy.dev-fss-pub.nais.io - cluster: dev-fss - -management: - endpoints: - enabled-by-default: true - web: - base-path: /internal - exposure: - include: prometheus,health - path-mapping: - prometheus: metrics - endpoint: - prometheus: - enabled: true - prometheus: - metrics: - export: - enabled: true -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always \ No newline at end of file + cluster: dev-fss \ No newline at end of file diff --git a/apps/arbeidsforhold-service/src/test/java/no/nav/registre/testnorge/arbeidsforholdservice/ApplicationContextTest.java b/apps/arbeidsforhold-service/src/test/java/no/nav/registre/testnorge/arbeidsforholdservice/ApplicationContextTest.java index b92f1300d51..2dc82e3670f 100644 --- a/apps/arbeidsforhold-service/src/test/java/no/nav/registre/testnorge/arbeidsforholdservice/ApplicationContextTest.java +++ b/apps/arbeidsforhold-service/src/test/java/no/nav/registre/testnorge/arbeidsforholdservice/ApplicationContextTest.java @@ -1,16 +1,8 @@ package no.nav.registre.testnorge.arbeidsforholdservice; -import no.nav.dolly.libs.nais.DollySpringBootTest; -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import no.nav.dolly.libs.test.DollySpringBootTest; +import no.nav.dolly.libs.test.DollyApplicationContextTest; @DollySpringBootTest -class ApplicationContextTest { - - @Test - void load_app_context() { - assertThat(true).isTrue(); - } - +class ApplicationContextTest extends DollyApplicationContextTest { } diff --git a/apps/batch-bestilling-service/config.yml b/apps/batch-bestilling-service/config.yml index 4ed5aacd8ee..5ab41fe890b 100644 --- a/apps/batch-bestilling-service/config.yml +++ b/apps/batch-bestilling-service/config.yml @@ -26,7 +26,7 @@ spec: enabled: true tenant: nav.no liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 30 periodSeconds: 30 failureThreshold: 500 @@ -38,7 +38,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 30 failureThreshold: 500 prometheus: diff --git a/apps/batch-bestilling-service/src/main/java/no/nav/registre/testnorge/batchbestillingservice/BatchBestillingServiceApplicationStarter.java b/apps/batch-bestilling-service/src/main/java/no/nav/registre/testnorge/batchbestillingservice/BatchBestillingServiceApplicationStarter.java index 700acd29770..228831d4478 100644 --- a/apps/batch-bestilling-service/src/main/java/no/nav/registre/testnorge/batchbestillingservice/BatchBestillingServiceApplicationStarter.java +++ b/apps/batch-bestilling-service/src/main/java/no/nav/registre/testnorge/batchbestillingservice/BatchBestillingServiceApplicationStarter.java @@ -3,7 +3,9 @@ import no.nav.dolly.libs.nais.NaisEnvironmentApplicationContextInitializer; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +@EnableWebSecurity @SpringBootApplication public class BatchBestillingServiceApplicationStarter { public static void main(String[] args) { diff --git a/apps/batch-bestilling-service/src/main/java/no/nav/registre/testnorge/batchbestillingservice/config/SecurityConfig.java b/apps/batch-bestilling-service/src/main/java/no/nav/registre/testnorge/batchbestillingservice/config/SecurityConfig.java index a4d6b183de8..07bda1f875c 100644 --- a/apps/batch-bestilling-service/src/main/java/no/nav/registre/testnorge/batchbestillingservice/config/SecurityConfig.java +++ b/apps/batch-bestilling-service/src/main/java/no/nav/registre/testnorge/batchbestillingservice/config/SecurityConfig.java @@ -1,37 +1,25 @@ package no.nav.registre.testnorge.batchbestillingservice.config; +import no.nav.dolly.libs.security.config.DollyHttpSecurity; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Profile; import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; -import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; -@EnableWebSecurity @Configuration -@Profile({ "prod", "dev" }) -public class SecurityConfig { +class SecurityConfig { @Bean - public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { - - httpSecurity.sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) + SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { + return httpSecurity + .sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) .csrf(AbstractHttpConfigurer::disable) - .authorizeHttpRequests(authorizeConfig -> authorizeConfig.requestMatchers( - "/internal/**", - "/webjars/**", - "/swagger-resources/**", - "/v3/api-docs/**", - "/swagger-ui/**", - "/swagger", - "/error", - "/swagger-ui.html" - ).permitAll().requestMatchers("/api/**").fullyAuthenticated()) - .oauth2ResourceServer(oauth2RSConfig -> oauth2RSConfig.jwt(Customizer.withDefaults())); - - return httpSecurity.build(); + .authorizeHttpRequests(DollyHttpSecurity.withDefaultHttpRequests()) + .oauth2ResourceServer(oauth2RSConfig -> oauth2RSConfig.jwt(Customizer.withDefaults())) + .build(); } + } diff --git a/apps/batch-bestilling-service/src/main/resources/application.yml b/apps/batch-bestilling-service/src/main/resources/application.yml index abd377c1c07..e953a46654a 100644 --- a/apps/batch-bestilling-service/src/main/resources/application.yml +++ b/apps/batch-bestilling-service/src/main/resources/application.yml @@ -2,6 +2,8 @@ spring: application: name: batch-bestilling-service description: App for å sende batch bestillinger til backend + config: + import: "classpath:dolly-application.yml" security: oauth2: resourceserver: @@ -12,34 +14,6 @@ spring: issuer-uri: ${TOKEN_X_ISSUER} accepted-audience: ${TOKEN_X_CLIENT_ID} -springdoc: - swagger-ui: - disable-swagger-default-url: true - url: /v3/api-docs - -management: - endpoints: - enabled-by-default: true - web: - base-path: /internal - exposure: - include: prometheus,health - path-mapping: - prometheus: metrics - endpoint: - prometheus: - enabled: true - prometheus: - metrics: - export: - enabled: true -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always - consumers: dolly-backend: cluster: dev-gcp diff --git a/apps/batch-bestilling-service/src/test/java/no/nav/registre/testnorge/batchbestillingservice/ApplicationContextTest.java b/apps/batch-bestilling-service/src/test/java/no/nav/registre/testnorge/batchbestillingservice/ApplicationContextTest.java index a82fd571260..c838021522d 100644 --- a/apps/batch-bestilling-service/src/test/java/no/nav/registre/testnorge/batchbestillingservice/ApplicationContextTest.java +++ b/apps/batch-bestilling-service/src/test/java/no/nav/registre/testnorge/batchbestillingservice/ApplicationContextTest.java @@ -1,16 +1,8 @@ package no.nav.registre.testnorge.batchbestillingservice; -import no.nav.dolly.libs.nais.DollySpringBootTest; -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import no.nav.dolly.libs.test.DollySpringBootTest; +import no.nav.dolly.libs.test.DollyApplicationContextTest; @DollySpringBootTest -class ApplicationContextTest { - - @Test - void load_app_context() { - assertThat(true).isTrue(); - } - +class ApplicationContextTest extends DollyApplicationContextTest { } diff --git a/apps/brreg-stub/config.yml b/apps/brreg-stub/config.yml index 4af0674ceb1..406430ea2f8 100644 --- a/apps/brreg-stub/config.yml +++ b/apps/brreg-stub/config.yml @@ -9,7 +9,7 @@ spec: image: "{{image}}" port: 8080 liveness: - path: /isAlive + path: /internal/health/liveness periodSeconds: 30 initialDelay: 30 observability: @@ -20,7 +20,7 @@ spec: enabled: true runtime: java readiness: - path: /isReady + path: /internal/health/readiness initialDelay: 30 prometheus: enabled: true diff --git a/apps/brreg-stub/src/main/java/no/nav/brregstub/rs/NaisController.java b/apps/brreg-stub/src/main/java/no/nav/brregstub/rs/NaisController.java deleted file mode 100644 index b6403643e3b..00000000000 --- a/apps/brreg-stub/src/main/java/no/nav/brregstub/rs/NaisController.java +++ /dev/null @@ -1,19 +0,0 @@ -package no.nav.brregstub.rs; - -import org.springframework.http.HttpStatus; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RestController; - -@RestController -public class NaisController { - - @GetMapping("/isAlive") - public HttpStatus isAlive() { - return HttpStatus.OK; - } - - @GetMapping("/isReady") - public HttpStatus isReady() { - return HttpStatus.OK; - } -} diff --git a/apps/brreg-stub/src/main/resources/application.yml b/apps/brreg-stub/src/main/resources/application.yml index 8e97eaa523b..18f444623e6 100644 --- a/apps/brreg-stub/src/main/resources/application.yml +++ b/apps/brreg-stub/src/main/resources/application.yml @@ -1,30 +1,5 @@ spring: application: name: brreg-stub - -springdoc: - swagger-ui: - disable-swagger-default-url: true - url: /v3/api-docs - -management: - endpoints: - access: - default: read_only - web: - base-path: /internal - exposure: - include: prometheus,health - path-mapping: - prometheus: metrics - prometheus: - metrics: - export: - enabled: true - -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always \ No newline at end of file + config: + import: "classpath:dolly-application.yml" \ No newline at end of file diff --git a/apps/brreg-stub/src/test/java/no/nav/brregstub/endpoint/rs/v1/HentRolleoversiktControllerTest.java b/apps/brreg-stub/src/test/java/no/nav/brregstub/endpoint/rs/v1/HentRolleoversiktControllerTest.java index 485b848737d..c99769e72a3 100644 --- a/apps/brreg-stub/src/test/java/no/nav/brregstub/endpoint/rs/v1/HentRolleoversiktControllerTest.java +++ b/apps/brreg-stub/src/test/java/no/nav/brregstub/endpoint/rs/v1/HentRolleoversiktControllerTest.java @@ -6,7 +6,7 @@ import no.nav.brregstub.api.v1.RolleoversiktTo; import no.nav.brregstub.database.domene.Rolleoversikt; import no.nav.brregstub.database.repository.RolleoversiktRepository; -import no.nav.dolly.libs.nais.DollySpringBootTest; +import no.nav.dolly.libs.test.DollySpringBootTest; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.TestInstance; diff --git a/apps/brreg-stub/src/test/java/no/nav/brregstub/endpoint/rs/v1/HentRollerControllerTest.java b/apps/brreg-stub/src/test/java/no/nav/brregstub/endpoint/rs/v1/HentRollerControllerTest.java index a8c198fe84b..d6afd4f4d50 100644 --- a/apps/brreg-stub/src/test/java/no/nav/brregstub/endpoint/rs/v1/HentRollerControllerTest.java +++ b/apps/brreg-stub/src/test/java/no/nav/brregstub/endpoint/rs/v1/HentRollerControllerTest.java @@ -3,7 +3,7 @@ import no.nav.brregstub.api.common.RsOrganisasjon; import no.nav.brregstub.database.domene.HentRolle; import no.nav.brregstub.database.repository.HentRolleRepository; -import no.nav.dolly.libs.nais.DollySpringBootTest; +import no.nav.dolly.libs.test.DollySpringBootTest; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.TestInstance; diff --git a/apps/brreg-stub/src/test/java/no/nav/brregstub/endpoint/rs/v1/KodeControllerTest.java b/apps/brreg-stub/src/test/java/no/nav/brregstub/endpoint/rs/v1/KodeControllerTest.java index 2ea3c2c8039..732f564b5c2 100644 --- a/apps/brreg-stub/src/test/java/no/nav/brregstub/endpoint/rs/v1/KodeControllerTest.java +++ b/apps/brreg-stub/src/test/java/no/nav/brregstub/endpoint/rs/v1/KodeControllerTest.java @@ -2,7 +2,7 @@ import no.nav.brregstub.api.common.RolleKode; import no.nav.brregstub.api.common.UnderstatusKode; -import no.nav.dolly.libs.nais.DollySpringBootTest; +import no.nav.dolly.libs.test.DollySpringBootTest; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.TestInstance; diff --git a/apps/brreg-stub/src/test/java/no/nav/brregstub/endpoint/rs/v2/RolleoversiktControllerTest.java b/apps/brreg-stub/src/test/java/no/nav/brregstub/endpoint/rs/v2/RolleoversiktControllerTest.java index 9fdd2e464f0..ddf9ecf983a 100644 --- a/apps/brreg-stub/src/test/java/no/nav/brregstub/endpoint/rs/v2/RolleoversiktControllerTest.java +++ b/apps/brreg-stub/src/test/java/no/nav/brregstub/endpoint/rs/v2/RolleoversiktControllerTest.java @@ -10,7 +10,7 @@ import no.nav.brregstub.database.domene.Rolleoversikt; import no.nav.brregstub.database.repository.HentRolleRepository; import no.nav.brregstub.database.repository.RolleoversiktRepository; -import no.nav.dolly.libs.nais.DollySpringBootTest; +import no.nav.dolly.libs.test.DollySpringBootTest; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.TestInstance; diff --git a/apps/brreg-stub/src/test/java/no/nav/brregstub/endpoint/ws/BrregEndpointTest.java b/apps/brreg-stub/src/test/java/no/nav/brregstub/endpoint/ws/BrregEndpointTest.java index 924bc2b3b57..591f1a35bce 100644 --- a/apps/brreg-stub/src/test/java/no/nav/brregstub/endpoint/ws/BrregEndpointTest.java +++ b/apps/brreg-stub/src/test/java/no/nav/brregstub/endpoint/ws/BrregEndpointTest.java @@ -2,7 +2,7 @@ import no.nav.brregstub.tjenestekontrakter.ws.ErFr; import no.nav.common.cxf.CXFClient; -import no.nav.dolly.libs.nais.DollySpringBootTest; +import no.nav.dolly.libs.test.DollySpringBootTest; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; diff --git a/apps/brreg-stub/src/test/java/no/nav/brregstub/service/BrregServiceTest.java b/apps/brreg-stub/src/test/java/no/nav/brregstub/service/BrregServiceTest.java index c9e3b19d50a..eaae4227a90 100644 --- a/apps/brreg-stub/src/test/java/no/nav/brregstub/service/BrregServiceTest.java +++ b/apps/brreg-stub/src/test/java/no/nav/brregstub/service/BrregServiceTest.java @@ -9,7 +9,7 @@ import no.nav.brregstub.database.repository.HentRolleRepository; import no.nav.brregstub.database.repository.RolleoversiktRepository; import no.nav.brregstub.generated.Grunndata; -import no.nav.dolly.libs.nais.DollySpringBootTest; +import no.nav.dolly.libs.test.DollySpringBootTest; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; diff --git a/apps/bruker-service/config.test.yml b/apps/bruker-service/config.test.yml index f44dd8b8d42..1b15977fb25 100644 --- a/apps/bruker-service/config.test.yml +++ b/apps/bruker-service/config.test.yml @@ -29,7 +29,7 @@ spec: rules: - application: testnav-altinn3-tilgang-service liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 @@ -41,7 +41,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 diff --git a/apps/bruker-service/config.yml b/apps/bruker-service/config.yml index 13df1261a09..f6ea682193a 100644 --- a/apps/bruker-service/config.yml +++ b/apps/bruker-service/config.yml @@ -28,7 +28,7 @@ spec: rules: - application: testnav-altinn3-tilgang-proxy liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 @@ -40,7 +40,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 diff --git a/apps/bruker-service/src/main/resources/application.yml b/apps/bruker-service/src/main/resources/application.yml index f3751940810..0b0d60b18de 100644 --- a/apps/bruker-service/src/main/resources/application.yml +++ b/apps/bruker-service/src/main/resources/application.yml @@ -2,6 +2,8 @@ spring: application: name: testnav-bruker-service description: Tjeneste for brukere + config: + import: "classpath:dolly-application.yml" security: oauth2: resourceserver: @@ -14,36 +16,9 @@ spring: serialization: write_dates_as_timestamps: -springdoc: - swagger-ui: - disable-swagger-default-url: true - url: /v3/api-docs - consumers: testnav-altinn3-tilgang-service: url: http://testnav-altinn3-tilgang-proxy.dolly.svc.cluster.local cluster: dev-gcp namespace: dolly - name: testnav-altinn3-tilgang-proxy - -management: - endpoints: - access: - default: read_only - web: - base-path: /internal - exposure: - include: prometheus,health - path-mapping: - prometheus: metrics - prometheus: - metrics: - export: - enabled: true - -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always \ No newline at end of file + name: testnav-altinn3-tilgang-proxy \ No newline at end of file diff --git a/apps/bruker-service/src/test/java/no/nav/testnav/apps/brukerservice/ApplicationContextTest.java b/apps/bruker-service/src/test/java/no/nav/testnav/apps/brukerservice/ApplicationContextTest.java index 0c8ea7709e7..ebaad7a97f0 100644 --- a/apps/bruker-service/src/test/java/no/nav/testnav/apps/brukerservice/ApplicationContextTest.java +++ b/apps/bruker-service/src/test/java/no/nav/testnav/apps/brukerservice/ApplicationContextTest.java @@ -1,21 +1,12 @@ package no.nav.testnav.apps.brukerservice; -import no.nav.testnav.apps.brukerservice.initializer.WireMockInitializer; -import no.nav.dolly.libs.nais.DollySpringBootTest; import no.nav.dolly.libs.nais.NaisEnvironmentApplicationContextInitializer; -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import no.nav.dolly.libs.test.DollySpringBootTest; +import no.nav.dolly.libs.test.DollyApplicationContextTest; @DollySpringBootTest(initializers = { NaisEnvironmentApplicationContextInitializer.class, WireMockInitializer.class }) -class ApplicationContextTest { - - @Test - void load_app_context() { - assertThat(true).isTrue(); - } - +class ApplicationContextTest extends DollyApplicationContextTest { } diff --git a/apps/bruker-service/src/test/java/no/nav/testnav/apps/brukerservice/initializer/WireMockInitializer.java b/apps/bruker-service/src/test/java/no/nav/testnav/apps/brukerservice/WireMockInitializer.java similarity index 62% rename from apps/bruker-service/src/test/java/no/nav/testnav/apps/brukerservice/initializer/WireMockInitializer.java rename to apps/bruker-service/src/test/java/no/nav/testnav/apps/brukerservice/WireMockInitializer.java index 2fda5b4e357..172d2c1e803 100644 --- a/apps/bruker-service/src/test/java/no/nav/testnav/apps/brukerservice/initializer/WireMockInitializer.java +++ b/apps/bruker-service/src/test/java/no/nav/testnav/apps/brukerservice/WireMockInitializer.java @@ -1,4 +1,4 @@ -package no.nav.testnav.apps.brukerservice.initializer; +package no.nav.testnav.apps.brukerservice; import com.github.tomakehurst.wiremock.WireMockServer; import com.github.tomakehurst.wiremock.core.WireMockConfiguration; @@ -9,17 +9,19 @@ import java.util.Map; -public class WireMockInitializer implements ApplicationContextInitializer { +class WireMockInitializer implements ApplicationContextInitializer { + @Override - public void initialize(ConfigurableApplicationContext applicationContext) { - WireMockServer wireMockServer = new WireMockServer(new WireMockConfiguration().dynamicPort()); + public void initialize(ConfigurableApplicationContext context) { + + var wireMockServer = new WireMockServer(new WireMockConfiguration().dynamicPort()); wireMockServer.start(); - applicationContext + context .getBeanFactory() .registerSingleton("wireMockServer", wireMockServer); - - applicationContext.addApplicationListener(applicationEvent -> { + context + .addApplicationListener(applicationEvent -> { if (applicationEvent instanceof ContextClosedEvent) { wireMockServer.stop(); } @@ -27,7 +29,8 @@ public void initialize(ConfigurableApplicationContext applicationContext) { TestPropertyValues .of(Map.of("wiremockBaseUrl", "http://localhost:" + wireMockServer.port() + "/test")) - .applyTo(applicationContext); + .applyTo(context); + } } diff --git a/apps/bruker-service/src/test/java/no/nav/testnav/apps/brukerservice/initializer/H2Initializer.java b/apps/bruker-service/src/test/java/no/nav/testnav/apps/brukerservice/initializer/H2Initializer.java deleted file mode 100644 index 14b577729b7..00000000000 --- a/apps/bruker-service/src/test/java/no/nav/testnav/apps/brukerservice/initializer/H2Initializer.java +++ /dev/null @@ -1,14 +0,0 @@ -package no.nav.testnav.apps.brukerservice.initializer; - -import io.r2dbc.h2.H2ConnectionFactory; -import org.springframework.context.ApplicationContextInitializer; -import org.springframework.context.ConfigurableApplicationContext; - -public class H2Initializer implements ApplicationContextInitializer { - @Override - public void initialize(ConfigurableApplicationContext applicationContext) { - applicationContext - .getBeanFactory() - .registerSingleton("connectionFactory", H2ConnectionFactory.inMemory("testdb")); - } -} diff --git a/apps/budpro-service/config.yml b/apps/budpro-service/config.yml index 130fbd3286b..9cebc69c960 100644 --- a/apps/budpro-service/config.yml +++ b/apps/budpro-service/config.yml @@ -26,10 +26,10 @@ spec: - "https://testnav-budpro-service.intern.dev.nav.no" liveness: initialDelay: 45 - path: "/internal/health/liveness" + path: /internal/health/liveness prometheus: enabled: true - path: "/internal/prometheus" + path: /internal/prometheus observability: logging: destinations: @@ -39,7 +39,7 @@ spec: runtime: java readiness: initialDelay: 45 - path: "/internal/health/readiness" + path: /internal/health/readiness replicas: min: 1 max: 1 diff --git a/apps/budpro-service/src/main/resources/application.yml b/apps/budpro-service/src/main/resources/application.yml index c0597372c82..1a5c697f35f 100644 --- a/apps/budpro-service/src/main/resources/application.yml +++ b/apps/budpro-service/src/main/resources/application.yml @@ -1,4 +1,6 @@ spring: + config: + import: "classpath:dolly-application.yml" security: oauth2: resourceserver: @@ -6,23 +8,6 @@ spring: issuer-uri: ${AZURE_OPENID_CONFIG_ISSUER} accepted-audience: ${AZURE_APP_CLIENT_ID}, api://${AZURE_APP_CLIENT_ID} -management: - endpoints: - web: - base-path: /internal - exposure: - include: prometheus,health - endpoint: - health: - probes: - enabled: true - prometheus: - enabled: true - prometheus: - metrics: - export: - enabled: true - consumers: generer-navn-service: name: generer-navn-service @@ -31,10 +16,3 @@ consumers: app: security: allow-api: true - -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always diff --git a/apps/budpro-service/src/test/java/no/nav/dolly/budpro/generate/BudproControllerTest.java b/apps/budpro-service/src/test/java/no/nav/dolly/budpro/generate/BudproControllerTest.java index 370f6b3fdc7..09bb723eee0 100644 --- a/apps/budpro-service/src/test/java/no/nav/dolly/budpro/generate/BudproControllerTest.java +++ b/apps/budpro-service/src/test/java/no/nav/dolly/budpro/generate/BudproControllerTest.java @@ -3,7 +3,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import lombok.extern.slf4j.Slf4j; import no.nav.dolly.budpro.navn.GeneratedNameService; -import no.nav.dolly.libs.nais.DollySpringBootTest; +import no.nav.dolly.libs.test.DollySpringBootTest; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; diff --git a/apps/dolly-backend/config.test.yml b/apps/dolly-backend/config.test.yml index 0ba5e776205..a2a00a3e177 100644 --- a/apps/dolly-backend/config.test.yml +++ b/apps/dolly-backend/config.test.yml @@ -90,7 +90,7 @@ spec: ingresses: - "https://dolly-backend-dev.intern.dev.nav.no" liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 20 periodSeconds: 2 failureThreshold: 140 @@ -102,7 +102,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 20 periodSeconds: 2 failureThreshold: 140 diff --git a/apps/dolly-backend/config.yml b/apps/dolly-backend/config.yml index 8e75c9d48c0..0a7b32605f5 100644 --- a/apps/dolly-backend/config.yml +++ b/apps/dolly-backend/config.yml @@ -90,7 +90,7 @@ spec: ingresses: - "https://dolly-backend.intern.dev.nav.no" liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 20 periodSeconds: 20 failureThreshold: 900 @@ -102,7 +102,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 20 periodSeconds: 20 failureThreshold: 900 diff --git a/apps/dolly-backend/src/main/java/no/nav/dolly/DollyBackendApplicationStarter.java b/apps/dolly-backend/src/main/java/no/nav/dolly/DollyBackendApplicationStarter.java index 49a646b9734..11bf37497d2 100644 --- a/apps/dolly-backend/src/main/java/no/nav/dolly/DollyBackendApplicationStarter.java +++ b/apps/dolly-backend/src/main/java/no/nav/dolly/DollyBackendApplicationStarter.java @@ -4,7 +4,9 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchDataAutoConfiguration; import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +@EnableWebSecurity @SpringBootApplication(exclude = { ElasticsearchDataAutoConfiguration.class }) public class DollyBackendApplicationStarter { public static void main(String[] args) { diff --git a/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/ConsumerStatus.java b/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/ConsumerStatus.java index c3a77076931..3aadface1cc 100644 --- a/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/ConsumerStatus.java +++ b/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/ConsumerStatus.java @@ -1,5 +1,6 @@ package no.nav.dolly.bestilling; +import lombok.extern.slf4j.Slf4j; import no.nav.dolly.util.CheckAliveUtil; import no.nav.testnav.libs.dto.status.v1.TestnavStatusResponse; import org.springframework.core.ParameterizedTypeReference; @@ -9,39 +10,53 @@ import java.util.Map; import java.util.concurrent.ConcurrentHashMap; -public interface ConsumerStatus { +@Slf4j +public abstract class ConsumerStatus { - org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(ConsumerStatus.class); + public abstract String serviceUrl(); - String serviceUrl(); + public abstract String consumerName(); - String consumerName(); + public String getLivenessEndpoint() { + return "/internal/health/liveness"; + } + + public String getReadinessEndpoint() { + return "/internal/health/readiness"; + } - default Map checkStatus(WebClient webClient) { + public Map checkStatus(WebClient webClient) { var consumerStatus = CheckAliveUtil.checkConsumerStatus( - serviceUrl() + "/internal/isAlive", - serviceUrl() + "/internal/isReady", + serviceUrl() + getLivenessEndpoint(), + serviceUrl() + getReadinessEndpoint(), webClient); var statusMap = new ConcurrentHashMap(); statusMap.put(consumerName(), consumerStatus); - var response = webClient.get() + webClient + .get() .uri(serviceUrl() + "/internal/status") .retrieve() - .bodyToMono(new ParameterizedTypeReference>>() { - }) + .bodyToMono(new TypeReference()) .timeout(Duration.ofSeconds(5)) .doOnError(throwable -> log.error("Klarte ikke å hente status for {}", serviceUrl(), throwable)) .onErrorReturn(new ConcurrentHashMap<>()) - .block(); - response.forEach((key, value) -> statusMap.put(key, TestnavStatusResponse.builder() - .team(value.get("team")) - .alive(value.get("alive")) - .ready(value.get("ready")) - .build())); + .blockOptional() + .orElse(new ConcurrentHashMap<>()) + .forEach((key, value) -> statusMap + .put(key, TestnavStatusResponse + .builder() + .team(value.get("team")) + .alive(value.get("alive")) + .ready(value.get("ready")) + .build())); return statusMap; } + + private static class TypeReference extends ParameterizedTypeReference>> { + } + } diff --git a/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/aareg/AaregConsumer.java b/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/aareg/AaregConsumer.java index c0fbd09dbf3..6aab6ec23d6 100644 --- a/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/aareg/AaregConsumer.java +++ b/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/aareg/AaregConsumer.java @@ -22,7 +22,7 @@ @Slf4j @Component -public class AaregConsumer implements ConsumerStatus { +public class AaregConsumer extends ConsumerStatus { private final WebClient webClient; private final ServerProperties serverProperties; diff --git a/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/arbeidsplassencv/ArbeidsplassenCVConsumer.java b/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/arbeidsplassencv/ArbeidsplassenCVConsumer.java index 6ddb587a1d1..51cbc95bd7f 100644 --- a/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/arbeidsplassencv/ArbeidsplassenCVConsumer.java +++ b/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/arbeidsplassencv/ArbeidsplassenCVConsumer.java @@ -26,7 +26,7 @@ @Component @Slf4j -public class ArbeidsplassenCVConsumer implements ConsumerStatus { +public class ArbeidsplassenCVConsumer extends ConsumerStatus { public static final String ARBEIDSPLASSEN_CALL_ID = "Nav-CallId"; private final WebClient webClient; diff --git a/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/arenaforvalter/ArenaForvalterConsumer.java b/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/arenaforvalter/ArenaForvalterConsumer.java index 1201d06f2da..58d8f37ccd2 100644 --- a/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/arenaforvalter/ArenaForvalterConsumer.java +++ b/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/arenaforvalter/ArenaForvalterConsumer.java @@ -37,7 +37,7 @@ @Slf4j @Service -public class ArenaForvalterConsumer implements ConsumerStatus { +public class ArenaForvalterConsumer extends ConsumerStatus { private final WebClient webClient; private final ServerProperties serverProperties; diff --git a/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/brregstub/BrregstubConsumer.java b/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/brregstub/BrregstubConsumer.java index cdacbf063d0..69951e38eb6 100644 --- a/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/brregstub/BrregstubConsumer.java +++ b/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/brregstub/BrregstubConsumer.java @@ -21,7 +21,7 @@ @Slf4j @Service -public class BrregstubConsumer implements ConsumerStatus { +public class BrregstubConsumer extends ConsumerStatus { private final TokenExchange tokenService; private final WebClient webClient; diff --git a/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/dokarkiv/DokarkivConsumer.java b/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/dokarkiv/DokarkivConsumer.java index fce6dbb03df..ef45d94be7f 100644 --- a/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/dokarkiv/DokarkivConsumer.java +++ b/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/dokarkiv/DokarkivConsumer.java @@ -21,7 +21,7 @@ @Slf4j @Service -public class DokarkivConsumer implements ConsumerStatus { +public class DokarkivConsumer extends ConsumerStatus { private final WebClient webClient; private final TokenExchange tokenService; diff --git a/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/fullmakt/FullmaktConsumer.java b/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/fullmakt/FullmaktConsumer.java index 0551344d6eb..8ac26c040a6 100644 --- a/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/fullmakt/FullmaktConsumer.java +++ b/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/fullmakt/FullmaktConsumer.java @@ -25,7 +25,7 @@ @Slf4j @Service -public class FullmaktConsumer implements ConsumerStatus { +public class FullmaktConsumer extends ConsumerStatus { private final WebClient webClient; private final TokenExchange tokenService; diff --git a/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/inntektsmelding/InntektsmeldingConsumer.java b/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/inntektsmelding/InntektsmeldingConsumer.java index 1ca4ab6ea2b..176b5c35276 100644 --- a/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/inntektsmelding/InntektsmeldingConsumer.java +++ b/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/inntektsmelding/InntektsmeldingConsumer.java @@ -21,7 +21,7 @@ @Slf4j @Service -public class InntektsmeldingConsumer implements ConsumerStatus { +public class InntektsmeldingConsumer extends ConsumerStatus { private final TokenExchange tokenService; private final WebClient webClient; diff --git a/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/inntektstub/InntektstubConsumer.java b/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/inntektstub/InntektstubConsumer.java index 1b0b45c0c32..518cf3bf972 100644 --- a/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/inntektstub/InntektstubConsumer.java +++ b/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/inntektstub/InntektstubConsumer.java @@ -23,7 +23,7 @@ @Service @Slf4j -public class InntektstubConsumer implements ConsumerStatus { +public class InntektstubConsumer extends ConsumerStatus { private static final int BLOCK_SIZE = 10; diff --git a/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/instdata/InstdataConsumer.java b/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/instdata/InstdataConsumer.java index 31fed1c2a02..aa21f427bb7 100644 --- a/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/instdata/InstdataConsumer.java +++ b/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/instdata/InstdataConsumer.java @@ -26,7 +26,7 @@ @Slf4j @Service -public class InstdataConsumer implements ConsumerStatus { +public class InstdataConsumer extends ConsumerStatus { private final WebClient webClient; private final TokenExchange tokenService; diff --git a/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/kontoregisterservice/KontoregisterConsumer.java b/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/kontoregisterservice/KontoregisterConsumer.java index 98e8812ce24..f7b58ec3bd4 100644 --- a/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/kontoregisterservice/KontoregisterConsumer.java +++ b/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/kontoregisterservice/KontoregisterConsumer.java @@ -26,7 +26,7 @@ @Slf4j @Service -public class KontoregisterConsumer implements ConsumerStatus { +public class KontoregisterConsumer extends ConsumerStatus { private final WebClient webClient; diff --git a/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/krrstub/KrrstubConsumer.java b/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/krrstub/KrrstubConsumer.java index 1bdcea14596..58adcca9eb9 100644 --- a/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/krrstub/KrrstubConsumer.java +++ b/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/krrstub/KrrstubConsumer.java @@ -23,7 +23,7 @@ @Slf4j @Service -public class KrrstubConsumer implements ConsumerStatus { +public class KrrstubConsumer extends ConsumerStatus { private final WebClient webClient; private final TokenExchange tokenService; diff --git a/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/medl/MedlConsumer.java b/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/medl/MedlConsumer.java index 1ed376cc4a7..16216ef56fb 100644 --- a/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/medl/MedlConsumer.java +++ b/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/medl/MedlConsumer.java @@ -25,7 +25,7 @@ @Slf4j @Service -public class MedlConsumer implements ConsumerStatus { +public class MedlConsumer extends ConsumerStatus { private final WebClient webClient; private final TokenExchange tokenService; diff --git a/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/pdldata/PdlDataConsumer.java b/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/pdldata/PdlDataConsumer.java index 9437788646f..4f27531ed6e 100644 --- a/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/pdldata/PdlDataConsumer.java +++ b/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/pdldata/PdlDataConsumer.java @@ -30,7 +30,7 @@ @Slf4j @Service -public class PdlDataConsumer implements ConsumerStatus { +public class PdlDataConsumer extends ConsumerStatus { private final TokenExchange tokenService; private final WebClient webClient; diff --git a/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/pensjonforvalter/PensjonforvalterConsumer.java b/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/pensjonforvalter/PensjonforvalterConsumer.java index a6f10a00f04..ffcf83b333d 100644 --- a/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/pensjonforvalter/PensjonforvalterConsumer.java +++ b/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/pensjonforvalter/PensjonforvalterConsumer.java @@ -1,7 +1,6 @@ package no.nav.dolly.bestilling.pensjonforvalter; import com.fasterxml.jackson.databind.ObjectMapper; -import com.sun.jna.Function; import lombok.extern.slf4j.Slf4j; import no.nav.dolly.bestilling.ConsumerStatus; import no.nav.dolly.bestilling.pensjonforvalter.command.AnnullerSamboerCommand; @@ -51,7 +50,7 @@ @Slf4j @Service -public class PensjonforvalterConsumer implements ConsumerStatus { +public class PensjonforvalterConsumer extends ConsumerStatus { private final TokenExchange tokenService; private final WebClient webClient; diff --git a/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/personservice/PersonServiceConsumer.java b/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/personservice/PersonServiceConsumer.java index aae9770e92b..01269f46e85 100644 --- a/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/personservice/PersonServiceConsumer.java +++ b/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/personservice/PersonServiceConsumer.java @@ -1,6 +1,7 @@ package no.nav.dolly.bestilling.personservice; import com.fasterxml.jackson.databind.ObjectMapper; +import lombok.extern.slf4j.Slf4j; import no.nav.dolly.bestilling.ConsumerStatus; import no.nav.dolly.bestilling.personservice.command.PdlPersonerGetCommand; import no.nav.dolly.bestilling.personservice.command.PersonServiceExistCommand; @@ -24,7 +25,8 @@ import static no.nav.dolly.util.JacksonExchangeStrategyUtil.getJacksonStrategy; @Service -public class PersonServiceConsumer implements ConsumerStatus { +@Slf4j +public class PersonServiceConsumer extends ConsumerStatus { private static final int BLOCK_SIZE = 100; private static final int MAX_RETRIES = 3; diff --git a/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/sigrunstub/SigrunStubConsumer.java b/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/sigrunstub/SigrunStubConsumer.java index e34e7b8a414..619646511d6 100644 --- a/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/sigrunstub/SigrunStubConsumer.java +++ b/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/sigrunstub/SigrunStubConsumer.java @@ -25,7 +25,7 @@ @Slf4j @Component -public class SigrunStubConsumer implements ConsumerStatus { +public class SigrunStubConsumer extends ConsumerStatus { private static final String SIGRUN_STUB_LIGNET_INNTEKT_URL = "/api/v1/lignetinntekt"; private static final String SIGRUN_STUB_PENSJONSGIVENDE_INNTEKT_URL = "/api/v1/pensjonsgivendeinntektforfolketrygden"; diff --git a/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/skjermingsregister/SkjermingsRegisterConsumer.java b/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/skjermingsregister/SkjermingsRegisterConsumer.java index 1117d80b528..2d70c93a2eb 100644 --- a/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/skjermingsregister/SkjermingsRegisterConsumer.java +++ b/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/skjermingsregister/SkjermingsRegisterConsumer.java @@ -28,7 +28,7 @@ @Slf4j @Service -public class SkjermingsRegisterConsumer implements ConsumerStatus { +public class SkjermingsRegisterConsumer extends ConsumerStatus { private final TokenExchange tokenService; private final WebClient webClient; diff --git a/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/sykemelding/SykemeldingConsumer.java b/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/sykemelding/SykemeldingConsumer.java index 17de746a9e0..30253953cfe 100644 --- a/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/sykemelding/SykemeldingConsumer.java +++ b/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/sykemelding/SykemeldingConsumer.java @@ -19,7 +19,7 @@ @Slf4j @Service -public class SykemeldingConsumer implements ConsumerStatus { +public class SykemeldingConsumer extends ConsumerStatus { private final WebClient webClient; private final TokenExchange tokenService; diff --git a/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/tpsmessagingservice/MiljoerConsumer.java b/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/tpsmessagingservice/MiljoerConsumer.java index 24f311167ad..ffc08324384 100644 --- a/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/tpsmessagingservice/MiljoerConsumer.java +++ b/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/tpsmessagingservice/MiljoerConsumer.java @@ -16,7 +16,7 @@ @Slf4j @Service -public class MiljoerConsumer implements ConsumerStatus { +public class MiljoerConsumer extends ConsumerStatus { private final WebClient webClient; private final TokenExchange tokenService; diff --git a/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/tpsmessagingservice/TpsMessagingConsumer.java b/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/tpsmessagingservice/TpsMessagingConsumer.java index 3d4e018dd94..dfffea3250b 100644 --- a/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/tpsmessagingservice/TpsMessagingConsumer.java +++ b/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/tpsmessagingservice/TpsMessagingConsumer.java @@ -26,7 +26,7 @@ @Slf4j @Service -public class TpsMessagingConsumer implements ConsumerStatus { +public class TpsMessagingConsumer extends ConsumerStatus { private static final String BASE_URL = "/api/v1/personer/{ident}"; private static final String UTENLANDSK_BANKKONTO_URL = BASE_URL + "/bankkonto-utenlandsk"; diff --git a/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/udistub/UdiStubConsumer.java b/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/udistub/UdiStubConsumer.java index 8ff5323bd98..6060855b0bf 100644 --- a/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/udistub/UdiStubConsumer.java +++ b/apps/dolly-backend/src/main/java/no/nav/dolly/bestilling/udistub/UdiStubConsumer.java @@ -21,7 +21,7 @@ import java.util.List; @Service -public class UdiStubConsumer implements ConsumerStatus { +public class UdiStubConsumer extends ConsumerStatus { private final WebClient webClient; private final TokenExchange tokenService; diff --git a/apps/dolly-backend/src/main/java/no/nav/dolly/config/SecurityConfig.java b/apps/dolly-backend/src/main/java/no/nav/dolly/config/SecurityConfig.java index b35e4adc845..7b7c63f85be 100644 --- a/apps/dolly-backend/src/main/java/no/nav/dolly/config/SecurityConfig.java +++ b/apps/dolly-backend/src/main/java/no/nav/dolly/config/SecurityConfig.java @@ -1,35 +1,25 @@ package no.nav.dolly.config; +import no.nav.dolly.libs.security.config.DollyHttpSecurity; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; -import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; @Configuration -@EnableWebSecurity -public class SecurityConfig { +class SecurityConfig { @Bean - public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { - - httpSecurity.sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) + SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { + return httpSecurity + .sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) .csrf(AbstractHttpConfigurer::disable) - .authorizeHttpRequests(authorizeConfig -> authorizeConfig.requestMatchers( - "/internal/**", - "/webjars/**", - "/swagger-resources/**", - "/v3/api-docs/**", - "/swagger-ui/**", - "/swagger", - "/error", - "/swagger-ui.html" - ).permitAll().requestMatchers("/api/**").fullyAuthenticated()) - .oauth2ResourceServer(oauth2RSConfig -> oauth2RSConfig.jwt(Customizer.withDefaults())); - - return httpSecurity.build(); + .authorizeHttpRequests(DollyHttpSecurity.withDefaultHttpRequests()) + .oauth2ResourceServer(oauth2RSConfig -> oauth2RSConfig.jwt(Customizer.withDefaults())) + .build(); } + } \ No newline at end of file diff --git a/apps/dolly-backend/src/main/java/no/nav/dolly/consumer/norg2/Norg2Consumer.java b/apps/dolly-backend/src/main/java/no/nav/dolly/consumer/norg2/Norg2Consumer.java index e895686872a..43d0fb7cbdf 100644 --- a/apps/dolly-backend/src/main/java/no/nav/dolly/consumer/norg2/Norg2Consumer.java +++ b/apps/dolly-backend/src/main/java/no/nav/dolly/consumer/norg2/Norg2Consumer.java @@ -17,7 +17,7 @@ @Slf4j @Service -public class Norg2Consumer implements ConsumerStatus { +public class Norg2Consumer extends ConsumerStatus { private final WebClient webClient; private final TokenExchange tokenService; diff --git a/apps/dolly-backend/src/main/resources/application.yml b/apps/dolly-backend/src/main/resources/application.yml index 2e968d2a280..ae1de8e8f8e 100644 --- a/apps/dolly-backend/src/main/resources/application.yml +++ b/apps/dolly-backend/src/main/resources/application.yml @@ -22,6 +22,8 @@ server: max-http-request-header-size: 128KB spring: + config: + import: "classpath:dolly-application.yml" main: allow-bean-definition-overriding: true flyway: @@ -51,31 +53,9 @@ spring: springdoc: swagger-ui: - url: /v3/api-docs - disable-swagger-default-url: true tags-sorter: alpha pre-loading-enabled: true -management: - endpoints: - enabled-by-default: true - web: - base-path: /internal - exposure: - include: prometheus,health - path-mapping: - prometheus: metrics - endpoint: - health: - show-components: always - show-details: always - prometheus: - enabled: true - prometheus: - metrics: - export: - enabled: true - logging: level: org: diff --git a/apps/dolly-backend/src/test/java/no/nav/dolly/bestilling/aareg/AaregConsumerTest.java b/apps/dolly-backend/src/test/java/no/nav/dolly/bestilling/aareg/AaregConsumerTest.java index 1e287dc7150..ee434e6e9dc 100644 --- a/apps/dolly-backend/src/test/java/no/nav/dolly/bestilling/aareg/AaregConsumerTest.java +++ b/apps/dolly-backend/src/test/java/no/nav/dolly/bestilling/aareg/AaregConsumerTest.java @@ -3,7 +3,7 @@ import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import no.nav.dolly.bestilling.aareg.domain.ArbeidsforholdRespons; -import no.nav.dolly.libs.nais.DollySpringBootTest; +import no.nav.dolly.libs.test.DollySpringBootTest; import no.nav.testnav.libs.dto.aareg.v1.Arbeidsforhold; import no.nav.testnav.libs.dto.aareg.v1.OrdinaerArbeidsavtale; import no.nav.testnav.libs.dto.aareg.v1.Organisasjon; diff --git a/apps/dolly-backend/src/test/java/no/nav/dolly/bestilling/arenaforvalter/ArenaForvalterConsumerTest.java b/apps/dolly-backend/src/test/java/no/nav/dolly/bestilling/arenaforvalter/ArenaForvalterConsumerTest.java index 2c30a8bf6a2..c77e9409874 100644 --- a/apps/dolly-backend/src/test/java/no/nav/dolly/bestilling/arenaforvalter/ArenaForvalterConsumerTest.java +++ b/apps/dolly-backend/src/test/java/no/nav/dolly/bestilling/arenaforvalter/ArenaForvalterConsumerTest.java @@ -4,7 +4,7 @@ import no.nav.dolly.domain.resultset.arenaforvalter.ArenaNyBruker; import no.nav.dolly.domain.resultset.arenaforvalter.ArenaNyeBrukere; import no.nav.dolly.elastic.BestillingElasticRepository; -import no.nav.dolly.libs.nais.DollySpringBootTest; +import no.nav.dolly.libs.test.DollySpringBootTest; import no.nav.testnav.libs.securitycore.domain.AccessToken; import no.nav.testnav.libs.securitycore.domain.ServerProperties; import no.nav.testnav.libs.standalone.servletsecurity.exchange.TokenExchange; diff --git a/apps/dolly-backend/src/test/java/no/nav/dolly/bestilling/inntektsmelding/InntektsmeldingClientTest.java b/apps/dolly-backend/src/test/java/no/nav/dolly/bestilling/inntektsmelding/InntektsmeldingClientTest.java index 16634d1bbeb..4498856375d 100644 --- a/apps/dolly-backend/src/test/java/no/nav/dolly/bestilling/inntektsmelding/InntektsmeldingClientTest.java +++ b/apps/dolly-backend/src/test/java/no/nav/dolly/bestilling/inntektsmelding/InntektsmeldingClientTest.java @@ -6,7 +6,7 @@ import no.nav.dolly.domain.resultset.dolly.DollyPerson; import no.nav.dolly.domain.resultset.inntektsmeldingstub.RsInntektsmelding; import no.nav.dolly.service.TransaksjonMappingService; -import no.nav.dolly.libs.nais.DollySpringBootTest; +import no.nav.dolly.libs.test.DollySpringBootTest; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.bean.override.mockito.MockitoBean; diff --git a/apps/dolly-backend/src/test/java/no/nav/dolly/bestilling/instdata/InstdataConsumerTest.java b/apps/dolly-backend/src/test/java/no/nav/dolly/bestilling/instdata/InstdataConsumerTest.java index 3722614ff28..ecc5d1f3336 100644 --- a/apps/dolly-backend/src/test/java/no/nav/dolly/bestilling/instdata/InstdataConsumerTest.java +++ b/apps/dolly-backend/src/test/java/no/nav/dolly/bestilling/instdata/InstdataConsumerTest.java @@ -3,7 +3,7 @@ import no.nav.dolly.domain.resultset.inst.Instdata; import no.nav.dolly.elastic.BestillingElasticRepository; import no.nav.dolly.errorhandling.ErrorStatusDecoder; -import no.nav.dolly.libs.nais.DollySpringBootTest; +import no.nav.dolly.libs.test.DollySpringBootTest; import no.nav.testnav.libs.securitycore.domain.AccessToken; import no.nav.testnav.libs.securitycore.domain.ServerProperties; import no.nav.testnav.libs.standalone.servletsecurity.exchange.TokenExchange; diff --git a/apps/dolly-backend/src/test/java/no/nav/dolly/bestilling/kontoregisterservice/KontoregisterConsumerTest.java b/apps/dolly-backend/src/test/java/no/nav/dolly/bestilling/kontoregisterservice/KontoregisterConsumerTest.java index b77c8822102..e1d0ed94b0c 100644 --- a/apps/dolly-backend/src/test/java/no/nav/dolly/bestilling/kontoregisterservice/KontoregisterConsumerTest.java +++ b/apps/dolly-backend/src/test/java/no/nav/dolly/bestilling/kontoregisterservice/KontoregisterConsumerTest.java @@ -4,7 +4,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.github.tomakehurst.wiremock.client.WireMock; import no.nav.dolly.elastic.BestillingElasticRepository; -import no.nav.dolly.libs.nais.DollySpringBootTest; +import no.nav.dolly.libs.test.DollySpringBootTest; import no.nav.testnav.libs.data.kontoregister.v1.HentKontoRequestDTO; import no.nav.testnav.libs.data.kontoregister.v1.KontoregisterResponseDTO; import no.nav.testnav.libs.data.kontoregister.v1.OppdaterKontoRequestDTO; diff --git a/apps/dolly-backend/src/test/java/no/nav/dolly/bestilling/krrstub/KrrstubConsumerTest.java b/apps/dolly-backend/src/test/java/no/nav/dolly/bestilling/krrstub/KrrstubConsumerTest.java index 88b1748318f..b4143cc4038 100644 --- a/apps/dolly-backend/src/test/java/no/nav/dolly/bestilling/krrstub/KrrstubConsumerTest.java +++ b/apps/dolly-backend/src/test/java/no/nav/dolly/bestilling/krrstub/KrrstubConsumerTest.java @@ -6,7 +6,7 @@ import no.nav.dolly.domain.CommonKeysAndUtils; import no.nav.dolly.domain.resultset.krrstub.DigitalKontaktdata; import no.nav.dolly.elastic.BestillingElasticRepository; -import no.nav.dolly.libs.nais.DollySpringBootTest; +import no.nav.dolly.libs.test.DollySpringBootTest; import no.nav.testnav.libs.securitycore.domain.AccessToken; import no.nav.testnav.libs.securitycore.domain.ServerProperties; import no.nav.testnav.libs.standalone.servletsecurity.exchange.TokenExchange; diff --git a/apps/dolly-backend/src/test/java/no/nav/dolly/bestilling/pensjonforvalter/PensjonforvalterConsumerTest.java b/apps/dolly-backend/src/test/java/no/nav/dolly/bestilling/pensjonforvalter/PensjonforvalterConsumerTest.java index 032a4b7e394..0048b8f92e6 100644 --- a/apps/dolly-backend/src/test/java/no/nav/dolly/bestilling/pensjonforvalter/PensjonforvalterConsumerTest.java +++ b/apps/dolly-backend/src/test/java/no/nav/dolly/bestilling/pensjonforvalter/PensjonforvalterConsumerTest.java @@ -2,7 +2,7 @@ import no.nav.dolly.bestilling.pensjonforvalter.domain.*; import no.nav.dolly.elastic.BestillingElasticRepository; -import no.nav.dolly.libs.nais.DollySpringBootTest; +import no.nav.dolly.libs.test.DollySpringBootTest; import no.nav.testnav.libs.securitycore.domain.AccessToken; import no.nav.testnav.libs.securitycore.domain.ServerProperties; import no.nav.testnav.libs.standalone.servletsecurity.exchange.TokenExchange; diff --git a/apps/dolly-backend/src/test/java/no/nav/dolly/bestilling/sigrunstub/SigrunStubConsumerTest.java b/apps/dolly-backend/src/test/java/no/nav/dolly/bestilling/sigrunstub/SigrunStubConsumerTest.java index 1ad479ebb7e..34e2473c5ac 100644 --- a/apps/dolly-backend/src/test/java/no/nav/dolly/bestilling/sigrunstub/SigrunStubConsumerTest.java +++ b/apps/dolly-backend/src/test/java/no/nav/dolly/bestilling/sigrunstub/SigrunStubConsumerTest.java @@ -7,7 +7,7 @@ import no.nav.dolly.bestilling.sigrunstub.dto.SigrunstubPensjonsgivendeInntektRequest; import no.nav.dolly.bestilling.sigrunstub.dto.SigrunstubResponse; import no.nav.dolly.elastic.BestillingElasticRepository; -import no.nav.dolly.libs.nais.DollySpringBootTest; +import no.nav.dolly.libs.test.DollySpringBootTest; import no.nav.testnav.libs.securitycore.domain.AccessToken; import no.nav.testnav.libs.securitycore.domain.ServerProperties; import no.nav.testnav.libs.standalone.servletsecurity.exchange.TokenExchange; diff --git a/apps/dolly-backend/src/test/java/no/nav/dolly/bestilling/tpsmessagingservice/TpsMessagingConsumerTest.java b/apps/dolly-backend/src/test/java/no/nav/dolly/bestilling/tpsmessagingservice/TpsMessagingConsumerTest.java index d036c0ae761..f314462b53c 100644 --- a/apps/dolly-backend/src/test/java/no/nav/dolly/bestilling/tpsmessagingservice/TpsMessagingConsumerTest.java +++ b/apps/dolly-backend/src/test/java/no/nav/dolly/bestilling/tpsmessagingservice/TpsMessagingConsumerTest.java @@ -4,7 +4,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.github.tomakehurst.wiremock.client.WireMock; import no.nav.dolly.elastic.BestillingElasticRepository; -import no.nav.dolly.libs.nais.DollySpringBootTest; +import no.nav.dolly.libs.test.DollySpringBootTest; import no.nav.testnav.libs.data.kontoregister.v1.BankkontonrUtlandDTO; import no.nav.testnav.libs.securitycore.domain.AccessToken; import no.nav.testnav.libs.securitycore.domain.ServerProperties; diff --git a/apps/dolly-backend/src/test/java/no/nav/dolly/mapper/strategy/TestgruppeMappingStrategyTest.java b/apps/dolly-backend/src/test/java/no/nav/dolly/mapper/strategy/TestgruppeMappingStrategyTest.java index c93fa873ae4..19b0abe5e55 100644 --- a/apps/dolly-backend/src/test/java/no/nav/dolly/mapper/strategy/TestgruppeMappingStrategyTest.java +++ b/apps/dolly-backend/src/test/java/no/nav/dolly/mapper/strategy/TestgruppeMappingStrategyTest.java @@ -10,7 +10,7 @@ import no.nav.dolly.domain.resultset.entity.testident.RsTestident; import no.nav.dolly.elastic.BestillingElasticRepository; import no.nav.dolly.mapper.utils.MapperTestUtils; -import no.nav.dolly.libs.nais.DollySpringBootTest; +import no.nav.dolly.libs.test.DollySpringBootTest; import no.nav.testnav.libs.servletsecurity.action.GetUserInfo; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; diff --git a/apps/dolly-backend/src/test/java/no/nav/dolly/provider/api/AbstractControllerTest.java b/apps/dolly-backend/src/test/java/no/nav/dolly/provider/api/AbstractControllerTest.java index 0733583e4ae..048a22c691c 100644 --- a/apps/dolly-backend/src/test/java/no/nav/dolly/provider/api/AbstractControllerTest.java +++ b/apps/dolly-backend/src/test/java/no/nav/dolly/provider/api/AbstractControllerTest.java @@ -8,7 +8,7 @@ import no.nav.dolly.repository.BrukerRepository; import no.nav.dolly.repository.IdentRepository; import no.nav.dolly.repository.TestgruppeRepository; -import no.nav.dolly.libs.nais.DollySpringBootTest; +import no.nav.dolly.libs.test.DollySpringBootTest; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.springframework.beans.factory.annotation.Autowired; diff --git a/apps/dolly-backend/src/test/java/no/nav/dolly/provider/api/MalBestillingControllerTest.java b/apps/dolly-backend/src/test/java/no/nav/dolly/provider/api/MalBestillingControllerTest.java index f37daa00478..1cb5782167c 100644 --- a/apps/dolly-backend/src/test/java/no/nav/dolly/provider/api/MalBestillingControllerTest.java +++ b/apps/dolly-backend/src/test/java/no/nav/dolly/provider/api/MalBestillingControllerTest.java @@ -11,7 +11,7 @@ import no.nav.dolly.repository.BrukerRepository; import no.nav.dolly.repository.TestgruppeRepository; import no.nav.dolly.service.BrukerService; -import no.nav.dolly.libs.nais.DollySpringBootTest; +import no.nav.dolly.libs.test.DollySpringBootTest; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; diff --git a/apps/dolly-backend/src/test/java/no/nav/dolly/provider/api/OpensearchControllerTest.java b/apps/dolly-backend/src/test/java/no/nav/dolly/provider/api/OpensearchControllerTest.java index 577de083d2b..3368612e896 100644 --- a/apps/dolly-backend/src/test/java/no/nav/dolly/provider/api/OpensearchControllerTest.java +++ b/apps/dolly-backend/src/test/java/no/nav/dolly/provider/api/OpensearchControllerTest.java @@ -9,7 +9,7 @@ import no.nav.dolly.domain.resultset.pdldata.PdlPersondata; import no.nav.dolly.elastic.BestillingElasticRepository; import no.nav.dolly.elastic.ElasticBestilling; -import no.nav.dolly.libs.nais.DollySpringBootTest; +import no.nav.dolly.libs.test.DollySpringBootTest; import no.nav.testnav.libs.data.kontoregister.v1.BankkontonrUtlandDTO; import no.nav.testnav.libs.data.pdlforvalter.v1.Identtype; import org.junit.jupiter.api.AfterEach; diff --git a/apps/dolly-frontend/build.gradle b/apps/dolly-frontend/build.gradle index 6240eedefc0..6c9e2010e94 100644 --- a/apps/dolly-frontend/build.gradle +++ b/apps/dolly-frontend/build.gradle @@ -10,12 +10,6 @@ sonarqube { } } -configurations { - configureEach { - exclude group: "org.springframework.boot", module: "spring-boot-starter-actuator" - } -} - dependencies { implementation "io.grpc:grpc-netty:$versions.grpc" diff --git a/apps/dolly-frontend/config.idporten.yml b/apps/dolly-frontend/config.idporten.yml index 44a14a2c9d8..83b4696980b 100644 --- a/apps/dolly-frontend/config.idporten.yml +++ b/apps/dolly-frontend/config.idporten.yml @@ -74,7 +74,7 @@ spec: - host: idporten.no liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 20 periodSeconds: 2 failureThreshold: 140 @@ -86,7 +86,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 20 periodSeconds: 2 failureThreshold: 140 diff --git a/apps/dolly-frontend/config.test.yml b/apps/dolly-frontend/config.test.yml index c8c86b70443..44a874ad133 100644 --- a/apps/dolly-frontend/config.test.yml +++ b/apps/dolly-frontend/config.test.yml @@ -85,7 +85,7 @@ spec: ingresses: - "https://dolly-frontend-dev.intern.dev.nav.no" liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 20 periodSeconds: 2 failureThreshold: 140 @@ -97,7 +97,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 20 periodSeconds: 2 failureThreshold: 140 diff --git a/apps/dolly-frontend/config.unstable.yml b/apps/dolly-frontend/config.unstable.yml index 06ec62693d6..82bef39ebdb 100644 --- a/apps/dolly-frontend/config.unstable.yml +++ b/apps/dolly-frontend/config.unstable.yml @@ -78,7 +78,7 @@ spec: ingresses: - "https://dolly-frontend-dev-unstable.intern.dev.nav.no" liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 20 periodSeconds: 2 failureThreshold: 140 @@ -90,7 +90,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 20 periodSeconds: 2 failureThreshold: 140 diff --git a/apps/dolly-frontend/config.yml b/apps/dolly-frontend/config.yml index 51b1cb879cc..e800b928422 100644 --- a/apps/dolly-frontend/config.yml +++ b/apps/dolly-frontend/config.yml @@ -83,7 +83,7 @@ spec: - host: testnav-brregstub-proxy.dev-fss-pub.nais.io - host: testnav-dokarkiv-proxy.dev-fss-pub.nais.io liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 20 periodSeconds: 2 failureThreshold: 140 @@ -95,7 +95,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 20 periodSeconds: 2 failureThreshold: 140 diff --git a/apps/dolly-frontend/src/main/java/no/nav/dolly/web/config/IdportenSecurityConfig.java b/apps/dolly-frontend/src/main/java/no/nav/dolly/web/config/IdportenSecurityConfig.java index 7a597553d66..837e59a4398 100644 --- a/apps/dolly-frontend/src/main/java/no/nav/dolly/web/config/IdportenSecurityConfig.java +++ b/apps/dolly-frontend/src/main/java/no/nav/dolly/web/config/IdportenSecurityConfig.java @@ -27,7 +27,7 @@ @Configuration @Profile("idporten") @EnableWebFluxSecurity -public class IdportenSecurityConfig { +class IdportenSecurityConfig { private static final String LOGOUT = "/logout"; private static final String LOGIN = "/login"; @@ -46,7 +46,7 @@ public IdportenSecurityConfig( } @Bean - public ServerOAuth2AuthorizationRequestResolver pkceResolver(ReactiveClientRegistrationRepository repo) { + ServerOAuth2AuthorizationRequestResolver pkceResolver(ReactiveClientRegistrationRepository repo) { var resolver = new DefaultServerOAuth2AuthorizationRequestResolver(repo); resolver.setAuthorizationRequestCustomizer(OAuth2AuthorizationRequestCustomizers.withPkce()); return resolver; @@ -54,7 +54,7 @@ public ServerOAuth2AuthorizationRequestResolver pkceResolver(ReactiveClientRegis @SneakyThrows @Bean - public SecurityWebFilterChain configure(ServerHttpSecurity http, ServerOAuth2AuthorizationRequestResolver requestResolver) { + SecurityWebFilterChain configure(ServerHttpSecurity http, ServerOAuth2AuthorizationRequestResolver requestResolver) { var authenticationSuccessHandler = new DollyAuthenticationSuccessHandler(); var authenticationManager = new AuthorizationCodeReactiveAuthenticationManger(JWK.parse(jwk)); var logoutSuccessHandler = new LogoutSuccessHandler(); @@ -64,19 +64,17 @@ public SecurityWebFilterChain configure(ServerHttpSecurity http, ServerOAuth2Aut .cors(ServerHttpSecurity.CorsSpec::disable) .csrf(ServerHttpSecurity.CsrfSpec::disable) .authorizeExchange(authorizeExchangeSpec -> authorizeExchangeSpec.pathMatchers( - "/internal/isReady", - "/internal/isAlive", - "/assets/*", - "/internal/metrics", - "/oauth2/callback", - "/favicon.ico", - LOGIN, - LOGOUT, - "/oauth2/logout", "/*.css", "/*.js", "/*.mjs", - "/*.png" + "/*.png", + "/assets/*", + "/favicon.ico", + "/internal/**", + "/oauth2/callback", + "/oauth2/logout", + LOGIN, + LOGOUT ).permitAll() .anyExchange().authenticated()) .oauth2Login(oAuth2LoginSpec -> oAuth2LoginSpec diff --git a/apps/dolly-frontend/src/main/java/no/nav/dolly/web/config/LocalSecurityConfig.java b/apps/dolly-frontend/src/main/java/no/nav/dolly/web/config/LocalSecurityConfig.java index 2fdf751b210..ae44e031c9b 100644 --- a/apps/dolly-frontend/src/main/java/no/nav/dolly/web/config/LocalSecurityConfig.java +++ b/apps/dolly-frontend/src/main/java/no/nav/dolly/web/config/LocalSecurityConfig.java @@ -18,33 +18,31 @@ @Configuration @Profile("local") @EnableWebFluxSecurity -public class LocalSecurityConfig { +class LocalSecurityConfig { private static final String LOGOUT = "/logout"; private static final String LOGIN = "/login"; @SneakyThrows @Bean - public SecurityWebFilterChain configure(ServerHttpSecurity http) { + SecurityWebFilterChain configure(ServerHttpSecurity http) { var authenticationSuccessHandler = new DollyAuthenticationSuccessHandler(); var logoutSuccessHandler = new LogoutSuccessHandler(); return http.cors(ServerHttpSecurity.CorsSpec::disable) .csrf(ServerHttpSecurity.CsrfSpec::disable) .authorizeExchange(authorizeExchangeSpec -> authorizeExchangeSpec.pathMatchers( - "/internal/isReady", - "/internal/isAlive", - "/assets/*", - "/internal/metrics", - "/oauth2/callback", - "/favicon.ico", - LOGIN, - LOGOUT, - "/oauth2/logout", "/*.css", "/*.js", "/*.mjs", - "/*.png" + "/*.png", + "/assets/*", + "/favicon.ico", + "/internal/**", + "/oauth2/callback", + "/oauth2/logout", + LOGIN, + LOGOUT ).permitAll() .anyExchange().authenticated()) .oauth2Login(oAuth2LoginSpec -> oAuth2LoginSpec diff --git a/apps/dolly-frontend/src/main/java/no/nav/dolly/web/config/SecurityConfig.java b/apps/dolly-frontend/src/main/java/no/nav/dolly/web/config/SecurityConfig.java index 40d52dd18a1..d76cae2393c 100644 --- a/apps/dolly-frontend/src/main/java/no/nav/dolly/web/config/SecurityConfig.java +++ b/apps/dolly-frontend/src/main/java/no/nav/dolly/web/config/SecurityConfig.java @@ -1,9 +1,8 @@ package no.nav.dolly.web.config; import lombok.RequiredArgsConstructor; -import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Value; +import no.nav.testnav.libs.reactivesecurity.properties.AzureAdResourceServerProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Profile; @@ -12,32 +11,38 @@ import org.springframework.security.oauth2.jwt.ReactiveJwtDecoder; import org.springframework.security.oauth2.jwt.ReactiveJwtDecoders; import org.springframework.security.web.server.SecurityWebFilterChain; - +import reactor.core.publisher.Mono; @Slf4j @Configuration -@Profile({ "prod", "dev" }) @EnableWebFluxSecurity @RequiredArgsConstructor -public class SecurityConfig { - +class SecurityConfig { - @Value("${spring.security.oauth2.resourceserver.aad.issuer-uri}") - private String aadIssuer; + private final AzureAdResourceServerProperties config; - @SneakyThrows @Bean - public SecurityWebFilterChain configure(ServerHttpSecurity http) { - - http.cors(ServerHttpSecurity.CorsSpec::disable) + SecurityWebFilterChain configure(ServerHttpSecurity http) { + return http + .cors(ServerHttpSecurity.CorsSpec::disable) .csrf(ServerHttpSecurity.CsrfSpec::disable) - .authorizeExchange(authorizeExchangeSpec -> authorizeExchangeSpec.anyExchange().permitAll()) - .oauth2ResourceServer(oAuth2ResourceServerSpec -> oAuth2ResourceServerSpec.jwt(jwtSpec -> jwtDecoder())); - return http.build(); + .authorizeExchange(spec -> spec + .anyExchange() + .permitAll()) + .oauth2ResourceServer(spec -> spec.jwt(jwtSpec -> jwtDecoder())) + .build(); } - @Bean - public ReactiveJwtDecoder jwtDecoder() { - return ReactiveJwtDecoders.fromOidcIssuerLocation(aadIssuer); + @Bean("jwtDecoder") + @Profile("!test") + ReactiveJwtDecoder jwtDecoder() { + return ReactiveJwtDecoders.fromOidcIssuerLocation(config.getIssuerUri()); } + + @Bean("jwtDecoder") + @Profile("test") + ReactiveJwtDecoder jwtDecoderForTest() { + return token -> Mono.empty(); + } + } diff --git a/apps/dolly-frontend/src/main/resources/application.yml b/apps/dolly-frontend/src/main/resources/application.yml index 1ef770e5b00..838b0e2f753 100644 --- a/apps/dolly-frontend/src/main/resources/application.yml +++ b/apps/dolly-frontend/src/main/resources/application.yml @@ -5,6 +5,8 @@ spring: application: name: dolly-frontend allow-circular-references: true + config: + import: "classpath:dolly-application.yml" data: redis: host: ${REDIS_HOST} @@ -241,39 +243,11 @@ consumers: name: testnav-arbeidssoekerregisteret-proxy url: http://testnav-arbeidssoekerregisteret-proxy.dolly.svc.cluster.local -management: - endpoints: - enabled-by-default: true - web: - base-path: /internal - exposure: - include: prometheus,health - path-mapping: - prometheus: metrics - endpoint: - prometheus: - enabled: true - prometheus: - metrics: - export: - enabled: true server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always max-http-request-header-size: 128KB logging: pattern: level: "%5p [${spring.application.name:},%X{traceId:-},%X{spanId:-}]" - level: - org: - springframework: - boot: - autoconfigure: - security: - reactive: - ReactiveUserDetailsServiceAutoConfiguration: OFF + org.springframework.boot.autoconfigure.security.reactive.ReactiveUserDetailsServiceAutoConfiguration: OFF diff --git a/apps/dolly-frontend/src/test/java/no/nav/dolly/web/ApplicationContextTest.java b/apps/dolly-frontend/src/test/java/no/nav/dolly/web/ApplicationContextTest.java index 0a10e2d8108..c1c26ed091c 100644 --- a/apps/dolly-frontend/src/test/java/no/nav/dolly/web/ApplicationContextTest.java +++ b/apps/dolly-frontend/src/test/java/no/nav/dolly/web/ApplicationContextTest.java @@ -1,16 +1,8 @@ package no.nav.dolly.web; -import no.nav.dolly.libs.nais.DollySpringBootTest; -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import no.nav.dolly.libs.test.DollySpringBootTest; +import no.nav.dolly.libs.test.DollyApplicationContextTest; @DollySpringBootTest -class ApplicationContextTest { - - @Test - void load_app_context() { - assertThat(true).isTrue(); - } - +class ApplicationContextTest extends DollyApplicationContextTest { } \ No newline at end of file diff --git a/apps/dollystatus/config.yml b/apps/dollystatus/config.yml index f150fdf5f80..bc7a95c55ef 100644 --- a/apps/dollystatus/config.yml +++ b/apps/dollystatus/config.yml @@ -15,7 +15,7 @@ spec: - application: dolly-backend-dev - application: testnav-budpro-service liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 @@ -27,7 +27,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 diff --git a/apps/dollystatus/src/main/java/no/nav/testnav/apps/statusfrontend/NaisController.java b/apps/dollystatus/src/main/java/no/nav/testnav/apps/statusfrontend/NaisController.java deleted file mode 100644 index a80afee4e55..00000000000 --- a/apps/dollystatus/src/main/java/no/nav/testnav/apps/statusfrontend/NaisController.java +++ /dev/null @@ -1,18 +0,0 @@ -package no.nav.testnav.apps.statusfrontend; - -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RestController; - -@RestController -public class NaisController { - - @GetMapping("/internal/isAlive") - public String isAlive() { - return "OK"; - } - - @GetMapping("/internal/isReady") - public String isReady() { - return "OK"; - } -} diff --git a/apps/dollystatus/src/main/resources/application.yml b/apps/dollystatus/src/main/resources/application.yml index 02b34f3f5a6..fd2238efe4d 100644 --- a/apps/dollystatus/src/main/resources/application.yml +++ b/apps/dollystatus/src/main/resources/application.yml @@ -1,32 +1,7 @@ -management: - endpoints: - enabled-by-default: true - web: - base-path: /internal - exposure: - include: prometheus,health - path-mapping: - prometheus: metrics - endpoint: - prometheus: - enabled: true - prometheus: - metrics: - export: - enabled: true -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always +spring: + config: + import: "classpath:dolly-application.yml" logging: level: - org: - springframework: - boot: - autoconfigure: - security: - reactive: - ReactiveUserDetailsServiceAutoConfiguration: OFF + org.springframework.boot.autoconfigure.security.reactive.ReactiveUserDetailsServiceAutoConfiguration: OFF diff --git a/apps/endringsmelding-frontend/build.gradle b/apps/endringsmelding-frontend/build.gradle index e3940d5fc48..5dac3a77710 100644 --- a/apps/endringsmelding-frontend/build.gradle +++ b/apps/endringsmelding-frontend/build.gradle @@ -11,12 +11,6 @@ sonarqube { } } -configurations { - configureEach { - exclude group: "org.springframework.boot", module: "spring-boot-starter-actuator" - } -} - dependencies { implementation "io.grpc:grpc-netty:$versions.grpc" diff --git a/apps/endringsmelding-frontend/config.yml b/apps/endringsmelding-frontend/config.yml index a4f37bf4cd2..35c22ba118a 100644 --- a/apps/endringsmelding-frontend/config.yml +++ b/apps/endringsmelding-frontend/config.yml @@ -18,7 +18,7 @@ spec: groups: - id: 9c7efec1-1599-4216-a67e-6fd53a6a951c liveness: - path: /internal/isAlive + path: /internal/health/liveness periodSeconds: 30 initialDelay: 30 observability: @@ -29,7 +29,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 30 prometheus: enabled: true diff --git a/apps/endringsmelding-frontend/src/main/java/no/nav/testnav/apps/endringsmeldingfrontend/config/SecurityConfig.java b/apps/endringsmelding-frontend/src/main/java/no/nav/testnav/apps/endringsmeldingfrontend/config/SecurityConfig.java index 2a4acc7a187..4855eb08d60 100644 --- a/apps/endringsmelding-frontend/src/main/java/no/nav/testnav/apps/endringsmeldingfrontend/config/SecurityConfig.java +++ b/apps/endringsmelding-frontend/src/main/java/no/nav/testnav/apps/endringsmeldingfrontend/config/SecurityConfig.java @@ -16,10 +16,7 @@ SecurityWebFilterChain springSecurityFilterChain(ServerHttpSecurity http) { .cors(ServerHttpSecurity.CorsSpec::disable) .csrf(ServerHttpSecurity.CsrfSpec::disable) .authorizeExchange(spec -> spec - .pathMatchers( - "/internal/isReady", - "/internal/isAlive", - "/internal/metrics") + .pathMatchers("/internal/**") .permitAll() .anyExchange() .authenticated()) diff --git a/apps/endringsmelding-frontend/src/main/resources/application.yml b/apps/endringsmelding-frontend/src/main/resources/application.yml index 33f4a4da040..4315c05d2b3 100644 --- a/apps/endringsmelding-frontend/src/main/resources/application.yml +++ b/apps/endringsmelding-frontend/src/main/resources/application.yml @@ -2,6 +2,8 @@ spring: application: name: endringsmelding-frontend description: App for å sende inn endringsmeldinger til tps + config: + import: "classpath:dolly-application.yml" security: oauth2: client: @@ -33,29 +35,6 @@ consumers: name: testnorge-profil-api url: http://testnorge-profil-api.dolly.svc.cluster.local -management: - endpoints: - enabled-by-default: true - web: - base-path: /internal - exposure: - include: prometheus,health - path-mapping: - prometheus: metrics - endpoint: - prometheus: - enabled: true - prometheus: - metrics: - export: - enabled: true -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always - logging: level: org: diff --git a/apps/endringsmelding-frontend/src/test/java/no/nav/testnav/apps/endringsmeldingfrontend/ApplicationContextTest.java b/apps/endringsmelding-frontend/src/test/java/no/nav/testnav/apps/endringsmeldingfrontend/ApplicationContextTest.java index c8d877e5ba6..9b98d8c524a 100644 --- a/apps/endringsmelding-frontend/src/test/java/no/nav/testnav/apps/endringsmeldingfrontend/ApplicationContextTest.java +++ b/apps/endringsmelding-frontend/src/test/java/no/nav/testnav/apps/endringsmeldingfrontend/ApplicationContextTest.java @@ -1,16 +1,19 @@ package no.nav.testnav.apps.endringsmeldingfrontend; -import no.nav.dolly.libs.nais.DollySpringBootTest; -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import no.nav.dolly.libs.test.DollySpringBootTest; +import no.nav.dolly.libs.test.DollyApplicationContextTest; @DollySpringBootTest -class ApplicationContextTest { +class ApplicationContextTest extends DollyApplicationContextTest { - @Test - void load_app_context() { - assertThat(true).isTrue(); + @Override + public void testNonexistingApiEndpoint() { + webTestClient + .get() + .uri("/api/someNonExistingEndpoint") + .exchange() + .expectStatus() + .is3xxRedirection(); } } diff --git a/apps/endringsmelding-service/config.yml b/apps/endringsmelding-service/config.yml index 7fcdf22f175..192c1bc9df3 100644 --- a/apps/endringsmelding-service/config.yml +++ b/apps/endringsmelding-service/config.yml @@ -32,7 +32,7 @@ spec: - application: generer-navn-service - application: testnav-adresse-service liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 @@ -44,7 +44,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 diff --git a/apps/endringsmelding-service/src/main/resources/application.yml b/apps/endringsmelding-service/src/main/resources/application.yml index 59b3813236c..49f12aaf4ce 100644 --- a/apps/endringsmelding-service/src/main/resources/application.yml +++ b/apps/endringsmelding-service/src/main/resources/application.yml @@ -3,6 +3,8 @@ spring: version: application.version.todo #TODO Finn ut hvordan denne kan settes fra gradle name: endringsmelding-service description: Tjeneste for å sende endringsmeldinger + config: + import: "classpath:dolly-application.yml" security: oauth2: resourceserver: @@ -10,10 +12,10 @@ spring: issuer-uri: ${AZURE_OPENID_CONFIG_ISSUER} accepted-audience: ${AZURE_APP_CLIENT_ID}, api:// ${AZURE_APP_CLIENT_ID} -springdoc: - swagger-ui: - disable-swagger-default-url: true - url: /v3/api-docs +management: + health: + elasticsearch: + enabled: false consumers: tps-messaging-service: @@ -35,30 +37,4 @@ consumers: url: http://generer-navn-service.dolly.svc.cluster.local cluster: dev-gcp namespace: dolly - name: generer-navn-service - -management: - endpoints: - enabled-by-default: true - web: - base-path: /internal - exposure: - include: prometheus,health - path-mapping: - prometheus: metrics - endpoint: - prometheus: - enabled: true - health: - elasticsearch: - enabled: false - prometheus: - metrics: - export: - enabled: true -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always \ No newline at end of file + name: generer-navn-service \ No newline at end of file diff --git a/apps/endringsmelding-service/src/test/java/no/nav/testnav/endringsmeldingservice/ApplicationContextTest.java b/apps/endringsmelding-service/src/test/java/no/nav/testnav/endringsmeldingservice/ApplicationContextTest.java index 3326275fa34..b7ed2e4de22 100644 --- a/apps/endringsmelding-service/src/test/java/no/nav/testnav/endringsmeldingservice/ApplicationContextTest.java +++ b/apps/endringsmelding-service/src/test/java/no/nav/testnav/endringsmeldingservice/ApplicationContextTest.java @@ -1,16 +1,8 @@ package no.nav.testnav.endringsmeldingservice; -import no.nav.dolly.libs.nais.DollySpringBootTest; -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import no.nav.dolly.libs.test.DollySpringBootTest; +import no.nav.dolly.libs.test.DollyApplicationContextTest; @DollySpringBootTest -class ApplicationContextTest { - - @Test - void load_app_context() { - assertThat(true).isTrue(); - } - +class ApplicationContextTest extends DollyApplicationContextTest { } diff --git a/apps/faste-data-frontend/config.yml b/apps/faste-data-frontend/config.yml index 68c55d581ac..4aac44b63cd 100644 --- a/apps/faste-data-frontend/config.yml +++ b/apps/faste-data-frontend/config.yml @@ -28,7 +28,7 @@ spec: - application: testnorge-profil-api - application: testnorge-profil-api-dev liveness: - path: /internal/isAlive + path: /internal/health/liveness periodSeconds: 30 initialDelay: 30 observability: @@ -39,7 +39,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 30 prometheus: enabled: true diff --git a/apps/faste-data-frontend/src/main/java/no/nav/testnav/apps/fastedatafrontend/config/SecurityConfig.java b/apps/faste-data-frontend/src/main/java/no/nav/testnav/apps/fastedatafrontend/config/SecurityConfig.java index 2ece99b9639..42e7f440358 100644 --- a/apps/faste-data-frontend/src/main/java/no/nav/testnav/apps/fastedatafrontend/config/SecurityConfig.java +++ b/apps/faste-data-frontend/src/main/java/no/nav/testnav/apps/fastedatafrontend/config/SecurityConfig.java @@ -1,6 +1,8 @@ package no.nav.testnav.apps.fastedatafrontend.config; import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.method.configuration.EnableReactiveMethodSecurity; import org.springframework.security.config.annotation.web.reactive.EnableWebFluxSecurity; import org.springframework.security.config.web.server.ServerHttpSecurity; @@ -8,16 +10,20 @@ @EnableWebFluxSecurity @EnableReactiveMethodSecurity -public class SecurityConfig { +@Configuration +class SecurityConfig { @Bean - public SecurityWebFilterChain securityWebFilterChain(ServerHttpSecurity http) { - return http.csrf(ServerHttpSecurity.CsrfSpec::disable) - .authorizeExchange(authorizeExchangeSpec -> authorizeExchangeSpec - .pathMatchers("/internal/isReady", "/internal/isAlive", "/internal/metrics").permitAll() - .anyExchange().authenticated()) - .oauth2Login(oAuth2LoginSpec -> { - }) + SecurityWebFilterChain securityWebFilterChain(ServerHttpSecurity http) { + return http + .csrf(ServerHttpSecurity.CsrfSpec::disable) + .authorizeExchange(spec -> spec + .pathMatchers("/internal/**") + .permitAll() + .anyExchange() + .authenticated()) + .oauth2Login(Customizer.withDefaults()) .build(); } + } diff --git a/apps/faste-data-frontend/src/main/resources/application.yml b/apps/faste-data-frontend/src/main/resources/application.yml index 06056d99516..5e5465d84dc 100644 --- a/apps/faste-data-frontend/src/main/resources/application.yml +++ b/apps/faste-data-frontend/src/main/resources/application.yml @@ -2,6 +2,8 @@ spring: application: name: testnav-faste-data-frontend description: App for å se faste datasett + config: + import: "classpath:dolly-application.yml" cloud: vault: enabled: false @@ -51,35 +53,6 @@ consumers: name: testnav-bruker-service url: http://testnav-bruker-service.dolly.svc.cluster.local -management: - endpoints: - enabled-by-default: true - web: - base-path: /internal - exposure: - include: prometheus,health - path-mapping: - prometheus: metrics - endpoint: - prometheus: - enabled: true - prometheus: - metrics: - export: - enabled: true -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always - logging: level: - org: - springframework: - boot: - autoconfigure: - security: - reactive: - ReactiveUserDetailsServiceAutoConfiguration: OFF + org.springframework.boot.autoconfigure.security.reactive.ReactiveUserDetailsServiceAutoConfiguration: OFF diff --git a/apps/faste-data-frontend/src/test/java/no/nav/testnav/apps/fastedatafrontend/ApplicationContextTest.java b/apps/faste-data-frontend/src/test/java/no/nav/testnav/apps/fastedatafrontend/ApplicationContextTest.java index bafe48d31cc..2288443bf7b 100644 --- a/apps/faste-data-frontend/src/test/java/no/nav/testnav/apps/fastedatafrontend/ApplicationContextTest.java +++ b/apps/faste-data-frontend/src/test/java/no/nav/testnav/apps/fastedatafrontend/ApplicationContextTest.java @@ -1,16 +1,19 @@ package no.nav.testnav.apps.fastedatafrontend; -import no.nav.dolly.libs.nais.DollySpringBootTest; -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import no.nav.dolly.libs.test.DollySpringBootTest; +import no.nav.dolly.libs.test.DollyApplicationContextTest; @DollySpringBootTest -class ApplicationContextTest { +class ApplicationContextTest extends DollyApplicationContextTest { - @Test - void load_app_context() { - assertThat(true).isTrue(); + @Override + public void testNonexistingApiEndpoint() { + webTestClient + .get() + .uri("/api/someNonExistingEndpoint") + .exchange() + .expectStatus() + .is3xxRedirection(); } } diff --git a/apps/generer-arbeidsforhold-populasjon-service/config.yml b/apps/generer-arbeidsforhold-populasjon-service/config.yml index 2a4610aa157..1f4965444c3 100644 --- a/apps/generer-arbeidsforhold-populasjon-service/config.yml +++ b/apps/generer-arbeidsforhold-populasjon-service/config.yml @@ -31,7 +31,7 @@ spec: - application: testnav-organisasjon-service - application: synthdata-amelding liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 @@ -43,7 +43,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 diff --git a/apps/generer-arbeidsforhold-populasjon-service/src/main/resources/application.yml b/apps/generer-arbeidsforhold-populasjon-service/src/main/resources/application.yml index 3fc8e4bea97..a77837bb919 100644 --- a/apps/generer-arbeidsforhold-populasjon-service/src/main/resources/application.yml +++ b/apps/generer-arbeidsforhold-populasjon-service/src/main/resources/application.yml @@ -2,6 +2,8 @@ spring: application: name: testnav-generer-arbeidsforhold-populasjon-service description: Tjeneste for å opprette arbeidsforhold-populasjon + config: + import: "classpath:dolly-application.yml" security: oauth2: resourceserver: @@ -12,11 +14,6 @@ spring: issuer-uri: ${TOKEN_X_ISSUER} accepted-audience: ${TOKEN_X_CLIENT_ID} -springdoc: - swagger-ui: - disable-swagger-default-url: true - url: /v3/api-docs - consumers: synt-amelding: url: https://synthdata-amelding.dev.intern.nav.no @@ -38,26 +35,3 @@ consumers: cluster: dev-gcp namespace: dolly url: http://testnav-organisasjon-service.dolly.svc.cluster.local - -management: - endpoints: - enabled-by-default: true - web: - base-path: /internal - exposure: - include: prometheus,health - path-mapping: - prometheus: metrics - endpoint: - prometheus: - enabled: true - prometheus: - metrics: - export: - enabled: true -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always \ No newline at end of file diff --git a/apps/generer-arbeidsforhold-populasjon-service/src/test/java/no/nav/registre/testnav/genererarbeidsforholdpopulasjonservice/ApplicationContextTest.java b/apps/generer-arbeidsforhold-populasjon-service/src/test/java/no/nav/registre/testnav/genererarbeidsforholdpopulasjonservice/ApplicationContextTest.java index 137bd5d5c96..42da174b2f2 100644 --- a/apps/generer-arbeidsforhold-populasjon-service/src/test/java/no/nav/registre/testnav/genererarbeidsforholdpopulasjonservice/ApplicationContextTest.java +++ b/apps/generer-arbeidsforhold-populasjon-service/src/test/java/no/nav/registre/testnav/genererarbeidsforholdpopulasjonservice/ApplicationContextTest.java @@ -1,17 +1,9 @@ package no.nav.registre.testnav.genererarbeidsforholdpopulasjonservice; -import no.nav.dolly.libs.nais.DollySpringBootTest; -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import no.nav.dolly.libs.test.DollySpringBootTest; +import no.nav.dolly.libs.test.DollyApplicationContextTest; @DollySpringBootTest -class ApplicationContextTest { - - @Test - void load_app_context() { - assertThat(true).isTrue(); - } - +class ApplicationContextTest extends DollyApplicationContextTest { } diff --git a/apps/generer-navn-service/config.yml b/apps/generer-navn-service/config.yml index 0ba35e3c211..a14df50c6c5 100644 --- a/apps/generer-navn-service/config.yml +++ b/apps/generer-navn-service/config.yml @@ -49,7 +49,7 @@ spec: enabled: true tenant: nav.no liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 @@ -61,7 +61,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 diff --git a/apps/generer-navn-service/src/main/java/no/nav/registre/testnorge/generernavnservice/GenererNavnServiceApplicationStarter.java b/apps/generer-navn-service/src/main/java/no/nav/registre/testnorge/generernavnservice/GenererNavnServiceApplicationStarter.java index 45201f1a924..9b84823bb2a 100644 --- a/apps/generer-navn-service/src/main/java/no/nav/registre/testnorge/generernavnservice/GenererNavnServiceApplicationStarter.java +++ b/apps/generer-navn-service/src/main/java/no/nav/registre/testnorge/generernavnservice/GenererNavnServiceApplicationStarter.java @@ -3,7 +3,9 @@ import no.nav.dolly.libs.nais.NaisEnvironmentApplicationContextInitializer; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +@EnableWebSecurity @SpringBootApplication public class GenererNavnServiceApplicationStarter { public static void main(String[] args) { diff --git a/apps/generer-navn-service/src/main/java/no/nav/registre/testnorge/generernavnservice/config/SecurityConfig.java b/apps/generer-navn-service/src/main/java/no/nav/registre/testnorge/generernavnservice/config/SecurityConfig.java index 7666c1c71e7..e3decc13488 100644 --- a/apps/generer-navn-service/src/main/java/no/nav/registre/testnorge/generernavnservice/config/SecurityConfig.java +++ b/apps/generer-navn-service/src/main/java/no/nav/registre/testnorge/generernavnservice/config/SecurityConfig.java @@ -1,38 +1,26 @@ package no.nav.registre.testnorge.generernavnservice.config; +import no.nav.dolly.libs.security.config.DollyHttpSecurity; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Profile; import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; -import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; -@EnableWebSecurity @Configuration -@Profile({ "prod", "dev" }) -public class SecurityConfig { +class SecurityConfig { @Bean - public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { - - httpSecurity.sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) + SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { + return httpSecurity + .sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) .csrf(AbstractHttpConfigurer::disable) - .authorizeHttpRequests(authorizeConfig -> authorizeConfig.requestMatchers( - "/internal/**", - "/webjars/**", - "/swagger-resources/**", - "/v3/api-docs/**", - "/swagger-ui/**", - "/swagger", - "/error", - "/swagger-ui.html" - ).permitAll().requestMatchers("/api/**").fullyAuthenticated()) - .oauth2ResourceServer(oauth2RSConfig -> oauth2RSConfig.jwt(Customizer.withDefaults())); - - return httpSecurity.build(); + .authorizeHttpRequests(DollyHttpSecurity.withDefaultHttpRequests()) + .oauth2ResourceServer(oauth2RSConfig -> oauth2RSConfig.jwt(Customizer.withDefaults())) + .build(); } + } diff --git a/apps/generer-navn-service/src/main/resources/application.yml b/apps/generer-navn-service/src/main/resources/application.yml index f50592c4259..67f5d7b21dd 100644 --- a/apps/generer-navn-service/src/main/resources/application.yml +++ b/apps/generer-navn-service/src/main/resources/application.yml @@ -3,6 +3,8 @@ spring: name: generer-navn-service version: application.version.todo #TODO Finn ut hvordan denne kan settes fra Gradle description: App for å generere fiktive navn. + config: + import: "classpath:dolly-application.yml" security: oauth2: resourceserver: @@ -11,32 +13,4 @@ spring: accepted-audience: ${AZURE_APP_CLIENT_ID}, api:// ${AZURE_APP_CLIENT_ID} tokenx: issuer-uri: ${TOKEN_X_ISSUER} - accepted-audience: ${TOKEN_X_CLIENT_ID} - -springdoc: - swagger-ui: - disable-swagger-default-url: true - url: /v3/api-docs - -management: - endpoints: - enabled-by-default: true - web: - base-path: /internal - exposure: - include: prometheus,health - path-mapping: - prometheus: metrics - endpoint: - prometheus: - enabled: true - prometheus: - metrics: - export: - enabled: true -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always \ No newline at end of file + accepted-audience: ${TOKEN_X_CLIENT_ID} \ No newline at end of file diff --git a/apps/generer-navn-service/src/test/java/no/nav/registre/testnorge/generernavnservice/ApplicationContextTest.java b/apps/generer-navn-service/src/test/java/no/nav/registre/testnorge/generernavnservice/ApplicationContextTest.java index 907b565d844..92c44ca9f97 100644 --- a/apps/generer-navn-service/src/test/java/no/nav/registre/testnorge/generernavnservice/ApplicationContextTest.java +++ b/apps/generer-navn-service/src/test/java/no/nav/registre/testnorge/generernavnservice/ApplicationContextTest.java @@ -1,16 +1,8 @@ package no.nav.registre.testnorge.generernavnservice; -import no.nav.dolly.libs.nais.DollySpringBootTest; -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import no.nav.dolly.libs.test.DollySpringBootTest; +import no.nav.dolly.libs.test.DollyApplicationContextTest; @DollySpringBootTest -class ApplicationContextTest { - - @Test - void load_app_context() { - assertThat(true).isTrue(); - } - +class ApplicationContextTest extends DollyApplicationContextTest { } diff --git a/apps/generer-organisasjon-populasjon-service/config.yml b/apps/generer-organisasjon-populasjon-service/config.yml index 00ebbf3891d..cb6da3213b2 100644 --- a/apps/generer-organisasjon-populasjon-service/config.yml +++ b/apps/generer-organisasjon-populasjon-service/config.yml @@ -35,7 +35,7 @@ spec: databases: - name: testnav-generer-organisasjon-populasjon-db liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 @@ -47,7 +47,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 diff --git a/apps/generer-organisasjon-populasjon-service/src/main/java/no/nav/registre/testnav/genererorganisasjonpopulasjonservice/GenererOrganisasjonPopulasjonServiceApplicationStarter.java b/apps/generer-organisasjon-populasjon-service/src/main/java/no/nav/registre/testnav/genererorganisasjonpopulasjonservice/GenererOrganisasjonPopulasjonServiceApplicationStarter.java index 5f6d037ec8d..32136776038 100644 --- a/apps/generer-organisasjon-populasjon-service/src/main/java/no/nav/registre/testnav/genererorganisasjonpopulasjonservice/GenererOrganisasjonPopulasjonServiceApplicationStarter.java +++ b/apps/generer-organisasjon-populasjon-service/src/main/java/no/nav/registre/testnav/genererorganisasjonpopulasjonservice/GenererOrganisasjonPopulasjonServiceApplicationStarter.java @@ -3,7 +3,9 @@ import no.nav.dolly.libs.nais.NaisEnvironmentApplicationContextInitializer; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +@EnableWebSecurity @SpringBootApplication public class GenererOrganisasjonPopulasjonServiceApplicationStarter { public static void main(String[] args) { diff --git a/apps/generer-organisasjon-populasjon-service/src/main/java/no/nav/registre/testnav/genererorganisasjonpopulasjonservice/config/SecurityConfig.java b/apps/generer-organisasjon-populasjon-service/src/main/java/no/nav/registre/testnav/genererorganisasjonpopulasjonservice/config/SecurityConfig.java index 20b33c217d0..55a2063da64 100644 --- a/apps/generer-organisasjon-populasjon-service/src/main/java/no/nav/registre/testnav/genererorganisasjonpopulasjonservice/config/SecurityConfig.java +++ b/apps/generer-organisasjon-populasjon-service/src/main/java/no/nav/registre/testnav/genererorganisasjonpopulasjonservice/config/SecurityConfig.java @@ -1,41 +1,26 @@ package no.nav.registre.testnav.genererorganisasjonpopulasjonservice.config; +import no.nav.dolly.libs.security.config.DollyHttpSecurity; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Profile; -import org.springframework.core.annotation.Order; import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; -import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; - -@Order(1) -@EnableWebSecurity @Configuration -@Profile({ "prod", "dev" }) -public class SecurityConfig { +class SecurityConfig { @Bean - public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { - - httpSecurity.sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) + SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { + return httpSecurity + .sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) .csrf(AbstractHttpConfigurer::disable) - .authorizeHttpRequests(authorizeConfig -> authorizeConfig.requestMatchers( - "/internal/**", - "/webjars/**", - "/swagger-resources/**", - "/v3/api-docs/**", - "/swagger-ui/**", - "/swagger", - "/error", - "/swagger-ui.html" - ).permitAll().requestMatchers("/api/**").fullyAuthenticated()) - .oauth2ResourceServer(oauth2RSConfig -> oauth2RSConfig.jwt(Customizer.withDefaults())); - - return httpSecurity.build(); + .authorizeHttpRequests(DollyHttpSecurity.withDefaultHttpRequests()) + .oauth2ResourceServer(oauth2RSConfig -> oauth2RSConfig.jwt(Customizer.withDefaults())) + .build(); } + } diff --git a/apps/generer-organisasjon-populasjon-service/src/main/resources/application.yml b/apps/generer-organisasjon-populasjon-service/src/main/resources/application.yml index dddddbefe55..01539eb4539 100644 --- a/apps/generer-organisasjon-populasjon-service/src/main/resources/application.yml +++ b/apps/generer-organisasjon-populasjon-service/src/main/resources/application.yml @@ -2,6 +2,8 @@ spring: application: name: testnav-generer-organisasjon-populasjon-service description: Tjeneste for å opprette organisasjon-populasjon + config: + import: "classpath:dolly-application.yml" security: oauth2: resourceserver: @@ -12,11 +14,6 @@ spring: issuer-uri: ${TOKEN_X_ISSUER} accepted-audience: ${TOKEN_X_CLIENT_ID} -springdoc: - swagger-ui: - disable-swagger-default-url: true - url: /v3/api-docs - kafka: groupid: generer-organisasjon-populasjon-service-v1 @@ -30,27 +27,4 @@ consumers: url: http://testnav-orgnummer-service.dolly.svc.cluster.local cluster: dev-gcp namespace: dolly - name: testnav-orgnummer-service - -management: - endpoints: - enabled-by-default: true - web: - base-path: /internal - exposure: - include: prometheus,health - path-mapping: - prometheus: metrics - endpoint: - prometheus: - enabled: true - prometheus: - metrics: - export: - enabled: true -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always \ No newline at end of file + name: testnav-orgnummer-service \ No newline at end of file diff --git a/apps/generer-organisasjon-populasjon-service/src/test/java/no/nav/registre/testnav/genererorganisasjonpopulasjonservice/ApplicationContextTest.java b/apps/generer-organisasjon-populasjon-service/src/test/java/no/nav/registre/testnav/genererorganisasjonpopulasjonservice/ApplicationContextTest.java index 6db4e4904dd..d6936bef5e5 100644 --- a/apps/generer-organisasjon-populasjon-service/src/test/java/no/nav/registre/testnav/genererorganisasjonpopulasjonservice/ApplicationContextTest.java +++ b/apps/generer-organisasjon-populasjon-service/src/test/java/no/nav/registre/testnav/genererorganisasjonpopulasjonservice/ApplicationContextTest.java @@ -1,16 +1,8 @@ package no.nav.registre.testnav.genererorganisasjonpopulasjonservice; -import no.nav.dolly.libs.nais.DollySpringBootTest; -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import no.nav.dolly.libs.test.DollySpringBootTest; +import no.nav.dolly.libs.test.DollyApplicationContextTest; @DollySpringBootTest -class ApplicationContextTest { - - @Test - void load_app_context() { - assertThat(true).isTrue(); - } - +class ApplicationContextTest extends DollyApplicationContextTest { } diff --git a/apps/generer-synt-amelding-service/config.yml b/apps/generer-synt-amelding-service/config.yml index 61970695588..ac67a62fb14 100644 --- a/apps/generer-synt-amelding-service/config.yml +++ b/apps/generer-synt-amelding-service/config.yml @@ -29,7 +29,7 @@ spec: enabled: true tenant: nav.no liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 @@ -41,7 +41,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 diff --git a/apps/generer-synt-amelding-service/src/main/java/no/nav/registre/testnorge/generersyntameldingservice/GenererSyntAmeldingApplicationStarter.java b/apps/generer-synt-amelding-service/src/main/java/no/nav/registre/testnorge/generersyntameldingservice/GenererSyntAmeldingApplicationStarter.java index 96bc26fbb4c..eb6f246fc65 100644 --- a/apps/generer-synt-amelding-service/src/main/java/no/nav/registre/testnorge/generersyntameldingservice/GenererSyntAmeldingApplicationStarter.java +++ b/apps/generer-synt-amelding-service/src/main/java/no/nav/registre/testnorge/generersyntameldingservice/GenererSyntAmeldingApplicationStarter.java @@ -3,7 +3,9 @@ import no.nav.dolly.libs.nais.NaisEnvironmentApplicationContextInitializer; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +@EnableWebSecurity @SpringBootApplication public class GenererSyntAmeldingApplicationStarter { public static void main(String[] args) { diff --git a/apps/generer-synt-amelding-service/src/main/java/no/nav/registre/testnorge/generersyntameldingservice/config/SecurityConfig.java b/apps/generer-synt-amelding-service/src/main/java/no/nav/registre/testnorge/generersyntameldingservice/config/SecurityConfig.java index 7afec2e6aac..258fbc6cf42 100644 --- a/apps/generer-synt-amelding-service/src/main/java/no/nav/registre/testnorge/generersyntameldingservice/config/SecurityConfig.java +++ b/apps/generer-synt-amelding-service/src/main/java/no/nav/registre/testnorge/generersyntameldingservice/config/SecurityConfig.java @@ -1,38 +1,27 @@ package no.nav.registre.testnorge.generersyntameldingservice.config; +import no.nav.dolly.libs.security.config.DollyHttpSecurity; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Profile; import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; -import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; -@EnableWebSecurity @Configuration -@Profile({ "prod", "dev" }) -public class SecurityConfig { +@Profile({"prod", "local"}) +class SecurityConfig { @Bean - public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { - - httpSecurity.sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) + SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { + return httpSecurity + .sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) .csrf(AbstractHttpConfigurer::disable) - .authorizeHttpRequests(authorizeConfig -> authorizeConfig.requestMatchers( - "/internal/**", - "/webjars/**", - "/swagger-resources/**", - "/v3/api-docs/**", - "/swagger-ui/**", - "/swagger", - "/error", - "/swagger-ui.html" - ).permitAll().requestMatchers("/api/**").fullyAuthenticated()) - .oauth2ResourceServer(oauth2RSConfig -> oauth2RSConfig.jwt(Customizer.withDefaults())); - - return httpSecurity.build(); + .authorizeHttpRequests(DollyHttpSecurity.withDefaultHttpRequests()) + .oauth2ResourceServer(oauth2RSConfig -> oauth2RSConfig.jwt(Customizer.withDefaults())) + .build(); } } diff --git a/apps/generer-synt-amelding-service/src/main/resources/application.yml b/apps/generer-synt-amelding-service/src/main/resources/application.yml index a45951abdff..6aa2ab8a877 100644 --- a/apps/generer-synt-amelding-service/src/main/resources/application.yml +++ b/apps/generer-synt-amelding-service/src/main/resources/application.yml @@ -4,6 +4,8 @@ spring: description: App for å generere syntetiske ameldinger. cluster: dev-gcp namespace: dolly + config: + import: "classpath:dolly-application.yml" security: oauth2: resourceserver: @@ -14,37 +16,9 @@ spring: issuer-uri: ${TOKEN_X_ISSUER} accepted-audience: ${TOKEN_X_CLIENT_ID} -springdoc: - swagger-ui: - disable-swagger-default-url: true - url: /v3/api-docs - consumers: synt-amelding: url: https://synthdata-amelding.dev.intern.nav.no cluster: dev-gcp namespace: dolly name: synthdata-amelding - -management: - endpoints: - enabled-by-default: true - web: - base-path: /internal - exposure: - include: prometheus,health - path-mapping: - prometheus: metrics - endpoint: - prometheus: - enabled: true - prometheus: - metrics: - export: - enabled: true -server: - error: - include-message: always - servlet: - encoding: - charset: UTF-8 diff --git a/apps/generer-synt-amelding-service/src/test/java/no/nav/registre/testnorge/generersyntameldingservice/consumer/SyntAmeldingConsumerTest.java b/apps/generer-synt-amelding-service/src/test/java/no/nav/registre/testnorge/generersyntameldingservice/consumer/SyntAmeldingConsumerTest.java index 4459b713e06..a947d6853f4 100644 --- a/apps/generer-synt-amelding-service/src/test/java/no/nav/registre/testnorge/generersyntameldingservice/consumer/SyntAmeldingConsumerTest.java +++ b/apps/generer-synt-amelding-service/src/test/java/no/nav/registre/testnorge/generersyntameldingservice/consumer/SyntAmeldingConsumerTest.java @@ -1,7 +1,7 @@ package no.nav.registre.testnorge.generersyntameldingservice.consumer; import no.nav.registre.testnorge.generersyntameldingservice.domain.ArbeidsforholdType; -import no.nav.dolly.libs.nais.DollySpringBootTest; +import no.nav.dolly.libs.test.DollySpringBootTest; import no.nav.testnav.libs.domain.dto.aareg.amelding.Arbeidsforhold; import no.nav.testnav.libs.domain.dto.aareg.amelding.ArbeidsforholdPeriode; import no.nav.testnav.libs.securitycore.domain.AccessToken; diff --git a/apps/helsepersonell-service/config.yml b/apps/helsepersonell-service/config.yml index 1aaa9910aa7..b871b29d4ba 100644 --- a/apps/helsepersonell-service/config.yml +++ b/apps/helsepersonell-service/config.yml @@ -30,7 +30,7 @@ spec: rules: - application: dolly-backend liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 @@ -42,7 +42,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 diff --git a/apps/helsepersonell-service/src/main/java/no/nav/registre/testnorge/helsepersonellservice/HelsepersonellServiceApplicationStarter.java b/apps/helsepersonell-service/src/main/java/no/nav/registre/testnorge/helsepersonellservice/HelsepersonellServiceApplicationStarter.java index 1cfcb607001..b50e9c6c9fa 100644 --- a/apps/helsepersonell-service/src/main/java/no/nav/registre/testnorge/helsepersonellservice/HelsepersonellServiceApplicationStarter.java +++ b/apps/helsepersonell-service/src/main/java/no/nav/registre/testnorge/helsepersonellservice/HelsepersonellServiceApplicationStarter.java @@ -3,7 +3,9 @@ import no.nav.dolly.libs.nais.NaisEnvironmentApplicationContextInitializer; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +@EnableWebSecurity @SpringBootApplication public class HelsepersonellServiceApplicationStarter { public static void main(String[] args) { diff --git a/apps/helsepersonell-service/src/main/java/no/nav/registre/testnorge/helsepersonellservice/config/SecurityConfig.java b/apps/helsepersonell-service/src/main/java/no/nav/registre/testnorge/helsepersonellservice/config/SecurityConfig.java index 1f3aba47802..84b7fa89eb1 100644 --- a/apps/helsepersonell-service/src/main/java/no/nav/registre/testnorge/helsepersonellservice/config/SecurityConfig.java +++ b/apps/helsepersonell-service/src/main/java/no/nav/registre/testnorge/helsepersonellservice/config/SecurityConfig.java @@ -1,41 +1,26 @@ package no.nav.registre.testnorge.helsepersonellservice.config; +import no.nav.dolly.libs.security.config.DollyHttpSecurity; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Profile; -import org.springframework.core.annotation.Order; import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; -import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; - -@Order(1) -@EnableWebSecurity @Configuration -@Profile({ "prod", "dev" }) -public class SecurityConfig { +class SecurityConfig { @Bean - public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { - - httpSecurity.sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) + SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { + return httpSecurity + .sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) .csrf(AbstractHttpConfigurer::disable) - .authorizeHttpRequests(authorizeConfig -> authorizeConfig.requestMatchers( - "/internal/**", - "/webjars/**", - "/swagger-resources/**", - "/v3/api-docs/**", - "/swagger-ui/**", - "/swagger", - "/error", - "/swagger-ui.html" - ).permitAll().requestMatchers("/api/**").fullyAuthenticated()) - .oauth2ResourceServer(oauth2RSConfig -> oauth2RSConfig.jwt(Customizer.withDefaults())); - - return httpSecurity.build(); + .authorizeHttpRequests(DollyHttpSecurity.withDefaultHttpRequests()) + .oauth2ResourceServer(oauth2RSConfig -> oauth2RSConfig.jwt(Customizer.withDefaults())) + .build(); } + } diff --git a/apps/helsepersonell-service/src/main/resources/application.yml b/apps/helsepersonell-service/src/main/resources/application.yml index 21ea5b1a259..d1429f77feb 100644 --- a/apps/helsepersonell-service/src/main/resources/application.yml +++ b/apps/helsepersonell-service/src/main/resources/application.yml @@ -1,6 +1,8 @@ spring: application: name: testnav-helsepersonell-service + config: + import: "classpath:dolly-application.yml" codec: max-in-memory-size: 10MB security: @@ -11,33 +13,4 @@ spring: accepted-audience: ${AZURE_APP_CLIENT_ID}, api:// ${AZURE_APP_CLIENT_ID} tokenx: issuer-uri: ${TOKEN_X_ISSUER} - accepted-audience: ${TOKEN_X_CLIENT_ID} - -springdoc: - swagger-ui: - disable-swagger-default-url: true - url: /v3/api-docs - -management: - endpoints: - enabled-by-default: true - web: - base-path: /internal - exposure: - include: prometheus,health - path-mapping: - prometheus: metrics - endpoint: - prometheus: - enabled: true - prometheus: - metrics: - export: - enabled: true - -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always \ No newline at end of file + accepted-audience: ${TOKEN_X_CLIENT_ID} \ No newline at end of file diff --git a/apps/helsepersonell-service/src/test/java/no/nav/registre/testnorge/helsepersonellservice/ApplicationContextTest.java b/apps/helsepersonell-service/src/test/java/no/nav/registre/testnorge/helsepersonellservice/ApplicationContextTest.java index 7e969fd08df..e0be0c59a8e 100644 --- a/apps/helsepersonell-service/src/test/java/no/nav/registre/testnorge/helsepersonellservice/ApplicationContextTest.java +++ b/apps/helsepersonell-service/src/test/java/no/nav/registre/testnorge/helsepersonellservice/ApplicationContextTest.java @@ -1,16 +1,8 @@ package no.nav.registre.testnorge.helsepersonellservice; -import no.nav.dolly.libs.nais.DollySpringBootTest; -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import no.nav.dolly.libs.test.DollySpringBootTest; +import no.nav.dolly.libs.test.DollyApplicationContextTest; @DollySpringBootTest -class ApplicationContextTest { - - @Test - void load_app_context() { - assertThat(true).isTrue(); - } - +class ApplicationContextTest extends DollyApplicationContextTest { } diff --git a/apps/inntektsmelding-generator-service/config.yml b/apps/inntektsmelding-generator-service/config.yml index 057547655fb..7d12854b03f 100644 --- a/apps/inntektsmelding-generator-service/config.yml +++ b/apps/inntektsmelding-generator-service/config.yml @@ -25,7 +25,7 @@ spec: - application: testnav-inntektsmelding-service cluster: dev-gcp liveness: - path: /internal/isAlive + path: /internal/health/liveness periodSeconds: 30 initialDelay: 30 observability: @@ -36,7 +36,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 30 prometheus: enabled: true diff --git a/apps/inntektsmelding-generator-service/src/main/java/no/nav/testnav/inntektsmeldinggeneratorservice/InntektsmeldingGeneratorApplicationStarter.java b/apps/inntektsmelding-generator-service/src/main/java/no/nav/testnav/inntektsmeldinggeneratorservice/InntektsmeldingGeneratorApplicationStarter.java index eecc5cf70aa..0090e75ff20 100644 --- a/apps/inntektsmelding-generator-service/src/main/java/no/nav/testnav/inntektsmeldinggeneratorservice/InntektsmeldingGeneratorApplicationStarter.java +++ b/apps/inntektsmelding-generator-service/src/main/java/no/nav/testnav/inntektsmeldinggeneratorservice/InntektsmeldingGeneratorApplicationStarter.java @@ -3,7 +3,9 @@ import no.nav.dolly.libs.nais.NaisEnvironmentApplicationContextInitializer; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +@EnableWebSecurity @SpringBootApplication public class InntektsmeldingGeneratorApplicationStarter { public static void main(String[] args) { diff --git a/apps/inntektsmelding-generator-service/src/main/java/no/nav/testnav/inntektsmeldinggeneratorservice/config/SecurityConfig.java b/apps/inntektsmelding-generator-service/src/main/java/no/nav/testnav/inntektsmeldinggeneratorservice/config/SecurityConfig.java index b5aca612346..22ebae8fae0 100644 --- a/apps/inntektsmelding-generator-service/src/main/java/no/nav/testnav/inntektsmeldinggeneratorservice/config/SecurityConfig.java +++ b/apps/inntektsmelding-generator-service/src/main/java/no/nav/testnav/inntektsmeldinggeneratorservice/config/SecurityConfig.java @@ -1,37 +1,27 @@ package no.nav.testnav.inntektsmeldinggeneratorservice.config; +import no.nav.dolly.libs.security.config.DollyHttpSecurity; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Profile; import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; -import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; -@EnableWebSecurity @Configuration -@Profile({ "prod", "dev" }) -public class SecurityConfig { +@Profile({"prod", "local"}) +class SecurityConfig { @Bean - public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { - - httpSecurity.sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) + SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { + return httpSecurity + .sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) .csrf(AbstractHttpConfigurer::disable) - .authorizeHttpRequests(authorizeConfig -> authorizeConfig.requestMatchers( - "/internal/**", - "/webjars/**", - "/swagger-resources/**", - "/v3/api-docs/**", - "/swagger-ui/**", - "/swagger", - "/error", - "/swagger-ui.html" - ).permitAll().requestMatchers("/api/**").fullyAuthenticated()) - .oauth2ResourceServer(oauth2RSConfig -> oauth2RSConfig.jwt(Customizer.withDefaults())); - - return httpSecurity.build(); + .authorizeHttpRequests(DollyHttpSecurity.withDefaultHttpRequests()) + .oauth2ResourceServer(oauth2RSConfig -> oauth2RSConfig.jwt(Customizer.withDefaults())) + .build(); } + } diff --git a/apps/inntektsmelding-generator-service/src/main/resources/application.yml b/apps/inntektsmelding-generator-service/src/main/resources/application.yml index 2e9697d655d..c4acee9f19a 100644 --- a/apps/inntektsmelding-generator-service/src/main/resources/application.yml +++ b/apps/inntektsmelding-generator-service/src/main/resources/application.yml @@ -2,38 +2,11 @@ spring: application: name: testnav-inntektsmelding-generator-service description: Tjeneste for generering av inntektsmelding i xml format. + config: + import: "classpath:dolly-application.yml" security: oauth2: resourceserver: aad: issuer-uri: ${AZURE_OPENID_CONFIG_ISSUER} - accepted-audience: ${AZURE_APP_CLIENT_ID}, api:// ${AZURE_APP_CLIENT_ID} - -springdoc: - swagger-ui: - disable-swagger-default-url: true - url: /v3/api-docs - -management: - endpoints: - enabled-by-default: true - web: - base-path: /internal - exposure: - include: prometheus,health - path-mapping: - prometheus: metrics - endpoint: - prometheus: - enabled: true - prometheus: - metrics: - export: - enabled: true - -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always \ No newline at end of file + accepted-audience: ${AZURE_APP_CLIENT_ID}, api:// ${AZURE_APP_CLIENT_ID} \ No newline at end of file diff --git a/apps/inntektsmelding-generator-service/src/test/java/no/nav/testnav/inntektsmeldinggeneratorservice/provider/v2/InntektsmeldingV2ControllerTest.java b/apps/inntektsmelding-generator-service/src/test/java/no/nav/testnav/inntektsmeldinggeneratorservice/provider/v2/InntektsmeldingV2ControllerTest.java index aa504dc4a4b..1f1c875220e 100644 --- a/apps/inntektsmelding-generator-service/src/test/java/no/nav/testnav/inntektsmeldinggeneratorservice/provider/v2/InntektsmeldingV2ControllerTest.java +++ b/apps/inntektsmelding-generator-service/src/test/java/no/nav/testnav/inntektsmeldinggeneratorservice/provider/v2/InntektsmeldingV2ControllerTest.java @@ -1,6 +1,6 @@ package no.nav.testnav.inntektsmeldinggeneratorservice.provider.v2; -import no.nav.dolly.libs.nais.DollySpringBootTest; +import no.nav.dolly.libs.test.DollySpringBootTest; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; diff --git a/apps/inntektsmelding-service/config.yml b/apps/inntektsmelding-service/config.yml index cbc9958281d..7b379c7be8b 100644 --- a/apps/inntektsmelding-service/config.yml +++ b/apps/inntektsmelding-service/config.yml @@ -39,7 +39,7 @@ spec: databases: - name: testnav-inntektsmelding-service-db liveness: - path: /internal/isAlive + path: /internal/health/liveness periodSeconds: 30 initialDelay: 30 observability: @@ -50,7 +50,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 30 prometheus: enabled: true diff --git a/apps/inntektsmelding-service/src/main/java/no/nav/registre/testnav/inntektsmeldingservice/controller/StatusController.java b/apps/inntektsmelding-service/src/main/java/no/nav/registre/testnav/inntektsmeldingservice/controller/StatusController.java index bda4334d916..0c5c7d88600 100644 --- a/apps/inntektsmelding-service/src/main/java/no/nav/registre/testnav/inntektsmeldingservice/controller/StatusController.java +++ b/apps/inntektsmelding-service/src/main/java/no/nav/registre/testnav/inntektsmeldingservice/controller/StatusController.java @@ -18,8 +18,8 @@ public Map getStatus() { var statusWebClient = WebClient.builder().build(); var status = checkConsumerStatus( - "https://testnav-inntektsmelding-generator-service.intern.dev.nav.no/internal/isAlive", - "https://testnav-inntektsmelding-generator-service.intern.dev.nav.no/internal/isReady", + "https://testnav-inntektsmelding-generator-service.intern.dev.nav.no/internal/health/liveness", + "https://testnav-inntektsmelding-generator-service.intern.dev.nav.no/internal/health/readiness", statusWebClient); return Map.of( diff --git a/apps/inntektsmelding-service/src/main/resources/application.yml b/apps/inntektsmelding-service/src/main/resources/application.yml index adabbd20f19..7079fb57e26 100644 --- a/apps/inntektsmelding-service/src/main/resources/application.yml +++ b/apps/inntektsmelding-service/src/main/resources/application.yml @@ -1,4 +1,6 @@ spring: + config: + import: "classpath:dolly-application.yml" jpa: properties: hibernate: @@ -14,11 +16,6 @@ spring: issuer-uri: ${AZURE_OPENID_CONFIG_ISSUER} accepted-audience: ${AZURE_APP_CLIENT_ID}, api:// ${AZURE_APP_CLIENT_ID} -springdoc: - swagger-ui: - disable-swagger-default-url: true - url: /v3/api-docs - consumers: inntektsmelding-generator-service: url: http://testnav-inntektsmelding-generator-service.dolly.svc.cluster.local @@ -29,28 +26,4 @@ consumers: url: https://testnav-dokarkiv-proxy.dev-fss-pub.nais.io name: testnav-dokarkiv-proxy cluster: dev-fss - namespace: dolly - -management: - endpoints: - enabled-by-default: true - web: - base-path: /internal - exposure: - include: prometheus,health - path-mapping: - prometheus: metrics - endpoint: - prometheus: - enabled: true - prometheus: - metrics: - export: - enabled: true - -server: - error: - include-message: always - servlet: - encoding: - charset: UTF-8 \ No newline at end of file + namespace: dolly \ No newline at end of file diff --git a/apps/inntektsmelding-service/src/test/java/no/nav/registre/testnav/inntektsmeldingservice/controller/InntektsmeldingControllerTest.java b/apps/inntektsmelding-service/src/test/java/no/nav/registre/testnav/inntektsmeldingservice/controller/InntektsmeldingControllerTest.java index 0c4fcf2c5fc..cc5ee09f018 100644 --- a/apps/inntektsmelding-service/src/test/java/no/nav/registre/testnav/inntektsmeldingservice/controller/InntektsmeldingControllerTest.java +++ b/apps/inntektsmelding-service/src/test/java/no/nav/registre/testnav/inntektsmeldingservice/controller/InntektsmeldingControllerTest.java @@ -3,7 +3,7 @@ import lombok.extern.slf4j.Slf4j; import no.nav.registre.testnav.inntektsmeldingservice.consumer.DokmotConsumer; import no.nav.registre.testnav.inntektsmeldingservice.consumer.GenererInntektsmeldingConsumer; -import no.nav.dolly.libs.nais.DollySpringBootTest; +import no.nav.dolly.libs.test.DollySpringBootTest; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.ValueSource; diff --git a/apps/jenkins-batch-status-service/config.yml b/apps/jenkins-batch-status-service/config.yml index 2766e1b8164..1eb7f328d42 100644 --- a/apps/jenkins-batch-status-service/config.yml +++ b/apps/jenkins-batch-status-service/config.yml @@ -31,7 +31,7 @@ spec: enabled: true tenant: nav.no liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 @@ -43,7 +43,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 diff --git a/apps/jenkins-batch-status-service/src/main/java/no/nav/registre/testnorge/jenkinsbatchstatusservice/JenkinsBatchStatusServiceApplicationStarter.java b/apps/jenkins-batch-status-service/src/main/java/no/nav/registre/testnorge/jenkinsbatchstatusservice/JenkinsBatchStatusServiceApplicationStarter.java index 12ce875d2bf..cab41d23797 100644 --- a/apps/jenkins-batch-status-service/src/main/java/no/nav/registre/testnorge/jenkinsbatchstatusservice/JenkinsBatchStatusServiceApplicationStarter.java +++ b/apps/jenkins-batch-status-service/src/main/java/no/nav/registre/testnorge/jenkinsbatchstatusservice/JenkinsBatchStatusServiceApplicationStarter.java @@ -3,7 +3,9 @@ import no.nav.dolly.libs.nais.NaisEnvironmentApplicationContextInitializer; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +@EnableWebSecurity @SpringBootApplication public class JenkinsBatchStatusServiceApplicationStarter { public static void main(String[] args) { diff --git a/apps/jenkins-batch-status-service/src/main/java/no/nav/registre/testnorge/jenkinsbatchstatusservice/config/SecurityConfig.java b/apps/jenkins-batch-status-service/src/main/java/no/nav/registre/testnorge/jenkinsbatchstatusservice/config/SecurityConfig.java index 32c19a92645..e0be0dab378 100644 --- a/apps/jenkins-batch-status-service/src/main/java/no/nav/registre/testnorge/jenkinsbatchstatusservice/config/SecurityConfig.java +++ b/apps/jenkins-batch-status-service/src/main/java/no/nav/registre/testnorge/jenkinsbatchstatusservice/config/SecurityConfig.java @@ -1,38 +1,26 @@ package no.nav.registre.testnorge.jenkinsbatchstatusservice.config; +import no.nav.dolly.libs.security.config.DollyHttpSecurity; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Profile; import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; -import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; -@EnableWebSecurity @Configuration -@Profile({ "prod", "dev" }) -public class SecurityConfig { +class SecurityConfig { @Bean - public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { - - httpSecurity.sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) + SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { + return httpSecurity + .sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) .csrf(AbstractHttpConfigurer::disable) - .authorizeHttpRequests(authorizeConfig -> authorizeConfig.requestMatchers( - "/internal/**", - "/webjars/**", - "/swagger-resources/**", - "/v3/api-docs/**", - "/swagger-ui/**", - "/swagger", - "/error", - "/swagger-ui.html" - ).permitAll().requestMatchers("/api/**").fullyAuthenticated()) - .oauth2ResourceServer(oauth2RSConfig -> oauth2RSConfig.jwt(Customizer.withDefaults())); - - return httpSecurity.build(); + .authorizeHttpRequests(DollyHttpSecurity.withDefaultHttpRequests()) + .oauth2ResourceServer(oauth2RSConfig -> oauth2RSConfig.jwt(Customizer.withDefaults())) + .build(); } + } diff --git a/apps/jenkins-batch-status-service/src/main/resources/application.yml b/apps/jenkins-batch-status-service/src/main/resources/application.yml index c09b76ed0d5..941cff1ca12 100644 --- a/apps/jenkins-batch-status-service/src/main/resources/application.yml +++ b/apps/jenkins-batch-status-service/src/main/resources/application.yml @@ -3,6 +3,8 @@ spring: name: jenkins-batch-status-service version: application.version.todo #TODO Finn ut hvordan denne kan settes fra gradle description: Tjeneste for å hente ut batch status fra EREG. + config: + import: "classpath:dolly-application.yml" security: oauth2: resourceserver: @@ -13,11 +15,6 @@ spring: issuer-uri: ${TOKEN_X_ISSUER} accepted-audience: ${TOKEN_X_CLIENT_ID} -springdoc: - swagger-ui: - disable-swagger-default-url: true - url: /v3/api-docs - consumers: jenkins: url: https://testnorge-batch-adeo-proxy.dev-fss-pub.nais.io @@ -28,28 +25,4 @@ consumers: url: http://organisasjon-bestilling-service.dolly.svc.cluster.local name: organisasjon-bestilling-service cluster: dev-gcp - namespace: dolly - -management: - endpoints: - enabled-by-default: true - web: - base-path: /internal - exposure: - include: prometheus,health - path-mapping: - prometheus: metrics - endpoint: - prometheus: - enabled: true - prometheus: - metrics: - export: - enabled: true - -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always \ No newline at end of file + namespace: dolly \ No newline at end of file diff --git a/apps/jenkins-batch-status-service/src/test/java/no/nav/registre/testnorge/jenkinsbatchstatusservice/ApplicationContextTest.java b/apps/jenkins-batch-status-service/src/test/java/no/nav/registre/testnorge/jenkinsbatchstatusservice/ApplicationContextTest.java index 6afe494109c..ffe9212a36b 100644 --- a/apps/jenkins-batch-status-service/src/test/java/no/nav/registre/testnorge/jenkinsbatchstatusservice/ApplicationContextTest.java +++ b/apps/jenkins-batch-status-service/src/test/java/no/nav/registre/testnorge/jenkinsbatchstatusservice/ApplicationContextTest.java @@ -1,16 +1,8 @@ package no.nav.registre.testnorge.jenkinsbatchstatusservice; -import no.nav.dolly.libs.nais.DollySpringBootTest; -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import no.nav.dolly.libs.test.DollySpringBootTest; +import no.nav.dolly.libs.test.DollyApplicationContextTest; @DollySpringBootTest -class ApplicationContextTest { - - @Test - void load_app_context() { - assertThat(true).isTrue(); - } - +class ApplicationContextTest extends DollyApplicationContextTest { } diff --git a/apps/joark-dokument-service/config.yml b/apps/joark-dokument-service/config.yml index a6f7b423e59..ea23af46d0a 100644 --- a/apps/joark-dokument-service/config.yml +++ b/apps/joark-dokument-service/config.yml @@ -28,7 +28,7 @@ spec: enabled: true tenant: nav.no liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 30 periodSeconds: 30 failureThreshold: 500 @@ -40,7 +40,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 30 failureThreshold: 500 prometheus: diff --git a/apps/joark-dokument-service/src/main/java/no/nav/testnav/joarkdokumentservice/JoarkDokumentServiceApplicationStarter.java b/apps/joark-dokument-service/src/main/java/no/nav/testnav/joarkdokumentservice/JoarkDokumentServiceApplicationStarter.java index 6f558bb9ad8..23c9d93d8b9 100644 --- a/apps/joark-dokument-service/src/main/java/no/nav/testnav/joarkdokumentservice/JoarkDokumentServiceApplicationStarter.java +++ b/apps/joark-dokument-service/src/main/java/no/nav/testnav/joarkdokumentservice/JoarkDokumentServiceApplicationStarter.java @@ -3,7 +3,9 @@ import no.nav.dolly.libs.nais.NaisEnvironmentApplicationContextInitializer; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +@EnableWebSecurity @SpringBootApplication public class JoarkDokumentServiceApplicationStarter { public static void main(String[] args) { diff --git a/apps/joark-dokument-service/src/main/java/no/nav/testnav/joarkdokumentservice/config/SecurityConfig.java b/apps/joark-dokument-service/src/main/java/no/nav/testnav/joarkdokumentservice/config/SecurityConfig.java index 94b83eb367d..cb626b53981 100644 --- a/apps/joark-dokument-service/src/main/java/no/nav/testnav/joarkdokumentservice/config/SecurityConfig.java +++ b/apps/joark-dokument-service/src/main/java/no/nav/testnav/joarkdokumentservice/config/SecurityConfig.java @@ -1,37 +1,25 @@ package no.nav.testnav.joarkdokumentservice.config; +import no.nav.dolly.libs.security.config.DollyHttpSecurity; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Profile; import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; -import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; -@EnableWebSecurity @Configuration -@Profile({ "prod", "dev" }) -public class SecurityConfig { - @Bean - public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { +class SecurityConfig { - httpSecurity.sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) + @Bean + SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { + return httpSecurity.sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) .csrf(AbstractHttpConfigurer::disable) - .authorizeHttpRequests(authorizeConfig -> authorizeConfig.requestMatchers( - "/internal/**", - "/webjars/**", - "/swagger-resources/**", - "/v3/api-docs/**", - "/swagger-ui/**", - "/swagger", - "/error", - "/swagger-ui.html" - ).permitAll().requestMatchers("/api/**").fullyAuthenticated()) - .oauth2ResourceServer(oauth2RSConfig -> oauth2RSConfig.jwt(Customizer.withDefaults())); - - return httpSecurity.build(); + .authorizeHttpRequests(DollyHttpSecurity.withDefaultHttpRequests()) + .oauth2ResourceServer(oauth2RSConfig -> oauth2RSConfig.jwt(Customizer.withDefaults())) + .build(); } + } diff --git a/apps/joark-dokument-service/src/main/resources/application.yml b/apps/joark-dokument-service/src/main/resources/application.yml index 477720a9894..9af2dd550b7 100644 --- a/apps/joark-dokument-service/src/main/resources/application.yml +++ b/apps/joark-dokument-service/src/main/resources/application.yml @@ -1,5 +1,3 @@ - - consumers.testnav-saf-proxy: url: https://testnav-saf-proxy.dev-fss-pub.nais.io cluster: dev-fss @@ -10,6 +8,8 @@ spring: application: name: testnav-joark-dokument-service description: App for å hente ut joark dokumenter. + config: + import: "classpath:dolly-application.yml" security: oauth2: resourceserver: @@ -18,33 +18,4 @@ spring: accepted-audience: ${AZURE_APP_CLIENT_ID}, api:// ${AZURE_APP_CLIENT_ID} tokenx: issuer-uri: ${TOKEN_X_ISSUER} - accepted-audience: ${TOKEN_X_CLIENT_ID} - -springdoc: - swagger-ui: - disable-swagger-default-url: true - url: /v3/api-docs - -management: - endpoints: - enabled-by-default: true - web: - base-path: /internal - exposure: - include: prometheus,health - path-mapping: - prometheus: metrics - endpoint: - prometheus: - enabled: true - prometheus: - metrics: - export: - enabled: true - -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always \ No newline at end of file + accepted-audience: ${TOKEN_X_CLIENT_ID} \ No newline at end of file diff --git a/apps/joark-dokument-service/src/test/java/no/nav/testnav/joarkdokumentservice/ApplicationContextTest.java b/apps/joark-dokument-service/src/test/java/no/nav/testnav/joarkdokumentservice/ApplicationContextTest.java index 7eab1df0212..631ab2c1429 100644 --- a/apps/joark-dokument-service/src/test/java/no/nav/testnav/joarkdokumentservice/ApplicationContextTest.java +++ b/apps/joark-dokument-service/src/test/java/no/nav/testnav/joarkdokumentservice/ApplicationContextTest.java @@ -1,16 +1,8 @@ package no.nav.testnav.joarkdokumentservice; -import no.nav.dolly.libs.nais.DollySpringBootTest; -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import no.nav.dolly.libs.test.DollySpringBootTest; +import no.nav.dolly.libs.test.DollyApplicationContextTest; @DollySpringBootTest -class ApplicationContextTest { - - @Test - void load_app_context() { - assertThat(true).isTrue(); - } - +class ApplicationContextTest extends DollyApplicationContextTest { } diff --git a/apps/kodeverk-service/config.yml b/apps/kodeverk-service/config.yml index f1bedff64d4..702200211b2 100644 --- a/apps/kodeverk-service/config.yml +++ b/apps/kodeverk-service/config.yml @@ -34,7 +34,7 @@ spec: enabled: true tenant: nav.no liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 4 periodSeconds: 5 failureThreshold: 10 @@ -46,7 +46,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 4 periodSeconds: 5 failureThreshold: 10 diff --git a/apps/kodeverk-service/src/main/java/no/nav/testnav/kodeverkservice/config/SecurityConfig.java b/apps/kodeverk-service/src/main/java/no/nav/testnav/kodeverkservice/config/SecurityConfig.java index c4b0422844b..b922ea12014 100644 --- a/apps/kodeverk-service/src/main/java/no/nav/testnav/kodeverkservice/config/SecurityConfig.java +++ b/apps/kodeverk-service/src/main/java/no/nav/testnav/kodeverkservice/config/SecurityConfig.java @@ -2,7 +2,6 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Profile; import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; @@ -12,8 +11,7 @@ @EnableWebSecurity @Configuration -@Profile({"prod", "local"}) -public class SecurityConfig { +class SecurityConfig { @Bean public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { diff --git a/apps/kodeverk-service/src/main/resources/application.yml b/apps/kodeverk-service/src/main/resources/application.yml index 8560362169b..bb0c0700433 100644 --- a/apps/kodeverk-service/src/main/resources/application.yml +++ b/apps/kodeverk-service/src/main/resources/application.yml @@ -2,6 +2,8 @@ spring: application: name: testnav-kodeverk-service description: Tjeneste for å hente fra felles kodeverk. + config: + import: "classpath:dolly-application.yml" security: oauth2: resourceserver: @@ -9,35 +11,6 @@ spring: issuer-uri: ${AZURE_OPENID_CONFIG_ISSUER} accepted-audience: ${AZURE_APP_CLIENT_ID}, api:// ${AZURE_APP_CLIENT_ID} -springdoc: - swagger-ui: - disable-swagger-default-url: true - url: /v3/api-docs - -management: - endpoints: - enabled-by-default: true - web: - base-path: /internal - exposure: - include: prometheus,health - path-mapping: - prometheus: metrics - endpoint: - prometheus: - enabled: true - prometheus: - metrics: - export: - enabled: true - -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always - consumers: kodeverk-api: name: kodeverk-api diff --git a/apps/kodeverk-service/src/test/java/no/nav/testnav/kodeverkservice/ApplicationContextTest.java b/apps/kodeverk-service/src/test/java/no/nav/testnav/kodeverkservice/ApplicationContextTest.java index cb204bd5913..e33d50a3d46 100644 --- a/apps/kodeverk-service/src/test/java/no/nav/testnav/kodeverkservice/ApplicationContextTest.java +++ b/apps/kodeverk-service/src/test/java/no/nav/testnav/kodeverkservice/ApplicationContextTest.java @@ -1,16 +1,8 @@ package no.nav.testnav.kodeverkservice; -import no.nav.dolly.libs.nais.DollySpringBootTest; -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import no.nav.dolly.libs.test.DollySpringBootTest; +import no.nav.dolly.libs.test.DollyApplicationContextTest; @DollySpringBootTest -class ApplicationContextTest { - - @Test - void load_app_context() { - assertThat(true).isTrue(); - } - +class ApplicationContextTest extends DollyApplicationContextTest { } diff --git a/apps/levende-arbeidsforhold-ansettelse/src/main/resources/application.yml b/apps/levende-arbeidsforhold-ansettelse/src/main/resources/application.yml index 538e98af0ae..395fea1f2c0 100644 --- a/apps/levende-arbeidsforhold-ansettelse/src/main/resources/application.yml +++ b/apps/levende-arbeidsforhold-ansettelse/src/main/resources/application.yml @@ -3,6 +3,8 @@ spring: name: testnav-levende-arbeidsforhold-ansettelse version: 1 description: App for å ansette personer i en organisasjon + config: + import: "classpath:dolly-application.yml" security: oauth2: resourceserver: @@ -14,39 +16,11 @@ spring: enabled: true baseline-on-migrate: true -springdoc: - swagger-ui: - disable-swagger-default-url: true - url: /v3/api-docs - management: - endpoints: - access: - default: read_only - web: - base-path: /internal - exposure: - include: prometheus,health - path-mapping: - prometheus: metrics - endpoint: - health: - show-details: always - prometheus: - metrics: - export: - enabled: true health: elasticsearch: enabled: false -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always - consumers: testnav-aareg-proxy: name: testnav-aareg-proxy diff --git a/apps/levende-arbeidsforhold-ansettelse/src/test/java/no/nav/testnav/levendearbeidsforholdansettelse/ApplicationContextTest.java b/apps/levende-arbeidsforhold-ansettelse/src/test/java/no/nav/testnav/levendearbeidsforholdansettelse/ApplicationContextTest.java new file mode 100644 index 00000000000..1cec6de3a8e --- /dev/null +++ b/apps/levende-arbeidsforhold-ansettelse/src/test/java/no/nav/testnav/levendearbeidsforholdansettelse/ApplicationContextTest.java @@ -0,0 +1,8 @@ +package no.nav.testnav.levendearbeidsforholdansettelse; + +import no.nav.dolly.libs.test.DollySpringBootTest; +import no.nav.dolly.libs.test.DollyApplicationContextTest; + +@DollySpringBootTest +class ApplicationContextTest extends DollyApplicationContextTest { +} diff --git a/apps/levende-arbeidsforhold-ansettelse/src/test/java/no/nav/testnav/levendearbeidsforholdansettelse/LevendeArbeidsforholdAnsettelseApplicationTests.java b/apps/levende-arbeidsforhold-ansettelse/src/test/java/no/nav/testnav/levendearbeidsforholdansettelse/LevendeArbeidsforholdAnsettelseApplicationTests.java deleted file mode 100644 index 418c2c82f8e..00000000000 --- a/apps/levende-arbeidsforhold-ansettelse/src/test/java/no/nav/testnav/levendearbeidsforholdansettelse/LevendeArbeidsforholdAnsettelseApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package no.nav.testnav.levendearbeidsforholdansettelse; - -import no.nav.dolly.libs.nais.DollySpringBootTest; -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; - -@DollySpringBootTest -class LevendeArbeidsforholdAnsettelseApplicationTests { - - @Test - void load_app_context() { - assertThat(true).isTrue(); - } - -} diff --git a/apps/levende-arbeidsforhold-scheduler/config.yml b/apps/levende-arbeidsforhold-scheduler/config.yml index 0c188ffd713..5a02cc39a90 100644 --- a/apps/levende-arbeidsforhold-scheduler/config.yml +++ b/apps/levende-arbeidsforhold-scheduler/config.yml @@ -24,7 +24,7 @@ spec: enabled: true tenant: nav.no liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 @@ -36,7 +36,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 diff --git a/apps/levende-arbeidsforhold-scheduler/src/main/resources/application.yml b/apps/levende-arbeidsforhold-scheduler/src/main/resources/application.yml index dbf213cd6ce..1704af749ba 100644 --- a/apps/levende-arbeidsforhold-scheduler/src/main/resources/application.yml +++ b/apps/levende-arbeidsforhold-scheduler/src/main/resources/application.yml @@ -3,6 +3,8 @@ spring: name: testnav-levende-arbeidsforhold-scheduler version: 1 description: App for å ansette personer i en organisasjon + config: + import: "classpath:dolly-application.yml" security: oauth2: resourceserver: @@ -10,34 +12,6 @@ spring: issuer-uri: ${AZURE_OPENID_CONFIG_ISSUER} accepted-audience: ${AZURE_APP_CLIENT_ID}, api:// ${AZURE_APP_CLIENT_ID} -springdoc: - swagger-ui: - disable-swagger-default-url: true - url: /v3/api-docs - -management: - endpoints: - access: - default: read_only - web: - base-path: /internal - exposure: - include: prometheus,health - path-mapping: - prometheus: metrics - prometheus: - metrics: - export: - enabled: true - -server: - port: 8080 - servlet: - encoding: - charset: UTF-8 - error: - include-message: always - consumers: levende-arbeidsforhold-ansettelse: name: testnav-levende-arbeidsforhold-ansettelse diff --git a/apps/levende-arbeidsforhold-scheduler/src/test/java/no/nav/testnav/levendearbeidsforholdscheduler/ApplicationContextTest.java b/apps/levende-arbeidsforhold-scheduler/src/test/java/no/nav/testnav/levendearbeidsforholdscheduler/ApplicationContextTest.java new file mode 100644 index 00000000000..d9d1244b5ae --- /dev/null +++ b/apps/levende-arbeidsforhold-scheduler/src/test/java/no/nav/testnav/levendearbeidsforholdscheduler/ApplicationContextTest.java @@ -0,0 +1,8 @@ +package no.nav.testnav.levendearbeidsforholdscheduler; + +import no.nav.dolly.libs.test.DollySpringBootTest; +import no.nav.dolly.libs.test.DollyApplicationContextTest; + +@DollySpringBootTest +class ApplicationContextTest extends DollyApplicationContextTest { +} \ No newline at end of file diff --git a/apps/levende-arbeidsforhold-scheduler/src/test/java/no/nav/testnav/levendearbeidsforholdscheduler/LevendeArbeidsforholdSchedulerApplicationTests.java b/apps/levende-arbeidsforhold-scheduler/src/test/java/no/nav/testnav/levendearbeidsforholdscheduler/LevendeArbeidsforholdSchedulerApplicationTests.java deleted file mode 100644 index 9295f1cff57..00000000000 --- a/apps/levende-arbeidsforhold-scheduler/src/test/java/no/nav/testnav/levendearbeidsforholdscheduler/LevendeArbeidsforholdSchedulerApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package no.nav.testnav.levendearbeidsforholdscheduler; - -import no.nav.dolly.libs.nais.DollySpringBootTest; -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; - -@DollySpringBootTest -class LevendeArbeidsforholdSchedulerApplicationTests { - - @Test - void contextLoads() { - assertThat(true).isTrue(); - } - -} diff --git a/apps/levende-arbeidsforhold-service/config.yml b/apps/levende-arbeidsforhold-service/config.yml index 07608fa5d08..826f9651e94 100644 --- a/apps/levende-arbeidsforhold-service/config.yml +++ b/apps/levende-arbeidsforhold-service/config.yml @@ -24,7 +24,7 @@ spec: enabled: true tenant: nav.no liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 @@ -36,7 +36,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 diff --git a/apps/levende-arbeidsforhold-service/src/main/resources/application.yml b/apps/levende-arbeidsforhold-service/src/main/resources/application.yml index bde3afafb81..4f89fa61260 100644 --- a/apps/levende-arbeidsforhold-service/src/main/resources/application.yml +++ b/apps/levende-arbeidsforhold-service/src/main/resources/application.yml @@ -3,6 +3,8 @@ spring: name: testnav-levende-arbeidsforhold-service version: 1 description: App for å avslutte arbeidsforhold ved dødsfall. + config: + import: "classpath:dolly-application.yml" security: oauth2: resourceserver: @@ -13,33 +15,6 @@ spring: consumer: group-id: testnav-levende-arbeidsforhold-service -springdoc: - swagger-ui: - disable-swagger-default-url: true - url: /v3/api-docs - -management: - endpoints: - access: - default: read_only - web: - base-path: /internal - exposure: - include: prometheus,health - path-mapping: - prometheus: metrics - prometheus: - metrics: - export: - enabled: true - -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always - consumers: testnav-aareg-proxy: name: testnav-aareg-proxy diff --git a/apps/levende-arbeidsforhold-service/src/test/java/no/nav/testnav/levendearbeidsforholdservice/ApplicationContextTest.java b/apps/levende-arbeidsforhold-service/src/test/java/no/nav/testnav/levendearbeidsforholdservice/ApplicationContextTest.java index 34362062790..9ca69c97275 100644 --- a/apps/levende-arbeidsforhold-service/src/test/java/no/nav/testnav/levendearbeidsforholdservice/ApplicationContextTest.java +++ b/apps/levende-arbeidsforhold-service/src/test/java/no/nav/testnav/levendearbeidsforholdservice/ApplicationContextTest.java @@ -1,16 +1,8 @@ package no.nav.testnav.levendearbeidsforholdservice; -import no.nav.dolly.libs.nais.DollySpringBootTest; -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import no.nav.dolly.libs.test.DollySpringBootTest; +import no.nav.dolly.libs.test.DollyApplicationContextTest; @DollySpringBootTest -class ApplicationContextTest { - - @Test - void load_app_context() { - assertThat(true).isTrue(); - } - +class ApplicationContextTest extends DollyApplicationContextTest { } diff --git a/apps/miljoer-service/config.yml b/apps/miljoer-service/config.yml index 22a893bf88d..48b51f36033 100644 --- a/apps/miljoer-service/config.yml +++ b/apps/miljoer-service/config.yml @@ -35,7 +35,7 @@ spec: - "https://testnav-miljoer-service.intern.dev.nav.no/login/oauth2/code/aad" - "http://localhost:8080/login/oauth2/code/aad" liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 30 periodSeconds: 30 failureThreshold: 500 @@ -47,7 +47,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 30 failureThreshold: 500 prometheus: diff --git a/apps/miljoer-service/src/main/java/no/nav/registre/testnorge/miljoerservice/MiljoerServiceApplicationStarter.java b/apps/miljoer-service/src/main/java/no/nav/registre/testnorge/miljoerservice/MiljoerServiceApplicationStarter.java index 0275c5ecb52..81b40d0a211 100644 --- a/apps/miljoer-service/src/main/java/no/nav/registre/testnorge/miljoerservice/MiljoerServiceApplicationStarter.java +++ b/apps/miljoer-service/src/main/java/no/nav/registre/testnorge/miljoerservice/MiljoerServiceApplicationStarter.java @@ -3,7 +3,9 @@ import no.nav.dolly.libs.nais.NaisEnvironmentApplicationContextInitializer; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +@EnableWebSecurity @SpringBootApplication public class MiljoerServiceApplicationStarter { public static void main(String[] args) { diff --git a/apps/miljoer-service/src/main/java/no/nav/registre/testnorge/miljoerservice/config/SecurityConfig.java b/apps/miljoer-service/src/main/java/no/nav/registre/testnorge/miljoerservice/config/SecurityConfig.java index 59c3b468d2a..72fe3f46d3e 100644 --- a/apps/miljoer-service/src/main/java/no/nav/registre/testnorge/miljoerservice/config/SecurityConfig.java +++ b/apps/miljoer-service/src/main/java/no/nav/registre/testnorge/miljoerservice/config/SecurityConfig.java @@ -1,37 +1,24 @@ package no.nav.registre.testnorge.miljoerservice.config; +import no.nav.dolly.libs.security.config.DollyHttpSecurity; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Profile; import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; -import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; - -@EnableWebSecurity @Configuration -@Profile({"prod", "dev"}) -public class SecurityConfig { +class SecurityConfig { @Bean - public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { - - httpSecurity.sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) + SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { + return httpSecurity + .sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) .csrf(AbstractHttpConfigurer::disable) - .authorizeHttpRequests(authorizeConfig -> authorizeConfig.requestMatchers( - "/internal/**", - "/webjars/**", - "/swagger-resources/**", - "/v3/api-docs/**", - "/swagger-ui/**", - "/swagger", - "/error", - "/swagger-ui.html" - ).permitAll().requestMatchers("/api/**").fullyAuthenticated()) - .oauth2ResourceServer(oauth2RSConfig -> oauth2RSConfig.jwt(Customizer.withDefaults())); - - return httpSecurity.build(); + .authorizeHttpRequests(DollyHttpSecurity.withDefaultHttpRequests()) + .oauth2ResourceServer(oauth2RSConfig -> oauth2RSConfig.jwt(Customizer.withDefaults())) + .build(); } + } diff --git a/apps/miljoer-service/src/main/resources/application.yml b/apps/miljoer-service/src/main/resources/application.yml index ba046b9b166..1d26ec1be4e 100644 --- a/apps/miljoer-service/src/main/resources/application.yml +++ b/apps/miljoer-service/src/main/resources/application.yml @@ -5,6 +5,8 @@ spring: application: name: miljoer-service description: App for å sjekke hvilke miljøer i test og preprod som er tilgjengelige nå. + config: + import: "classpath:dolly-application.yml" security: oauth2: resourceserver: @@ -13,31 +15,4 @@ spring: accepted-audience: ${AZURE_APP_CLIENT_ID}, api:// ${AZURE_APP_CLIENT_ID} tokenx: issuer-uri: ${TOKEN_X_ISSUER} - accepted-audience: ${TOKEN_X_CLIENT_ID} - -springdoc: - swagger-ui: - disable-swagger-default-url: true - url: /v3/api-docs - -management: - endpoints: - access: - default: read_only - web: - base-path: /internal - exposure: - include: prometheus,health - path-mapping: - prometheus: metrics - prometheus: - metrics: - export: - enabled: true - -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always \ No newline at end of file + accepted-audience: ${TOKEN_X_CLIENT_ID} \ No newline at end of file diff --git a/apps/miljoer-service/src/test/java/no/nav/registre/testnorge/miljoerservice/ApplicationContextTest.java b/apps/miljoer-service/src/test/java/no/nav/registre/testnorge/miljoerservice/ApplicationContextTest.java index 82b3de4e361..04f1308ae0f 100644 --- a/apps/miljoer-service/src/test/java/no/nav/registre/testnorge/miljoerservice/ApplicationContextTest.java +++ b/apps/miljoer-service/src/test/java/no/nav/registre/testnorge/miljoerservice/ApplicationContextTest.java @@ -1,16 +1,8 @@ package no.nav.registre.testnorge.miljoerservice; -import no.nav.dolly.libs.nais.DollySpringBootTest; -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import no.nav.dolly.libs.test.DollySpringBootTest; +import no.nav.dolly.libs.test.DollyApplicationContextTest; @DollySpringBootTest -class ApplicationContextTest { - - @Test - void load_app_context() { - assertThat(true).isTrue(); - } - +class ApplicationContextTest extends DollyApplicationContextTest { } diff --git a/apps/oppsummeringsdokument-service/config.yml b/apps/oppsummeringsdokument-service/config.yml index c1a0a466344..f7322fdfded 100644 --- a/apps/oppsummeringsdokument-service/config.yml +++ b/apps/oppsummeringsdokument-service/config.yml @@ -36,7 +36,7 @@ spec: enabled: true tenant: nav.no liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 @@ -48,7 +48,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 diff --git a/apps/oppsummeringsdokument-service/src/main/java/no/nav/testnav/apps/oppsummeringsdokumentservice/OppsummeringsdokumentServiceApplicationStarter.java b/apps/oppsummeringsdokument-service/src/main/java/no/nav/testnav/apps/oppsummeringsdokumentservice/OppsummeringsdokumentServiceApplicationStarter.java index 024fa3e54a2..8d5f796e9f8 100644 --- a/apps/oppsummeringsdokument-service/src/main/java/no/nav/testnav/apps/oppsummeringsdokumentservice/OppsummeringsdokumentServiceApplicationStarter.java +++ b/apps/oppsummeringsdokument-service/src/main/java/no/nav/testnav/apps/oppsummeringsdokumentservice/OppsummeringsdokumentServiceApplicationStarter.java @@ -5,7 +5,9 @@ import org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchDataAutoConfiguration; import org.springframework.boot.autoconfigure.elasticsearch.ElasticsearchRestClientAutoConfiguration; import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +@EnableWebSecurity @SpringBootApplication(exclude = {ElasticsearchDataAutoConfiguration.class, ElasticsearchRestClientAutoConfiguration.class}) public class OppsummeringsdokumentServiceApplicationStarter { public static void main(String[] args) { diff --git a/apps/oppsummeringsdokument-service/src/main/java/no/nav/testnav/apps/oppsummeringsdokumentservice/config/SecurityConfig.java b/apps/oppsummeringsdokument-service/src/main/java/no/nav/testnav/apps/oppsummeringsdokumentservice/config/SecurityConfig.java index 880f7ce71f9..5b8b81454ff 100644 --- a/apps/oppsummeringsdokument-service/src/main/java/no/nav/testnav/apps/oppsummeringsdokumentservice/config/SecurityConfig.java +++ b/apps/oppsummeringsdokument-service/src/main/java/no/nav/testnav/apps/oppsummeringsdokumentservice/config/SecurityConfig.java @@ -1,38 +1,26 @@ package no.nav.testnav.apps.oppsummeringsdokumentservice.config; +import no.nav.dolly.libs.security.config.DollyHttpSecurity; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Profile; import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; -import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; - -@EnableWebSecurity @Configuration -@Profile({ "prod", "local" }) -public class SecurityConfig { +@Profile({"prod", "local"}) +class SecurityConfig { @Bean - public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { - - httpSecurity.sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) + SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { + return httpSecurity.sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) .csrf(AbstractHttpConfigurer::disable) - .authorizeHttpRequests(authorizeConfig -> authorizeConfig.requestMatchers( - "/internal/**", - "/webjars/**", - "/swagger-resources/**", - "/v3/api-docs/**", - "/swagger-ui/**", - "/swagger", - "/error", - "/swagger-ui.html" - ).permitAll().requestMatchers("/api/**").fullyAuthenticated()) - .oauth2ResourceServer(oauth2RSConfig -> oauth2RSConfig.jwt(Customizer.withDefaults())); - - return httpSecurity.build(); + .authorizeHttpRequests(DollyHttpSecurity.withDefaultHttpRequests()) + .oauth2ResourceServer(oauth2RSConfig -> oauth2RSConfig.jwt(Customizer.withDefaults())) + .build(); } + } diff --git a/apps/oppsummeringsdokument-service/src/main/resources/application.yml b/apps/oppsummeringsdokument-service/src/main/resources/application.yml index a49b4ce5f22..6b2f6302c79 100644 --- a/apps/oppsummeringsdokument-service/src/main/resources/application.yml +++ b/apps/oppsummeringsdokument-service/src/main/resources/application.yml @@ -1,4 +1,6 @@ spring: + config: + import: "classpath:dolly-application.yml" security: oauth2: resourceserver: @@ -9,36 +11,9 @@ spring: name: oppsummeringsdokument-service description: Tjeneste for å sende inn oppsummeringsdokument til aareg og søke i innsendte oppsummeringsdokumenter. -springdoc: - swagger-ui: - disable-swagger-default-url: true - url: /v3/api-docs - consumers: aareg-synt-services: url: https://aareg-synt-services-proxy.dev-fss-pub.nais.io cluster: dev-fss namespace: dolly name: aareg-synt-services-proxy - -management: - endpoints: - access: - default: read_only - web: - base-path: /internal - exposure: - include: prometheus,health - path-mapping: - prometheus: metrics - prometheus: - metrics: - export: - enabled: true - -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always diff --git a/apps/organisasjon-bestilling-service/config.yml b/apps/organisasjon-bestilling-service/config.yml index db774afd77f..38e1d58b660 100644 --- a/apps/organisasjon-bestilling-service/config.yml +++ b/apps/organisasjon-bestilling-service/config.yml @@ -42,7 +42,7 @@ spec: databases: - name: organisasjon-bestilling-db liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 @@ -54,7 +54,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 diff --git a/apps/organisasjon-bestilling-service/src/main/java/no/nav/testnav/apps/organisasjonbestillingservice/config/SecurityConfig.java b/apps/organisasjon-bestilling-service/src/main/java/no/nav/testnav/apps/organisasjonbestillingservice/config/SecurityConfig.java index 69d657e5dad..a8d7694871b 100644 --- a/apps/organisasjon-bestilling-service/src/main/java/no/nav/testnav/apps/organisasjonbestillingservice/config/SecurityConfig.java +++ b/apps/organisasjon-bestilling-service/src/main/java/no/nav/testnav/apps/organisasjonbestillingservice/config/SecurityConfig.java @@ -2,7 +2,6 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Profile; import org.springframework.core.annotation.Order; import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; @@ -12,12 +11,10 @@ import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; - @Order(1) @EnableWebSecurity @Configuration -@Profile({"prod", "dev"}) -public class SecurityConfig { +class SecurityConfig { @Bean public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { diff --git a/apps/organisasjon-bestilling-service/src/main/resources/application.yml b/apps/organisasjon-bestilling-service/src/main/resources/application.yml index 54e9361c619..6fc1311eebb 100644 --- a/apps/organisasjon-bestilling-service/src/main/resources/application.yml +++ b/apps/organisasjon-bestilling-service/src/main/resources/application.yml @@ -2,6 +2,8 @@ spring: application: name: organisasjon-bestilling-service description: Tjeneste for å registere og hente ut organiasjonsbestilling status + config: + import: "classpath:dolly-application.yml" security: oauth2: resourceserver: @@ -9,36 +11,9 @@ spring: issuer-uri: ${AZURE_OPENID_CONFIG_ISSUER} accepted-audience: ${AZURE_APP_CLIENT_ID}, api:// ${AZURE_APP_CLIENT_ID} -springdoc: - swagger-ui: - disable-swagger-default-url: true - url: /v3/api-docs - consumers: jenkins: url: https://testnorge-batch-adeo-proxy.dev-fss-pub.nais.io name: testnorge-batch-adeo-proxy cluster: dev-fss - namespace: dolly - -management: - endpoints: - access: - default: read_only - web: - base-path: /internal - exposure: - include: prometheus,health - path-mapping: - prometheus: metrics - prometheus: - metrics: - export: - enabled: true - -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always \ No newline at end of file + namespace: dolly \ No newline at end of file diff --git a/apps/organisasjon-bestilling-service/src/test/java/no/nav/testnav/apps/organisasjonbestillingservice/ApplicationContextTest.java b/apps/organisasjon-bestilling-service/src/test/java/no/nav/testnav/apps/organisasjonbestillingservice/ApplicationContextTest.java index 0d75d92d974..a20bf8ac16c 100644 --- a/apps/organisasjon-bestilling-service/src/test/java/no/nav/testnav/apps/organisasjonbestillingservice/ApplicationContextTest.java +++ b/apps/organisasjon-bestilling-service/src/test/java/no/nav/testnav/apps/organisasjonbestillingservice/ApplicationContextTest.java @@ -1,16 +1,8 @@ package no.nav.testnav.apps.organisasjonbestillingservice; -import no.nav.dolly.libs.nais.DollySpringBootTest; -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import no.nav.dolly.libs.test.DollySpringBootTest; +import no.nav.dolly.libs.test.DollyApplicationContextTest; @DollySpringBootTest -class ApplicationContextTest { - - @Test - void load_app_context() { - assertThat(true).isTrue(); - } - +class ApplicationContextTest extends DollyApplicationContextTest { } \ No newline at end of file diff --git a/apps/organisasjon-faste-data-service/config.yml b/apps/organisasjon-faste-data-service/config.yml index 7bef804a88d..bd8d7320380 100644 --- a/apps/organisasjon-faste-data-service/config.yml +++ b/apps/organisasjon-faste-data-service/config.yml @@ -45,7 +45,7 @@ spec: databases: - name: testnav-organisasjon-faste-data-db liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 @@ -57,7 +57,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 diff --git a/apps/organisasjon-faste-data-service/src/main/java/no/nav/registre/testnorge/organisasjonfastedataservice/OrganisasjonFasteDataServiceApplicationStarter.java b/apps/organisasjon-faste-data-service/src/main/java/no/nav/registre/testnorge/organisasjonfastedataservice/OrganisasjonFasteDataServiceApplicationStarter.java index e161eb5981a..4fe6445ee49 100644 --- a/apps/organisasjon-faste-data-service/src/main/java/no/nav/registre/testnorge/organisasjonfastedataservice/OrganisasjonFasteDataServiceApplicationStarter.java +++ b/apps/organisasjon-faste-data-service/src/main/java/no/nav/registre/testnorge/organisasjonfastedataservice/OrganisasjonFasteDataServiceApplicationStarter.java @@ -3,7 +3,9 @@ import no.nav.dolly.libs.nais.NaisEnvironmentApplicationContextInitializer; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +@EnableWebSecurity @SpringBootApplication public class OrganisasjonFasteDataServiceApplicationStarter { public static void main(String[] args) { diff --git a/apps/organisasjon-faste-data-service/src/main/java/no/nav/registre/testnorge/organisasjonfastedataservice/config/SecurityConfig.java b/apps/organisasjon-faste-data-service/src/main/java/no/nav/registre/testnorge/organisasjonfastedataservice/config/SecurityConfig.java index e35bce24978..c7b8a5fff81 100644 --- a/apps/organisasjon-faste-data-service/src/main/java/no/nav/registre/testnorge/organisasjonfastedataservice/config/SecurityConfig.java +++ b/apps/organisasjon-faste-data-service/src/main/java/no/nav/registre/testnorge/organisasjonfastedataservice/config/SecurityConfig.java @@ -1,40 +1,24 @@ package no.nav.registre.testnorge.organisasjonfastedataservice.config; +import no.nav.dolly.libs.security.config.DollyHttpSecurity; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Profile; -import org.springframework.core.annotation.Order; import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; -import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; - -@Order(1) -@EnableWebSecurity @Configuration -@Profile({ "prod", "dev" }) -public class SecurityConfig { +class SecurityConfig { @Bean - public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { - - httpSecurity.sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) + SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { + return httpSecurity.sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) .csrf(AbstractHttpConfigurer::disable) - .authorizeHttpRequests(authorizeConfig -> authorizeConfig.requestMatchers( - "/internal/**", - "/webjars/**", - "/swagger-resources/**", - "/v3/api-docs/**", - "/swagger-ui/**", - "/swagger", - "/error", - "/swagger-ui.html" - ).permitAll().requestMatchers("/api/**").fullyAuthenticated()) - .oauth2ResourceServer(oauth2RSConfig -> oauth2RSConfig.jwt(Customizer.withDefaults())); - - return httpSecurity.build(); + .authorizeHttpRequests(DollyHttpSecurity.withDefaultHttpRequests()) + .oauth2ResourceServer(oauth2RSConfig -> oauth2RSConfig.jwt(Customizer.withDefaults())) + .build(); } + } diff --git a/apps/organisasjon-faste-data-service/src/main/resources/application.yml b/apps/organisasjon-faste-data-service/src/main/resources/application.yml index 620350af387..aa3bf3f80bd 100644 --- a/apps/organisasjon-faste-data-service/src/main/resources/application.yml +++ b/apps/organisasjon-faste-data-service/src/main/resources/application.yml @@ -2,6 +2,8 @@ spring: application: name: testnav-organisasjon-faste-data-service description: Tjeneste for å bestille og holde kontroll på faste data + config: + import: "classpath:dolly-application.yml" security: oauth2: resourceserver: @@ -14,8 +16,6 @@ spring: springdoc: swagger-ui: - disable-swagger-default-url: true - url: /v3/api-docs syntaxHighlight: activated: false @@ -27,26 +27,4 @@ consumers: url: http://organisasjon-bestilling-service.dolly.svc.cluster.local cluster: dev-gcp namespace: dolly - name: organisasjon-bestilling-service - -management: - endpoints: - access: - default: read_only - web: - base-path: /internal - exposure: - include: prometheus,health - path-mapping: - prometheus: metrics - prometheus: - metrics: - export: - enabled: true - -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always \ No newline at end of file + name: organisasjon-bestilling-service \ No newline at end of file diff --git a/apps/organisasjon-faste-data-service/src/test/java/no/nav/registre/testnorge/organisasjonfastedataservice/ApplicationContextTest.java b/apps/organisasjon-faste-data-service/src/test/java/no/nav/registre/testnorge/organisasjonfastedataservice/ApplicationContextTest.java index 9525eca9425..99b38703857 100644 --- a/apps/organisasjon-faste-data-service/src/test/java/no/nav/registre/testnorge/organisasjonfastedataservice/ApplicationContextTest.java +++ b/apps/organisasjon-faste-data-service/src/test/java/no/nav/registre/testnorge/organisasjonfastedataservice/ApplicationContextTest.java @@ -1,16 +1,8 @@ package no.nav.registre.testnorge.organisasjonfastedataservice; -import no.nav.dolly.libs.nais.DollySpringBootTest; -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import no.nav.dolly.libs.test.DollySpringBootTest; +import no.nav.dolly.libs.test.DollyApplicationContextTest; @DollySpringBootTest -class ApplicationContextTest { - - @Test - void load_app_context() { - assertThat(true).isTrue(); - } - +class ApplicationContextTest extends DollyApplicationContextTest { } \ No newline at end of file diff --git a/apps/organisasjon-forvalter/config.yml b/apps/organisasjon-forvalter/config.yml index 6d532c21743..e441651f5f8 100644 --- a/apps/organisasjon-forvalter/config.yml +++ b/apps/organisasjon-forvalter/config.yml @@ -50,7 +50,7 @@ spec: databases: - name: organisasjon-forvalter-db liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 @@ -62,7 +62,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 diff --git a/apps/organisasjon-forvalter/src/main/java/no/nav/organisasjonforvalter/config/SecurityConfig.java b/apps/organisasjon-forvalter/src/main/java/no/nav/organisasjonforvalter/config/SecurityConfig.java index 5fb41d16c9e..a41bd3db80f 100644 --- a/apps/organisasjon-forvalter/src/main/java/no/nav/organisasjonforvalter/config/SecurityConfig.java +++ b/apps/organisasjon-forvalter/src/main/java/no/nav/organisasjonforvalter/config/SecurityConfig.java @@ -2,7 +2,6 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Profile; import org.springframework.core.annotation.Order; import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; @@ -12,12 +11,10 @@ import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; - @Order(1) @EnableWebSecurity @Configuration -@Profile({"prod", "local"}) -public class SecurityConfig { +class SecurityConfig { @Bean public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { diff --git a/apps/organisasjon-forvalter/src/main/resources/application.yml b/apps/organisasjon-forvalter/src/main/resources/application.yml index bf9978fbd94..19487029cda 100644 --- a/apps/organisasjon-forvalter/src/main/resources/application.yml +++ b/apps/organisasjon-forvalter/src/main/resources/application.yml @@ -3,6 +3,8 @@ spring: name: Testnav-Organisasjon-Forvalter version: 1.0 description: Bestilling, persistering og opphenting av testorganisasjoner + config: + import: "classpath:dolly-application.yml" flyway: enabled: true # Disabled by default as you should probably think twice before running Flyway-migrations locations: classpath:db/migration @@ -14,11 +16,6 @@ spring: issuer-uri: ${AZURE_OPENID_CONFIG_ISSUER} accepted-audience: ${AZURE_APP_CLIENT_ID}, api:// ${AZURE_APP_CLIENT_ID} -springdoc: - swagger-ui: - disable-swagger-default-url: true - url: /v3/api-docs - kafka: groupid: organisasjon-forvalter-v1 @@ -53,26 +50,4 @@ consumers: url: http://testnav-miljoer-service.dolly.svc.cluster.local name: testnav-miljoer-service cluster: dev-gcp - namespace: dolly - -management: - endpoints: - access: - default: read_only - web: - base-path: /internal - exposure: - include: prometheus,health - path-mapping: - prometheus: metrics - prometheus: - metrics: - export: - enabled: true - -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always \ No newline at end of file + namespace: dolly \ No newline at end of file diff --git a/apps/organisasjon-forvalter/src/test/java/no/nav/organisasjonforvalter/ApplicationContextTest.java b/apps/organisasjon-forvalter/src/test/java/no/nav/organisasjonforvalter/ApplicationContextTest.java index 576828fabe6..402ea8c3adc 100644 --- a/apps/organisasjon-forvalter/src/test/java/no/nav/organisasjonforvalter/ApplicationContextTest.java +++ b/apps/organisasjon-forvalter/src/test/java/no/nav/organisasjonforvalter/ApplicationContextTest.java @@ -1,16 +1,8 @@ package no.nav.organisasjonforvalter; -import no.nav.dolly.libs.nais.DollySpringBootTest; -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import no.nav.dolly.libs.test.DollySpringBootTest; +import no.nav.dolly.libs.test.DollyApplicationContextTest; @DollySpringBootTest -class ApplicationContextTest { - - @Test - void load_app_context() { - assertThat(true).isTrue(); - } - +class ApplicationContextTest extends DollyApplicationContextTest { } diff --git a/apps/organisasjon-mottak-service/config.yml b/apps/organisasjon-mottak-service/config.yml index 8aa8511735c..c11afdc5c01 100644 --- a/apps/organisasjon-mottak-service/config.yml +++ b/apps/organisasjon-mottak-service/config.yml @@ -29,7 +29,7 @@ spec: external: - host: aareg-synt-services-proxy.dev-fss-pub.nais.io liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 @@ -41,7 +41,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 diff --git a/apps/organisasjon-mottak-service/src/main/java/no/nav/registre/testnorge/organisasjonmottak/config/SecurityConfig.java b/apps/organisasjon-mottak-service/src/main/java/no/nav/registre/testnorge/organisasjonmottak/config/SecurityConfig.java index 6466efa4681..ee49ac185d9 100644 --- a/apps/organisasjon-mottak-service/src/main/java/no/nav/registre/testnorge/organisasjonmottak/config/SecurityConfig.java +++ b/apps/organisasjon-mottak-service/src/main/java/no/nav/registre/testnorge/organisasjonmottak/config/SecurityConfig.java @@ -2,7 +2,6 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Profile; import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; @@ -12,8 +11,7 @@ @EnableWebSecurity @Configuration -@Profile({ "prod", "dev" }) -public class SecurityConfig { +class SecurityConfig { @Bean public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { diff --git a/apps/organisasjon-mottak-service/src/main/resources/application.yml b/apps/organisasjon-mottak-service/src/main/resources/application.yml index 697afc71e4c..862309c00d5 100644 --- a/apps/organisasjon-mottak-service/src/main/resources/application.yml +++ b/apps/organisasjon-mottak-service/src/main/resources/application.yml @@ -2,6 +2,8 @@ spring: application: name: testnav-organisasjon-mottak-service description: Testtjeneste for å vise hvilke tjenester som er tilgjenelig. Skal ikke brukes til noe annet enn for å test lokalt. For integrasjon bruk kafka. + config: + import: "classpath:dolly-application.yml" security: oauth2: resourceserver: @@ -12,11 +14,6 @@ spring: issuer-uri: ${TOKEN_X_ISSUER} accepted-audience: ${TOKEN_X_CLIENT_ID} -springdoc: - swagger-ui: - disable-swagger-default-url: true - url: /v3/api-docs - consumers: jenkins-batch-status-service: url: http://testnav-jenkins-batch-status-service.dolly.svc.cluster.local @@ -38,26 +35,4 @@ kafka.groupid: testnav-organisasjon-mottak-service-v1 JENKINS_SERVER_Q1: q1-ereg@b27jbsl01602.preprod.local JENKINS_SERVER_Q2: q2-ereg@b27jbsl01610.preprod.local -JENKINS_SERVER_Q4: q4-ereg@b27jbsl01609.preprod.local - -management: - endpoints: - access: - default: read_only - web: - base-path: /internal - exposure: - include: prometheus,health - path-mapping: - prometheus: metrics - prometheus: - metrics: - export: - enabled: true - -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always \ No newline at end of file +JENKINS_SERVER_Q4: q4-ereg@b27jbsl01609.preprod.local \ No newline at end of file diff --git a/apps/organisasjon-mottak-service/src/test/java/no/nav/registre/testnorge/organisasjonmottak/ApplicationContextTest.java b/apps/organisasjon-mottak-service/src/test/java/no/nav/registre/testnorge/organisasjonmottak/ApplicationContextTest.java index 3e3422f0a97..c03027873dc 100644 --- a/apps/organisasjon-mottak-service/src/test/java/no/nav/registre/testnorge/organisasjonmottak/ApplicationContextTest.java +++ b/apps/organisasjon-mottak-service/src/test/java/no/nav/registre/testnorge/organisasjonmottak/ApplicationContextTest.java @@ -1,16 +1,8 @@ package no.nav.registre.testnorge.organisasjonmottak; -import no.nav.dolly.libs.nais.DollySpringBootTest; -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import no.nav.dolly.libs.test.DollySpringBootTest; +import no.nav.dolly.libs.test.DollyApplicationContextTest; @DollySpringBootTest -class ApplicationContextTest { - - @Test - void load_app_context() { - assertThat(true).isTrue(); - } - +class ApplicationContextTest extends DollyApplicationContextTest { } diff --git a/apps/organisasjon-service/config.yml b/apps/organisasjon-service/config.yml index 322487c6a0b..c60ed18f38e 100644 --- a/apps/organisasjon-service/config.yml +++ b/apps/organisasjon-service/config.yml @@ -38,7 +38,7 @@ spec: external: - host: testnav-ereg-proxy.dev-fss-pub.nais.io liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 @@ -50,7 +50,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 diff --git a/apps/organisasjon-service/src/main/java/no/nav/registre/testnorge/organisasjonservice/OrganisasjonServiceApplicationStarter.java b/apps/organisasjon-service/src/main/java/no/nav/registre/testnorge/organisasjonservice/OrganisasjonServiceApplicationStarter.java index 1c97ee2a897..73b837810f7 100644 --- a/apps/organisasjon-service/src/main/java/no/nav/registre/testnorge/organisasjonservice/OrganisasjonServiceApplicationStarter.java +++ b/apps/organisasjon-service/src/main/java/no/nav/registre/testnorge/organisasjonservice/OrganisasjonServiceApplicationStarter.java @@ -3,7 +3,9 @@ import no.nav.dolly.libs.nais.NaisEnvironmentApplicationContextInitializer; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +@EnableWebSecurity @SpringBootApplication public class OrganisasjonServiceApplicationStarter { public static void main(String[] args) { diff --git a/apps/organisasjon-service/src/main/java/no/nav/registre/testnorge/organisasjonservice/config/SecurityConfig.java b/apps/organisasjon-service/src/main/java/no/nav/registre/testnorge/organisasjonservice/config/SecurityConfig.java index a3e11a6bfec..94d2d06f04f 100644 --- a/apps/organisasjon-service/src/main/java/no/nav/registre/testnorge/organisasjonservice/config/SecurityConfig.java +++ b/apps/organisasjon-service/src/main/java/no/nav/registre/testnorge/organisasjonservice/config/SecurityConfig.java @@ -1,38 +1,28 @@ package no.nav.registre.testnorge.organisasjonservice.config; +import no.nav.dolly.libs.security.config.DollyHttpSecurity; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Profile; import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; -import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; -@EnableWebSecurity @Configuration -@Profile({ "prod", "dev" }) -public class SecurityConfig { +@Profile({"prod", "local"}) +class SecurityConfig { @Bean - public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { - - httpSecurity.sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) + SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { + return httpSecurity + .sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) .csrf(AbstractHttpConfigurer::disable) - .authorizeHttpRequests(authorizeConfig -> authorizeConfig.requestMatchers( - "/internal/**", - "/webjars/**", - "/swagger-resources/**", - "/v3/api-docs/**", - "/swagger-ui/**", - "/swagger", - "/error", - "/swagger-ui.html" - ).permitAll().requestMatchers("/api/**").fullyAuthenticated()) - .oauth2ResourceServer(oauth2RSConfig -> oauth2RSConfig.jwt(Customizer.withDefaults())); - - return httpSecurity.build(); + .authorizeHttpRequests(DollyHttpSecurity.withDefaultHttpRequests()) + .oauth2ResourceServer(oauth2RSConfig -> oauth2RSConfig.jwt(Customizer.withDefaults())) + .build(); } + } diff --git a/apps/organisasjon-service/src/main/resources/application.yml b/apps/organisasjon-service/src/main/resources/application.yml index 3b8bdf59f81..a6b443a2690 100644 --- a/apps/organisasjon-service/src/main/resources/application.yml +++ b/apps/organisasjon-service/src/main/resources/application.yml @@ -2,6 +2,8 @@ spring: application: name: testnav-organisasjon-service description: "Testnorge organisasjoner API" + config: + import: "classpath:dolly-application.yml" security: oauth2: resourceserver: @@ -11,37 +13,9 @@ spring: tokenx: issuer-uri: ${TOKEN_X_ISSUER} accepted-audience: ${TOKEN_X_CLIENT_ID} - -springdoc: - swagger-ui: - disable-swagger-default-url: true - url: /v3/api-docs - consumers: testnav-ereg-proxy: url: https://testnav-ereg-proxy.dev-fss-pub.nais.io name: testnav-ereg-proxy cluster: dev-fss - namespace: dolly - -management: - endpoints: - access: - default: read_only - web: - base-path: /internal - exposure: - include: prometheus,health - path-mapping: - prometheus: metrics - prometheus: - metrics: - export: - enabled: true - -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always \ No newline at end of file + namespace: dolly \ No newline at end of file diff --git a/apps/organisasjon-service/src/test/java/no/nav/registre/testnorge/organisasjonservice/provider/OrganisasjonControllerEregIntegrationTest.java b/apps/organisasjon-service/src/test/java/no/nav/registre/testnorge/organisasjonservice/provider/OrganisasjonControllerEregIntegrationTest.java index baa20261ab9..6caadf643a4 100644 --- a/apps/organisasjon-service/src/test/java/no/nav/registre/testnorge/organisasjonservice/provider/OrganisasjonControllerEregIntegrationTest.java +++ b/apps/organisasjon-service/src/test/java/no/nav/registre/testnorge/organisasjonservice/provider/OrganisasjonControllerEregIntegrationTest.java @@ -4,7 +4,7 @@ import no.nav.registre.testnorge.organisasjonservice.consumer.dto.DetaljerDTO; import no.nav.registre.testnorge.organisasjonservice.consumer.dto.NavnDTO; import no.nav.registre.testnorge.organisasjonservice.consumer.dto.OrganisasjonDTO; -import no.nav.dolly.libs.nais.DollySpringBootTest; +import no.nav.dolly.libs.test.DollySpringBootTest; import no.nav.testnav.libs.testing.JsonWiremockHelper; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; diff --git a/apps/orgnummer-service/config.yml b/apps/orgnummer-service/config.yml index c1aa172baf5..8dcea492fce 100644 --- a/apps/orgnummer-service/config.yml +++ b/apps/orgnummer-service/config.yml @@ -34,7 +34,7 @@ spec: - application: testnav-organisasjon-service cluster: dev-gcp liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 @@ -46,7 +46,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 diff --git a/apps/orgnummer-service/src/main/java/no/nav/registre/orgnrservice/OrgnummerServiceApplicationStarter.java b/apps/orgnummer-service/src/main/java/no/nav/registre/orgnrservice/OrgnummerServiceApplicationStarter.java index c5609a2d580..d98e82b46b9 100644 --- a/apps/orgnummer-service/src/main/java/no/nav/registre/orgnrservice/OrgnummerServiceApplicationStarter.java +++ b/apps/orgnummer-service/src/main/java/no/nav/registre/orgnrservice/OrgnummerServiceApplicationStarter.java @@ -3,7 +3,9 @@ import no.nav.dolly.libs.nais.NaisEnvironmentApplicationContextInitializer; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +@EnableWebSecurity @SpringBootApplication public class OrgnummerServiceApplicationStarter { public static void main(String[] args) { diff --git a/apps/orgnummer-service/src/main/java/no/nav/registre/orgnrservice/config/SecurityConfig.java b/apps/orgnummer-service/src/main/java/no/nav/registre/orgnrservice/config/SecurityConfig.java index 0333247c67f..baf9ce77526 100644 --- a/apps/orgnummer-service/src/main/java/no/nav/registre/orgnrservice/config/SecurityConfig.java +++ b/apps/orgnummer-service/src/main/java/no/nav/registre/orgnrservice/config/SecurityConfig.java @@ -1,37 +1,25 @@ package no.nav.registre.orgnrservice.config; +import no.nav.dolly.libs.security.config.DollyHttpSecurity; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Profile; import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; -import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; -@EnableWebSecurity @Configuration -@Profile({ "dev", "prod" }) -public class SecurityConfig { +class SecurityConfig { @Bean - public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { - - httpSecurity.sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) + SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { + return httpSecurity + .sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) .csrf(AbstractHttpConfigurer::disable) - .authorizeHttpRequests(authorizeConfig -> authorizeConfig.requestMatchers( - "/internal/**", - "/webjars/**", - "/swagger-resources/**", - "/v3/api-docs/**", - "/swagger-ui/**", - "/swagger", - "/error", - "/swagger-ui.html" - ).permitAll().requestMatchers("/api/**").fullyAuthenticated()) - .oauth2ResourceServer(oauth2RSConfig -> oauth2RSConfig.jwt(Customizer.withDefaults())); - - return httpSecurity.build(); + .authorizeHttpRequests(DollyHttpSecurity.withDefaultHttpRequests()) + .oauth2ResourceServer(oauth2RSConfig -> oauth2RSConfig.jwt(Customizer.withDefaults())) + .build(); } + } \ No newline at end of file diff --git a/apps/orgnummer-service/src/main/resources/application.yml b/apps/orgnummer-service/src/main/resources/application.yml index 6fca4621d27..6adab5f6157 100644 --- a/apps/orgnummer-service/src/main/resources/application.yml +++ b/apps/orgnummer-service/src/main/resources/application.yml @@ -2,6 +2,8 @@ spring: application: name: testnav-orgnummer-service description: Genererer gyldige organisasjonsnummer. Sjekker at det ikke finnes i q1. + config: + import: "classpath:dolly-application.yml" flyway: locations: classpath:db/migration enabled: true @@ -15,11 +17,6 @@ spring: issuer-uri: ${TOKEN_X_ISSUER} accepted-audience: dev-gcp:dolly:testnav-orgnummer-service -springdoc: - swagger-ui: - disable-swagger-default-url: true - url: /v3/api-docs - consumers: testnav-organisasjon-service: url: http://testnav-organisasjon-service.dolly.svc.cluster.local @@ -30,26 +27,4 @@ consumers: url: http://testnav-miljoer-service.dolly.svc.cluster.local name: testnav-miljoer-service cluster: dev-gcp - namespace: dolly - -management: - endpoints: - access: - default: read_only - web: - base-path: /internal - exposure: - include: prometheus,health - path-mapping: - prometheus: metrics - prometheus: - metrics: - export: - enabled: true - -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always \ No newline at end of file + namespace: dolly \ No newline at end of file diff --git a/apps/orgnummer-service/src/test/java/no/nav/registre/orgnrservice/ApplicationContextTest.java b/apps/orgnummer-service/src/test/java/no/nav/registre/orgnrservice/ApplicationContextTest.java index 05588879b0e..4434e1235aa 100644 --- a/apps/orgnummer-service/src/test/java/no/nav/registre/orgnrservice/ApplicationContextTest.java +++ b/apps/orgnummer-service/src/test/java/no/nav/registre/orgnrservice/ApplicationContextTest.java @@ -1,16 +1,8 @@ package no.nav.registre.orgnrservice; -import no.nav.dolly.libs.nais.DollySpringBootTest; -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import no.nav.dolly.libs.test.DollySpringBootTest; +import no.nav.dolly.libs.test.DollyApplicationContextTest; @DollySpringBootTest -class ApplicationContextTest { - - @Test - void load_app_context() { - assertThat(true).isTrue(); - } - +class ApplicationContextTest extends DollyApplicationContextTest { } diff --git a/apps/oversikt-frontend/config.yml b/apps/oversikt-frontend/config.yml index a94d8e92a2e..25e790a5df3 100644 --- a/apps/oversikt-frontend/config.yml +++ b/apps/oversikt-frontend/config.yml @@ -31,7 +31,7 @@ spec: - application: testnorge-profil-api-dev - application: testnav-altinn3-tilgang-service liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 @@ -43,7 +43,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 diff --git a/apps/oversikt-frontend/src/main/java/no/nav/testnav/apps/oversiktfrontend/config/SecurityConfig.java b/apps/oversikt-frontend/src/main/java/no/nav/testnav/apps/oversiktfrontend/config/SecurityConfig.java index b6101336dae..dfccb24b2d2 100644 --- a/apps/oversikt-frontend/src/main/java/no/nav/testnav/apps/oversiktfrontend/config/SecurityConfig.java +++ b/apps/oversikt-frontend/src/main/java/no/nav/testnav/apps/oversiktfrontend/config/SecurityConfig.java @@ -1,7 +1,8 @@ package no.nav.testnav.apps.oversiktfrontend.config; +import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; -import org.springframework.beans.factory.annotation.Value; +import no.nav.testnav.libs.reactivesecurity.properties.AzureAdResourceServerProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.config.Customizer; @@ -13,24 +14,27 @@ @Configuration @EnableWebFluxSecurity -public class SecurityConfig { +@RequiredArgsConstructor +class SecurityConfig { - @Value("${spring.security.oauth2.resourceserver.aad.issuer-uri}") - private String issuer; + private final AzureAdResourceServerProperties config; @SneakyThrows @Bean - public SecurityWebFilterChain configure(ServerHttpSecurity http) { - - http.cors(Customizer.withDefaults()) + SecurityWebFilterChain configure(ServerHttpSecurity http) { + return http + .cors(Customizer.withDefaults()) .csrf(ServerHttpSecurity.CsrfSpec::disable) - .authorizeExchange(authorizeExchangeSpec -> authorizeExchangeSpec.anyExchange().permitAll()) - .oauth2ResourceServer(oAuth2ResourceServerSpec -> oAuth2ResourceServerSpec.jwt(jwtSpec -> jwtDecoder())); - return http.build(); + .authorizeExchange(spec -> spec + .anyExchange() + .permitAll()) + .oauth2ResourceServer(spec -> spec.jwt(jwtSpec -> jwtDecoder())) + .build(); } @Bean - public ReactiveJwtDecoder jwtDecoder() { - return ReactiveJwtDecoders.fromOidcIssuerLocation(issuer); + ReactiveJwtDecoder jwtDecoder() { + return ReactiveJwtDecoders.fromOidcIssuerLocation(config.getIssuerUri()); } + } diff --git a/apps/oversikt-frontend/src/main/resources/application.yml b/apps/oversikt-frontend/src/main/resources/application.yml index 4a5600397d2..b2052732ec6 100644 --- a/apps/oversikt-frontend/src/main/resources/application.yml +++ b/apps/oversikt-frontend/src/main/resources/application.yml @@ -1,4 +1,6 @@ spring: + config: + import: "classpath:dolly-application.yml" security: oauth2: resourceserver: @@ -30,28 +32,6 @@ consumers: name: testnav-bruker-service-dev url: http://testnav-bruker-service-dev.dolly.svc.cluster.local -management: - endpoints: - access: - default: read_only - web: - base-path: /internal - exposure: - include: prometheus,health - path-mapping: - prometheus: metrics - prometheus: - metrics: - export: - enabled: true - -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always - logging: level: org.springframework.boot.autoconfigure.security.reactive.ReactiveUserDetailsServiceAutoConfiguration: OFF diff --git a/apps/pdl-forvalter/config.test.yml b/apps/pdl-forvalter/config.test.yml index ea619005a39..1aaed7e28b8 100644 --- a/apps/pdl-forvalter/config.test.yml +++ b/apps/pdl-forvalter/config.test.yml @@ -27,7 +27,7 @@ spec: ingresses: - "https://testnav-pdl-forvalter-dev.intern.dev.nav.no" liveness: - path: /internal/isAlive + path: /internal/health/liveness periodSeconds: 60 initialDelay: 60 observability: @@ -38,7 +38,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness periodSeconds: 60 initialDelay: 60 prometheus: diff --git a/apps/pdl-forvalter/config.yml b/apps/pdl-forvalter/config.yml index d1a5607d88c..64dad8fb25b 100644 --- a/apps/pdl-forvalter/config.yml +++ b/apps/pdl-forvalter/config.yml @@ -27,7 +27,7 @@ spec: ingresses: - "https://testnav-pdl-forvalter.intern.dev.nav.no" liveness: - path: /internal/isAlive + path: /internal/health/liveness periodSeconds: 30 initialDelay: 30 observability: @@ -38,7 +38,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 30 prometheus: enabled: true diff --git a/apps/pdl-forvalter/src/main/resources/application.yml b/apps/pdl-forvalter/src/main/resources/application.yml index eb06623452c..370329d7372 100644 --- a/apps/pdl-forvalter/src/main/resources/application.yml +++ b/apps/pdl-forvalter/src/main/resources/application.yml @@ -36,6 +36,8 @@ consumers: name: testnav-person-service spring: + config: + import: "classpath:dolly-application.yml" security: oauth2: resourceserver: @@ -43,33 +45,7 @@ spring: issuer-uri: ${AZURE_OPENID_CONFIG_ISSUER} accepted-audience: ${AZURE_APP_CLIENT_ID}, api:// ${AZURE_APP_CLIENT_ID} -springdoc: - swagger-ui: - disable-swagger-default-url: true - url: /v3/api-docs - management: - endpoints: - enabled-by-default: true - web: - base-path: /internal - exposure: - include: prometheus,health - path-mapping: - prometheus: metrics - endpoint: - prometheus: - enabled: true health: elasticsearch: - enabled: false - prometheus: - metrics: - export: - enabled: true -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always \ No newline at end of file + enabled: false \ No newline at end of file diff --git a/apps/person-faste-data-service/config.yml b/apps/person-faste-data-service/config.yml index a95eb1d000b..0295831a99f 100644 --- a/apps/person-faste-data-service/config.yml +++ b/apps/person-faste-data-service/config.yml @@ -33,7 +33,7 @@ spec: databases: - name: testnav-person-faste-data-db liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 @@ -45,7 +45,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 diff --git a/apps/person-faste-data-service/src/main/resources/application.yml b/apps/person-faste-data-service/src/main/resources/application.yml index 6b5a3494897..a71aa95a02e 100644 --- a/apps/person-faste-data-service/src/main/resources/application.yml +++ b/apps/person-faste-data-service/src/main/resources/application.yml @@ -2,6 +2,8 @@ spring: application: name: testnav-person-faste-data-service description: Tjeneste for å bestille og holde kontroll på faste data + config: + import: "classpath:dolly-application.yml" security: oauth2: resourceserver: @@ -12,35 +14,8 @@ spring: issuer-uri: ${TOKEN_X_ISSUER} accepted-audience: dev-gcp:dolly:testnav-person-faste-data-service -springdoc: - swagger-ui: - disable-swagger-default-url: true - url: /v3/api-docs - testnav: config: hosts: - testnav-person-faste-data-service.intern.dev.nav.no - - testnav-person-faste-data-service.dolly.svc.cluster.local - -management: - endpoints: - access: - default: read_only - web: - base-path: /internal - exposure: - include: prometheus,health - path-mapping: - prometheus: metrics - prometheus: - metrics: - export: - enabled: true - -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always \ No newline at end of file + - testnav-person-faste-data-service.dolly.svc.cluster.local \ No newline at end of file diff --git a/apps/person-faste-data-service/src/test/java/no/nav/testnav/personfastedataservice/ApplicationContextTest.java b/apps/person-faste-data-service/src/test/java/no/nav/testnav/personfastedataservice/ApplicationContextTest.java index 6feef0fc14e..6e529d654ed 100644 --- a/apps/person-faste-data-service/src/test/java/no/nav/testnav/personfastedataservice/ApplicationContextTest.java +++ b/apps/person-faste-data-service/src/test/java/no/nav/testnav/personfastedataservice/ApplicationContextTest.java @@ -1,16 +1,8 @@ package no.nav.testnav.personfastedataservice; -import no.nav.dolly.libs.nais.DollySpringBootTest; -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import no.nav.dolly.libs.test.DollySpringBootTest; +import no.nav.dolly.libs.test.DollyApplicationContextTest; @DollySpringBootTest -class ApplicationContextTest { - - @Test - void load_app_context() { - assertThat(true).isTrue(); - } - +class ApplicationContextTest extends DollyApplicationContextTest { } diff --git a/apps/person-search-service/config.yml b/apps/person-search-service/config.yml index 29ee394b984..48db65b470a 100644 --- a/apps/person-search-service/config.yml +++ b/apps/person-search-service/config.yml @@ -30,7 +30,7 @@ spec: external: - host: testnav-pdl-proxy.dev-fss-pub.nais.io liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 @@ -42,7 +42,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 diff --git a/apps/person-search-service/src/main/java/no/nav/registre/testnorge/personsearchservice/PersonSearchServiceApplicationStarter.java b/apps/person-search-service/src/main/java/no/nav/registre/testnorge/personsearchservice/PersonSearchServiceApplicationStarter.java index 10dffeb69da..0963add03b7 100644 --- a/apps/person-search-service/src/main/java/no/nav/registre/testnorge/personsearchservice/PersonSearchServiceApplicationStarter.java +++ b/apps/person-search-service/src/main/java/no/nav/registre/testnorge/personsearchservice/PersonSearchServiceApplicationStarter.java @@ -3,7 +3,9 @@ import no.nav.dolly.libs.nais.NaisEnvironmentApplicationContextInitializer; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +@EnableWebSecurity @SpringBootApplication public class PersonSearchServiceApplicationStarter { public static void main(String[] args) { diff --git a/apps/person-search-service/src/main/java/no/nav/registre/testnorge/personsearchservice/config/SecurityConfig.java b/apps/person-search-service/src/main/java/no/nav/registre/testnorge/personsearchservice/config/SecurityConfig.java index 3ec05c5b72c..5c6eb7dc1cd 100644 --- a/apps/person-search-service/src/main/java/no/nav/registre/testnorge/personsearchservice/config/SecurityConfig.java +++ b/apps/person-search-service/src/main/java/no/nav/registre/testnorge/personsearchservice/config/SecurityConfig.java @@ -1,38 +1,26 @@ package no.nav.registre.testnorge.personsearchservice.config; +import no.nav.dolly.libs.security.config.DollyHttpSecurity; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Profile; import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; -import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; -@EnableWebSecurity @Configuration -@Profile({ "prod", "local" }) -public class SecurityConfig { +class SecurityConfig { @Bean - public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { - - httpSecurity.sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) + SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { + return httpSecurity + .sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) .csrf(AbstractHttpConfigurer::disable) - .authorizeHttpRequests(authorizeConfig -> authorizeConfig.requestMatchers( - "/internal/**", - "/webjars/**", - "/swagger-resources/**", - "/v3/api-docs/**", - "/swagger-ui/**", - "/swagger", - "/error", - "/swagger-ui.html" - ).permitAll().requestMatchers("/api/**").fullyAuthenticated()) - .oauth2ResourceServer(oauth2RSConfig -> oauth2RSConfig.jwt(Customizer.withDefaults())); - - return httpSecurity.build(); + .authorizeHttpRequests(DollyHttpSecurity.withDefaultHttpRequests()) + .oauth2ResourceServer(oauth2RSConfig -> oauth2RSConfig.jwt(Customizer.withDefaults())) + .build(); } + } diff --git a/apps/person-search-service/src/main/resources/application.yml b/apps/person-search-service/src/main/resources/application.yml index 0e7f6440491..ec569bb3901 100644 --- a/apps/person-search-service/src/main/resources/application.yml +++ b/apps/person-search-service/src/main/resources/application.yml @@ -2,6 +2,8 @@ spring: application: name: testnav-person-search-service description: Tjeneste for å søke etter personer. + config: + import: "classpath:dolly-application.yml" autoconfigure: exclude: org.springframework.boot.actuate.autoconfigure.elasticsearch.ElasticSearchReactiveHealthContributorAutoConfiguration, @@ -17,39 +19,14 @@ spring: issuer-uri: ${TOKEN_X_ISSUER} accepted-audience: ${TOKEN_X_CLIENT_ID} -springdoc: - swagger-ui: - disable-swagger-default-url: true - url: /v3/api-docs +management: + health: + elasticsearch: + enabled: false consumers: testnav-pdl-proxy: name: testnav-pdl-proxy namespace: dolly url: https://testnav-pdl-proxy.dev-fss-pub.nais.io - cluster: dev-fss - -management: - health: - elasticsearch: - enabled: false - endpoints: - access: - default: read_only - web: - base-path: /internal - exposure: - include: prometheus,health - path-mapping: - prometheus: metrics - prometheus: - metrics: - export: - enabled: true - -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always \ No newline at end of file + cluster: dev-fss \ No newline at end of file diff --git a/apps/person-search-service/src/test/java/no/nav/registre/testnorge/personsearchservice/ApplicationContextTest.java b/apps/person-search-service/src/test/java/no/nav/registre/testnorge/personsearchservice/ApplicationContextTest.java index f05d1c44cc2..ff9dc471711 100644 --- a/apps/person-search-service/src/test/java/no/nav/registre/testnorge/personsearchservice/ApplicationContextTest.java +++ b/apps/person-search-service/src/test/java/no/nav/registre/testnorge/personsearchservice/ApplicationContextTest.java @@ -1,16 +1,8 @@ package no.nav.registre.testnorge.personsearchservice; -import no.nav.dolly.libs.nais.DollySpringBootTest; -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import no.nav.dolly.libs.test.DollySpringBootTest; +import no.nav.dolly.libs.test.DollyApplicationContextTest; @DollySpringBootTest -class ApplicationContextTest { - - @Test - void load_app_context() { - assertThat(true).isTrue(); - } - +class ApplicationContextTest extends DollyApplicationContextTest { } diff --git a/apps/person-service/config.yml b/apps/person-service/config.yml index 8539024cfd2..1b406b9a02a 100644 --- a/apps/person-service/config.yml +++ b/apps/person-service/config.yml @@ -40,7 +40,7 @@ spec: external: - host: testnav-pdl-proxy.dev-fss-pub.nais.io liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 @@ -52,7 +52,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 diff --git a/apps/person-service/src/main/java/no/nav/testnav/apps/personservice/PersonServiceApplicationStarter.java b/apps/person-service/src/main/java/no/nav/testnav/apps/personservice/PersonServiceApplicationStarter.java index f47610fac2e..e3c38ec55b4 100644 --- a/apps/person-service/src/main/java/no/nav/testnav/apps/personservice/PersonServiceApplicationStarter.java +++ b/apps/person-service/src/main/java/no/nav/testnav/apps/personservice/PersonServiceApplicationStarter.java @@ -3,7 +3,9 @@ import no.nav.dolly.libs.nais.NaisEnvironmentApplicationContextInitializer; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +@EnableWebSecurity @SpringBootApplication public class PersonServiceApplicationStarter { public static void main(String[] args) { diff --git a/apps/person-service/src/main/java/no/nav/testnav/apps/personservice/config/SecurityConfig.java b/apps/person-service/src/main/java/no/nav/testnav/apps/personservice/config/SecurityConfig.java index 261d3445d81..65c83bde6e0 100644 --- a/apps/person-service/src/main/java/no/nav/testnav/apps/personservice/config/SecurityConfig.java +++ b/apps/person-service/src/main/java/no/nav/testnav/apps/personservice/config/SecurityConfig.java @@ -1,38 +1,27 @@ package no.nav.testnav.apps.personservice.config; +import no.nav.dolly.libs.security.config.DollyHttpSecurity; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Profile; -import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; -import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; -@EnableWebSecurity +import static org.springframework.security.config.Customizer.withDefaults; + @Configuration -@Profile({ "prod", "dev" }) -public class SecurityConfig { +class SecurityConfig { @Bean - public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { - - httpSecurity.sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) + SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { + return httpSecurity + .sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) .csrf(AbstractHttpConfigurer::disable) - .authorizeHttpRequests(authorizeConfig -> authorizeConfig.requestMatchers( - "/internal/**", - "/webjars/**", - "/swagger-resources/**", - "/v3/api-docs/**", - "/swagger-ui/**", - "/swagger", - "/error", - "/swagger-ui.html" - ).permitAll().requestMatchers("/api/**").fullyAuthenticated()) - .oauth2ResourceServer(oauth2RSConfig -> oauth2RSConfig.jwt(Customizer.withDefaults())); - - return httpSecurity.build(); + .authorizeHttpRequests(DollyHttpSecurity.withDefaultHttpRequests()) + .oauth2ResourceServer(oauth2RSConfig -> oauth2RSConfig.jwt(withDefaults())) + .build(); } + } diff --git a/apps/person-service/src/main/resources/application.yml b/apps/person-service/src/main/resources/application.yml index aaaf77bf2b4..7c73519d401 100644 --- a/apps/person-service/src/main/resources/application.yml +++ b/apps/person-service/src/main/resources/application.yml @@ -3,6 +3,8 @@ spring: version: application.version.todo #TODO Finn ut hvordan denne kan settes fra gradle name: testnav-person-service description: API for opprettelse av personer + config: + import: "classpath:dolly-application.yml" management: health: elasticsearch: @@ -17,36 +19,9 @@ spring: serialization: write_dates_as_timestamps: false -springdoc: - swagger-ui: - disable-swagger-default-url: true - url: /v3/api-docs - consumers: pdl-proxy: url: https://testnav-pdl-proxy.dev-fss-pub.nais.io cluster: dev-fss namespace: dolly - name: testnav-pdl-proxy - -management: - endpoints: - access: - default: read_only - web: - base-path: /internal - exposure: - include: prometheus,health - path-mapping: - prometheus: metrics - prometheus: - metrics: - export: - enabled: true - -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always \ No newline at end of file + name: testnav-pdl-proxy \ No newline at end of file diff --git a/apps/person-service/src/test/java/no/nav/testnav/apps/personservice/ApplicationContextTest.java b/apps/person-service/src/test/java/no/nav/testnav/apps/personservice/ApplicationContextTest.java index c53bb0f348b..50c4a7da03b 100644 --- a/apps/person-service/src/test/java/no/nav/testnav/apps/personservice/ApplicationContextTest.java +++ b/apps/person-service/src/test/java/no/nav/testnav/apps/personservice/ApplicationContextTest.java @@ -1,16 +1,8 @@ package no.nav.testnav.apps.personservice; -import no.nav.dolly.libs.nais.DollySpringBootTest; -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import no.nav.dolly.libs.test.DollySpringBootTest; +import no.nav.dolly.libs.test.DollyApplicationContextTest; @DollySpringBootTest -class ApplicationContextTest { - - @Test - void load_app_context() { - assertThat(true).isTrue(); - } - +class ApplicationContextTest extends DollyApplicationContextTest { } diff --git a/apps/profil-api/config.test.yml b/apps/profil-api/config.test.yml index 60428643fbe..421023f4801 100644 --- a/apps/profil-api/config.test.yml +++ b/apps/profil-api/config.test.yml @@ -37,7 +37,7 @@ spec: rules: - application: testnav-altinn3-tilgang-service liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 @@ -49,7 +49,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 diff --git a/apps/profil-api/config.yml b/apps/profil-api/config.yml index e22cb6b0657..8efaa1d51de 100644 --- a/apps/profil-api/config.yml +++ b/apps/profil-api/config.yml @@ -37,7 +37,7 @@ spec: rules: - application: testnav-altinn3-tilgang-proxy liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 @@ -49,7 +49,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 diff --git a/apps/profil-api/src/main/java/no/nav/registre/testnorge/profil/ProfilApiApplicationStarter.java b/apps/profil-api/src/main/java/no/nav/registre/testnorge/profil/ProfilApiApplicationStarter.java index 4ceec5063f8..38eb9694dc6 100644 --- a/apps/profil-api/src/main/java/no/nav/registre/testnorge/profil/ProfilApiApplicationStarter.java +++ b/apps/profil-api/src/main/java/no/nav/registre/testnorge/profil/ProfilApiApplicationStarter.java @@ -5,7 +5,9 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.context.annotation.Import; +import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +@EnableWebSecurity @SpringBootApplication @Import({ApplicationCoreConfig.class}) public class ProfilApiApplicationStarter { diff --git a/apps/profil-api/src/main/java/no/nav/registre/testnorge/profil/config/SecurityConfiguration.java b/apps/profil-api/src/main/java/no/nav/registre/testnorge/profil/config/SecurityConfiguration.java index fd9469f6714..9a3ef3040fa 100644 --- a/apps/profil-api/src/main/java/no/nav/registre/testnorge/profil/config/SecurityConfiguration.java +++ b/apps/profil-api/src/main/java/no/nav/registre/testnorge/profil/config/SecurityConfiguration.java @@ -1,36 +1,26 @@ package no.nav.registre.testnorge.profil.config; +import no.nav.dolly.libs.security.config.DollyHttpSecurity; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; -import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; -@EnableWebSecurity @Configuration -public class SecurityConfiguration { +class SecurityConfiguration { @Bean - public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { - - httpSecurity.sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) + SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { + return httpSecurity + .sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) .csrf(AbstractHttpConfigurer::disable) - .authorizeHttpRequests(authorizeConfig -> authorizeConfig.requestMatchers( - "/internal/**", - "/webjars/**", - "/swagger-resources/**", - "/v3/api-docs/**", - "/swagger-ui/**", - "/swagger", - "/error", - "/swagger-ui.html" - ).permitAll().requestMatchers("/api/**").fullyAuthenticated()) - .oauth2ResourceServer(oauth2RSConfig -> oauth2RSConfig.jwt(Customizer.withDefaults())); - - return httpSecurity.build(); + .authorizeHttpRequests(DollyHttpSecurity.withDefaultHttpRequests()) + .oauth2ResourceServer(oauth2RSConfig -> oauth2RSConfig.jwt(Customizer.withDefaults())) + .build(); } + } diff --git a/apps/profil-api/src/main/resources/application.yml b/apps/profil-api/src/main/resources/application.yml index f414c6d8f50..b27295323dc 100644 --- a/apps/profil-api/src/main/resources/application.yml +++ b/apps/profil-api/src/main/resources/application.yml @@ -2,6 +2,8 @@ spring: application: name: testnorge-profil-api description: API for hente ut profil fra Azure Ad + config: + import: "classpath:dolly-application.yml" security: oauth2: resourceserver: @@ -12,11 +14,6 @@ spring: issuer-uri: ${TOKEN_X_ISSUER} accepted-audience: ${TOKEN_X_CLIENT_ID} -springdoc: - swagger-ui: - disable-swagger-default-url: true - url: /v3/api-docs - access.scopes: - https://graph.microsoft .com/.default @@ -27,26 +24,4 @@ consumers: cluster: dev-gcp namespace: dolly name: ${ALTINN3_TILGANG_NAME} - url: ${ALTINN3_TILGANG_URL} - -management: - endpoints: - access: - default: read_only - web: - base-path: /internal - exposure: - include: prometheus,health - path-mapping: - prometheus: metrics - prometheus: - metrics: - export: - enabled: true - -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always \ No newline at end of file + url: ${ALTINN3_TILGANG_URL} \ No newline at end of file diff --git a/apps/profil-api/src/test/java/no/nav/registre/testnorge/profil/ApplicationContextTest.java b/apps/profil-api/src/test/java/no/nav/registre/testnorge/profil/ApplicationContextTest.java index a49640afd1b..dbd46d2b1bc 100644 --- a/apps/profil-api/src/test/java/no/nav/registre/testnorge/profil/ApplicationContextTest.java +++ b/apps/profil-api/src/test/java/no/nav/registre/testnorge/profil/ApplicationContextTest.java @@ -1,16 +1,8 @@ package no.nav.registre.testnorge.profil; -import no.nav.dolly.libs.nais.DollySpringBootTest; -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import no.nav.dolly.libs.test.DollySpringBootTest; +import no.nav.dolly.libs.test.DollyApplicationContextTest; @DollySpringBootTest -class ApplicationContextTest { - - @Test - void load_app_context() { - assertThat(true).isTrue(); - } - +class ApplicationContextTest extends DollyApplicationContextTest { } diff --git a/apps/skattekort-service/config.yml b/apps/skattekort-service/config.yml index ed9aca96afa..62ce6ba126e 100644 --- a/apps/skattekort-service/config.yml +++ b/apps/skattekort-service/config.yml @@ -30,7 +30,7 @@ spec: external: - host: sokos-skattekort-dolly.dev-fss-pub.nais.io liveness: - path: /internal/isAlive + path: /internal/health/liveness periodSeconds: 30 initialDelay: 30 observability: @@ -41,7 +41,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 30 prometheus: enabled: true diff --git a/apps/skattekort-service/src/main/resources/application.yml b/apps/skattekort-service/src/main/resources/application.yml index 1d3a3af3c76..378700b1c5a 100644 --- a/apps/skattekort-service/src/main/resources/application.yml +++ b/apps/skattekort-service/src/main/resources/application.yml @@ -3,6 +3,8 @@ spring: name: Testnav-Skattekort-Service version: 1.0 description: Service for å sende inn skattekort + config: + import: "classpath:dolly-application.yml" security: oauth2: resourceserver: @@ -10,33 +12,6 @@ spring: issuer-uri: ${AZURE_OPENID_CONFIG_ISSUER} accepted-audience: ${AZURE_APP_CLIENT_ID}, api:// ${AZURE_APP_CLIENT_ID} -springdoc: - swagger-ui: - disable-swagger-default-url: true - url: /v3/api-docs - -management: - endpoints: - access: - default: read_only - web: - base-path: /internal - exposure: - include: prometheus,health - path-mapping: - prometheus: metrics - prometheus: - metrics: - export: - enabled: true - -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always - consumers: sokos-skattekort: url: https://sokos-skattekort-dolly.dev-fss-pub.nais.io diff --git a/apps/skattekort-service/src/test/java/no/nav/skattekortservice/ApplicationContextTest.java b/apps/skattekort-service/src/test/java/no/nav/skattekortservice/ApplicationContextTest.java index 2735051b244..f84cb649135 100644 --- a/apps/skattekort-service/src/test/java/no/nav/skattekortservice/ApplicationContextTest.java +++ b/apps/skattekort-service/src/test/java/no/nav/skattekortservice/ApplicationContextTest.java @@ -1,16 +1,8 @@ package no.nav.skattekortservice; -import no.nav.dolly.libs.nais.DollySpringBootTest; -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import no.nav.dolly.libs.test.DollySpringBootTest; +import no.nav.dolly.libs.test.DollyApplicationContextTest; @DollySpringBootTest -class ApplicationContextTest { - - @Test - void load_app_context() { - assertThat(true).isTrue(); - } - +class ApplicationContextTest extends DollyApplicationContextTest { } diff --git a/apps/sykemelding-api/config.test.yml b/apps/sykemelding-api/config.test.yml index ccc74082c66..5fae17fc621 100644 --- a/apps/sykemelding-api/config.test.yml +++ b/apps/sykemelding-api/config.test.yml @@ -21,7 +21,7 @@ spec: image: "{{image}}" port: 8080 liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 @@ -33,7 +33,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 diff --git a/apps/sykemelding-api/config.yml b/apps/sykemelding-api/config.yml index 8070e276ea4..969ee264401 100644 --- a/apps/sykemelding-api/config.yml +++ b/apps/sykemelding-api/config.yml @@ -21,7 +21,7 @@ spec: image: "{{image}}" port: 8080 liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 @@ -33,7 +33,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 diff --git a/apps/sykemelding-api/src/main/java/no/nav/registre/testnorge/sykemelding/SykemeldingApiApplicationStarter.java b/apps/sykemelding-api/src/main/java/no/nav/registre/testnorge/sykemelding/SykemeldingApiApplicationStarter.java index 48a40a998b9..8c4fd52d8d7 100644 --- a/apps/sykemelding-api/src/main/java/no/nav/registre/testnorge/sykemelding/SykemeldingApiApplicationStarter.java +++ b/apps/sykemelding-api/src/main/java/no/nav/registre/testnorge/sykemelding/SykemeldingApiApplicationStarter.java @@ -8,9 +8,11 @@ import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Import; +import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; -@SpringBootApplication(scanBasePackages = "no.nav.registre.testnorge.sykemelding") +@EnableWebSecurity @Import({ ApplicationCoreConfig.class }) +@SpringBootApplication public class SykemeldingApiApplicationStarter { public static void main(String[] args) { diff --git a/apps/sykemelding-api/src/main/java/no/nav/registre/testnorge/sykemelding/config/SecurityConfig.java b/apps/sykemelding-api/src/main/java/no/nav/registre/testnorge/sykemelding/config/SecurityConfig.java index a758bb395a6..bc5001e98e9 100644 --- a/apps/sykemelding-api/src/main/java/no/nav/registre/testnorge/sykemelding/config/SecurityConfig.java +++ b/apps/sykemelding-api/src/main/java/no/nav/registre/testnorge/sykemelding/config/SecurityConfig.java @@ -1,41 +1,26 @@ package no.nav.registre.testnorge.sykemelding.config; +import no.nav.dolly.libs.security.config.DollyHttpSecurity; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Profile; -import org.springframework.core.annotation.Order; import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; -import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; - -@Order(1) -@EnableWebSecurity @Configuration -@Profile({ "prod", "dev" }) -public class SecurityConfig { +class SecurityConfig { @Bean - public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { - - httpSecurity.sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) + SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { + return httpSecurity + .sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) .csrf(AbstractHttpConfigurer::disable) - .authorizeHttpRequests(authorizeConfig -> authorizeConfig.requestMatchers( - "/internal/**", - "/webjars/**", - "/swagger-resources/**", - "/v3/api-docs/**", - "/swagger-ui/**", - "/swagger", - "/error", - "/swagger-ui.html" - ).permitAll().requestMatchers("/api/**").fullyAuthenticated()) - .oauth2ResourceServer(oauth2RSConfig -> oauth2RSConfig.jwt(Customizer.withDefaults())); - - return httpSecurity.build(); + .authorizeHttpRequests(DollyHttpSecurity.withDefaultHttpRequests()) + .oauth2ResourceServer(oauth2RSConfig -> oauth2RSConfig.jwt(Customizer.withDefaults())) + .build(); } + } diff --git a/apps/sykemelding-api/src/main/resources/application.yml b/apps/sykemelding-api/src/main/resources/application.yml index 20517a5b5b3..9d2f0e94586 100644 --- a/apps/sykemelding-api/src/main/resources/application.yml +++ b/apps/sykemelding-api/src/main/resources/application.yml @@ -7,6 +7,8 @@ spring: version: application.version.todo name: testnav-sykemelding-api description: Api for opprettelse av detaljerte sykemeldinger + config: + import: "classpath:dolly-application.yml" security: oauth2: resourceserver: @@ -17,34 +19,6 @@ spring: issuer-uri: ${TOKEN_X_ISSUER} accepted-audience: ${TOKEN_X_CLIENT_ID} -springdoc: - swagger-ui: - disable-swagger-default-url: true - url: /v3/api-docs - -management: - endpoints: - access: - default: read_only - web: - base-path: /internal - exposure: - include: prometheus,health - path-mapping: - prometheus: metrics - prometheus: - metrics: - export: - enabled: true - - -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always - ibm: mq: queueManager: ${IBM_MQ_QUEUE_MANAGER} diff --git a/apps/sykemelding-api/src/test/java/no/nav/registre/testnorge/sykemelding/ApplicationContextTest.java b/apps/sykemelding-api/src/test/java/no/nav/registre/testnorge/sykemelding/ApplicationContextTest.java index ff56045590c..f1e0030f69a 100644 --- a/apps/sykemelding-api/src/test/java/no/nav/registre/testnorge/sykemelding/ApplicationContextTest.java +++ b/apps/sykemelding-api/src/test/java/no/nav/registre/testnorge/sykemelding/ApplicationContextTest.java @@ -1,16 +1,8 @@ package no.nav.registre.testnorge.sykemelding; -import no.nav.dolly.libs.nais.DollySpringBootTest; -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import no.nav.dolly.libs.test.DollySpringBootTest; +import no.nav.dolly.libs.test.DollyApplicationContextTest; @DollySpringBootTest -class ApplicationContextTest { - - @Test - void load_app_context() { - assertThat(true).isTrue(); - } - +class ApplicationContextTest extends DollyApplicationContextTest { } diff --git a/apps/synt-sykemelding-api/config.test.yml b/apps/synt-sykemelding-api/config.test.yml index 7ec70c4d0cd..1edc1abdd4f 100644 --- a/apps/synt-sykemelding-api/config.test.yml +++ b/apps/synt-sykemelding-api/config.test.yml @@ -20,7 +20,7 @@ spec: enabled: true tenant: nav.no liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 @@ -32,7 +32,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 diff --git a/apps/synt-sykemelding-api/config.yml b/apps/synt-sykemelding-api/config.yml index 5ab174743b7..9e6c7e06798 100644 --- a/apps/synt-sykemelding-api/config.yml +++ b/apps/synt-sykemelding-api/config.yml @@ -20,7 +20,7 @@ spec: enabled: true tenant: nav.no liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 @@ -32,7 +32,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 diff --git a/apps/synt-sykemelding-api/src/main/java/no/nav/testnav/apps/syntsykemeldingapi/SyntSykemeldingApiApplicationStarter.java b/apps/synt-sykemelding-api/src/main/java/no/nav/testnav/apps/syntsykemeldingapi/SyntSykemeldingApiApplicationStarter.java index cbbf60fbd4c..9a5f00a4569 100644 --- a/apps/synt-sykemelding-api/src/main/java/no/nav/testnav/apps/syntsykemeldingapi/SyntSykemeldingApiApplicationStarter.java +++ b/apps/synt-sykemelding-api/src/main/java/no/nav/testnav/apps/syntsykemeldingapi/SyntSykemeldingApiApplicationStarter.java @@ -3,8 +3,9 @@ import no.nav.dolly.libs.nais.NaisEnvironmentApplicationContextInitializer; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; - +@EnableWebSecurity @SpringBootApplication public class SyntSykemeldingApiApplicationStarter { public static void main(String[] args) { diff --git a/apps/synt-sykemelding-api/src/main/java/no/nav/testnav/apps/syntsykemeldingapi/config/SecurityConfig.java b/apps/synt-sykemelding-api/src/main/java/no/nav/testnav/apps/syntsykemeldingapi/config/SecurityConfig.java index 7c4fe72962b..79260ad23e9 100644 --- a/apps/synt-sykemelding-api/src/main/java/no/nav/testnav/apps/syntsykemeldingapi/config/SecurityConfig.java +++ b/apps/synt-sykemelding-api/src/main/java/no/nav/testnav/apps/syntsykemeldingapi/config/SecurityConfig.java @@ -1,41 +1,28 @@ package no.nav.testnav.apps.syntsykemeldingapi.config; +import no.nav.dolly.libs.security.config.DollyHttpSecurity; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Profile; -import org.springframework.core.annotation.Order; import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; -import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; - -@Order(1) -@EnableWebSecurity @Configuration @Profile({ "prod", "dev" }) -public class SecurityConfig { +class SecurityConfig { @Bean - public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { - - httpSecurity.sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) + SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { + return httpSecurity + .sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) .csrf(AbstractHttpConfigurer::disable) - .authorizeHttpRequests(authorizeConfig -> authorizeConfig.requestMatchers( - "/internal/**", - "/webjars/**", - "/swagger-resources/**", - "/v3/api-docs/**", - "/swagger-ui/**", - "/swagger", - "/error", - "/swagger-ui.html" - ).permitAll().requestMatchers("/api/**").fullyAuthenticated()) - .oauth2ResourceServer(oauth2RSConfig -> oauth2RSConfig.jwt(Customizer.withDefaults())); - - return httpSecurity.build(); + .authorizeHttpRequests(DollyHttpSecurity.withDefaultHttpRequests()) + .oauth2ResourceServer(oauth2RSConfig -> oauth2RSConfig.jwt(Customizer.withDefaults())) + .build(); } + } diff --git a/apps/synt-sykemelding-api/src/main/resources/application.yml b/apps/synt-sykemelding-api/src/main/resources/application.yml index aee3d690ac4..d0f1b324511 100644 --- a/apps/synt-sykemelding-api/src/main/resources/application.yml +++ b/apps/synt-sykemelding-api/src/main/resources/application.yml @@ -3,6 +3,8 @@ spring: version: application.version.todo name: testnav-synt-sykemelding-api description: Api for opprettelse av syntetiske sykemeldinger + config: + import: "classpath:dolly-application.yml" security: oauth2: resourceserver: @@ -13,11 +15,6 @@ spring: issuer-uri: ${TOKEN_X_ISSUER} accepted-audience: ${TOKEN_X_CLIENT_ID} -springdoc: - swagger-ui: - disable-swagger-default-url: true - url: /v3/api-docs - consumers: synt-sykemelding: url: http://synthdata-elsam-gcp.dolly.svc.cluster.local @@ -48,26 +45,4 @@ consumers: name: testnav-pdl-proxy namespace: dolly url: https://testnav-pdl-proxy.dev-fss-pub.nais.io - cluster: dev-fss - -management: - endpoints: - access: - default: read_only - web: - base-path: /internal - exposure: - include: prometheus,health - path-mapping: - prometheus: metrics - prometheus: - metrics: - export: - enabled: true - -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always \ No newline at end of file + cluster: dev-fss \ No newline at end of file diff --git a/apps/synt-sykemelding-api/src/test/java/no/nav/testnav/apps/syntsykemeldingapi/consumer/ArbeidsforholdConsumerTest.java b/apps/synt-sykemelding-api/src/test/java/no/nav/testnav/apps/syntsykemeldingapi/consumer/ArbeidsforholdConsumerTest.java index a675edaf9c1..0c9e34e1f26 100644 --- a/apps/synt-sykemelding-api/src/test/java/no/nav/testnav/apps/syntsykemeldingapi/consumer/ArbeidsforholdConsumerTest.java +++ b/apps/synt-sykemelding-api/src/test/java/no/nav/testnav/apps/syntsykemeldingapi/consumer/ArbeidsforholdConsumerTest.java @@ -3,7 +3,7 @@ import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.github.tomakehurst.wiremock.client.WireMock; -import no.nav.dolly.libs.nais.DollySpringBootTest; +import no.nav.dolly.libs.test.DollySpringBootTest; import no.nav.testnav.libs.dto.oppsummeringsdokumentservice.v1.ArbeidsforholdDTO; import no.nav.testnav.libs.securitycore.domain.AccessToken; import no.nav.testnav.libs.securitycore.domain.ServerProperties; diff --git a/apps/synt-sykemelding-api/src/test/java/no/nav/testnav/apps/syntsykemeldingapi/consumer/HelsepersonellConsumerTest.java b/apps/synt-sykemelding-api/src/test/java/no/nav/testnav/apps/syntsykemeldingapi/consumer/HelsepersonellConsumerTest.java index 15166a26130..0bc660d4047 100644 --- a/apps/synt-sykemelding-api/src/test/java/no/nav/testnav/apps/syntsykemeldingapi/consumer/HelsepersonellConsumerTest.java +++ b/apps/synt-sykemelding-api/src/test/java/no/nav/testnav/apps/syntsykemeldingapi/consumer/HelsepersonellConsumerTest.java @@ -3,7 +3,7 @@ import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.github.tomakehurst.wiremock.client.WireMock; -import no.nav.dolly.libs.nais.DollySpringBootTest; +import no.nav.dolly.libs.test.DollySpringBootTest; import no.nav.testnav.libs.dto.helsepersonell.v1.HelsepersonellListeDTO; import no.nav.testnav.libs.securitycore.domain.AccessToken; import no.nav.testnav.libs.securitycore.domain.ServerProperties; diff --git a/apps/synt-sykemelding-api/src/test/java/no/nav/testnav/apps/syntsykemeldingapi/consumer/OrganisasjonConsumerTest.java b/apps/synt-sykemelding-api/src/test/java/no/nav/testnav/apps/syntsykemeldingapi/consumer/OrganisasjonConsumerTest.java index 564628d67ae..109e38ff9f9 100644 --- a/apps/synt-sykemelding-api/src/test/java/no/nav/testnav/apps/syntsykemeldingapi/consumer/OrganisasjonConsumerTest.java +++ b/apps/synt-sykemelding-api/src/test/java/no/nav/testnav/apps/syntsykemeldingapi/consumer/OrganisasjonConsumerTest.java @@ -3,7 +3,7 @@ import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.github.tomakehurst.wiremock.client.WireMock; -import no.nav.dolly.libs.nais.DollySpringBootTest; +import no.nav.dolly.libs.test.DollySpringBootTest; import no.nav.testnav.libs.dto.organisasjon.v1.OrganisasjonDTO; import no.nav.testnav.libs.securitycore.domain.AccessToken; import no.nav.testnav.libs.securitycore.domain.ServerProperties; diff --git a/apps/synt-sykemelding-api/src/test/java/no/nav/testnav/apps/syntsykemeldingapi/consumer/PdlProxyConsumerTest.java b/apps/synt-sykemelding-api/src/test/java/no/nav/testnav/apps/syntsykemeldingapi/consumer/PdlProxyConsumerTest.java index 3f2e7831a35..4c18a62cd9f 100644 --- a/apps/synt-sykemelding-api/src/test/java/no/nav/testnav/apps/syntsykemeldingapi/consumer/PdlProxyConsumerTest.java +++ b/apps/synt-sykemelding-api/src/test/java/no/nav/testnav/apps/syntsykemeldingapi/consumer/PdlProxyConsumerTest.java @@ -4,7 +4,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.github.tomakehurst.wiremock.client.WireMock; import no.nav.testnav.apps.syntsykemeldingapi.domain.pdl.PdlPerson; -import no.nav.dolly.libs.nais.DollySpringBootTest; +import no.nav.dolly.libs.test.DollySpringBootTest; import no.nav.testnav.libs.securitycore.domain.AccessToken; import no.nav.testnav.libs.securitycore.domain.ServerProperties; import no.nav.testnav.libs.servletsecurity.exchange.TokenExchange; diff --git a/apps/synt-sykemelding-api/src/test/java/no/nav/testnav/apps/syntsykemeldingapi/consumer/SykemeldingConsumerTest.java b/apps/synt-sykemelding-api/src/test/java/no/nav/testnav/apps/syntsykemeldingapi/consumer/SykemeldingConsumerTest.java index 549b8f45055..cac5b67841a 100644 --- a/apps/synt-sykemelding-api/src/test/java/no/nav/testnav/apps/syntsykemeldingapi/consumer/SykemeldingConsumerTest.java +++ b/apps/synt-sykemelding-api/src/test/java/no/nav/testnav/apps/syntsykemeldingapi/consumer/SykemeldingConsumerTest.java @@ -7,7 +7,7 @@ import no.nav.testnav.apps.syntsykemeldingapi.domain.Person; import no.nav.testnav.apps.syntsykemeldingapi.domain.Sykemelding; import no.nav.testnav.apps.syntsykemeldingapi.domain.pdl.PdlPerson; -import no.nav.dolly.libs.nais.DollySpringBootTest; +import no.nav.dolly.libs.test.DollySpringBootTest; import no.nav.testnav.libs.dto.helsepersonell.v1.HelsepersonellListeDTO; import no.nav.testnav.libs.dto.oppsummeringsdokumentservice.v1.ArbeidsforholdDTO; import no.nav.testnav.libs.dto.organisasjon.v1.OrganisasjonDTO; diff --git a/apps/synt-sykemelding-api/src/test/java/no/nav/testnav/apps/syntsykemeldingapi/consumer/SyntElsamConsumerTest.java b/apps/synt-sykemelding-api/src/test/java/no/nav/testnav/apps/syntsykemeldingapi/consumer/SyntElsamConsumerTest.java index 43d578d84ca..becb879c551 100644 --- a/apps/synt-sykemelding-api/src/test/java/no/nav/testnav/apps/syntsykemeldingapi/consumer/SyntElsamConsumerTest.java +++ b/apps/synt-sykemelding-api/src/test/java/no/nav/testnav/apps/syntsykemeldingapi/consumer/SyntElsamConsumerTest.java @@ -4,7 +4,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.github.tomakehurst.wiremock.client.WireMock; import no.nav.testnav.apps.syntsykemeldingapi.consumer.dto.SyntSykemeldingHistorikkDTO; -import no.nav.dolly.libs.nais.DollySpringBootTest; +import no.nav.dolly.libs.test.DollySpringBootTest; import no.nav.testnav.libs.securitycore.domain.AccessToken; import no.nav.testnav.libs.securitycore.domain.ServerProperties; import no.nav.testnav.libs.servletsecurity.exchange.TokenExchange; diff --git a/apps/synt-sykemelding-api/src/test/java/no/nav/testnav/apps/syntsykemeldingapi/provider/SyntSykemeldingControllerIntegrationTest.java b/apps/synt-sykemelding-api/src/test/java/no/nav/testnav/apps/syntsykemeldingapi/provider/SyntSykemeldingControllerIntegrationTest.java index fd3e3b99bf8..c49cf9579b4 100644 --- a/apps/synt-sykemelding-api/src/test/java/no/nav/testnav/apps/syntsykemeldingapi/provider/SyntSykemeldingControllerIntegrationTest.java +++ b/apps/synt-sykemelding-api/src/test/java/no/nav/testnav/apps/syntsykemeldingapi/provider/SyntSykemeldingControllerIntegrationTest.java @@ -3,7 +3,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import no.nav.testnav.apps.syntsykemeldingapi.consumer.*; import no.nav.testnav.apps.syntsykemeldingapi.domain.HelsepersonellListe; -import no.nav.dolly.libs.nais.DollySpringBootTest; +import no.nav.dolly.libs.test.DollySpringBootTest; import no.nav.testnav.libs.dto.sykemelding.v1.SykemeldingDTO; import no.nav.testnav.libs.dto.synt.sykemelding.v1.SyntSykemeldingDTO; import no.nav.testnav.libs.securitycore.domain.AccessToken; diff --git a/apps/synt-vedtakshistorikk-service/config.yml b/apps/synt-vedtakshistorikk-service/config.yml index 742f8d41794..986ea0afd8c 100644 --- a/apps/synt-vedtakshistorikk-service/config.yml +++ b/apps/synt-vedtakshistorikk-service/config.yml @@ -15,7 +15,7 @@ spec: tokenx: enabled: true liveness: - path: /internal/isAlive + path: /internal/health/liveness periodSeconds: 30 initialDelay: 30 observability: @@ -26,7 +26,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 30 prometheus: enabled: true diff --git a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/SyntVedtakshistorikkServiceApplicationStarter.java b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/SyntVedtakshistorikkServiceApplicationStarter.java index ebaa2de3846..0866640ed7b 100644 --- a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/SyntVedtakshistorikkServiceApplicationStarter.java +++ b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/SyntVedtakshistorikkServiceApplicationStarter.java @@ -3,7 +3,9 @@ import no.nav.dolly.libs.nais.NaisEnvironmentApplicationContextInitializer; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +@EnableWebSecurity @SpringBootApplication public class SyntVedtakshistorikkServiceApplicationStarter { public static void main(String[] args) { diff --git a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/config/SecurityConfig.java b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/config/SecurityConfig.java index aa68eaf5a3c..b54f0efe8bc 100644 --- a/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/config/SecurityConfig.java +++ b/apps/synt-vedtakshistorikk-service/src/main/java/no/nav/testnav/apps/syntvedtakshistorikkservice/config/SecurityConfig.java @@ -1,40 +1,27 @@ package no.nav.testnav.apps.syntvedtakshistorikkservice.config; +import no.nav.dolly.libs.security.config.DollyHttpSecurity; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Profile; -import org.springframework.core.annotation.Order; import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; -import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; - -@Order(1) -@EnableWebSecurity @Configuration -@Profile({ "prod", "dev" }) -public class SecurityConfig { +@Profile({ "prod", "local" }) +class SecurityConfig { @Bean - public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { - - httpSecurity.sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) + SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { + return httpSecurity + .sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) .csrf(AbstractHttpConfigurer::disable) - .authorizeHttpRequests(authorizeConfig -> authorizeConfig.requestMatchers( - "/internal/**", - "/webjars/**", - "/swagger-resources/**", - "/v3/api-docs/**", - "/swagger-ui/**", - "/swagger", - "/error", - "/swagger-ui.html" - ).permitAll().requestMatchers("/api/**").fullyAuthenticated()) - .oauth2ResourceServer(oauth2RSConfig -> oauth2RSConfig.jwt(Customizer.withDefaults())); - - return httpSecurity.build(); + .authorizeHttpRequests(DollyHttpSecurity.withDefaultHttpRequests()) + .oauth2ResourceServer(oauth2RSConfig -> oauth2RSConfig.jwt(Customizer.withDefaults())) + .build(); } + } diff --git a/apps/synt-vedtakshistorikk-service/src/main/resources/application.yml b/apps/synt-vedtakshistorikk-service/src/main/resources/application.yml index 822d79cd6f7..d9eb83b7ce1 100644 --- a/apps/synt-vedtakshistorikk-service/src/main/resources/application.yml +++ b/apps/synt-vedtakshistorikk-service/src/main/resources/application.yml @@ -3,6 +3,8 @@ spring: version: application.version.todo name: testnav-synt-vedtakshistorikk-service description: App som genererer syntetisk vedtakshistorikk(er), tilknytter dataen til testnorge ident(er) og sender historikken(e) til arena-forvalteren. + config: + import: "classpath:dolly-application.yml" security: oauth2: resourceserver: @@ -10,11 +12,6 @@ spring: issuer-uri: ${AZURE_OPENID_CONFIG_ISSUER} accepted-audience: ${AZURE_APP_CLIENT_ID}, api:// ${AZURE_APP_CLIENT_ID} -springdoc: - swagger-ui: - disable-swagger-default-url: true - url: /v3/api-docs - consumers: synt-vedtakshistorikk: url: http://synthdata-arena-vedtakshistorikk.dolly.svc.cluster.local @@ -56,25 +53,3 @@ consumers: namespace: dolly name: testnav-organisasjon-faste-data-service url: http://testnav-organisasjon-faste-data-service.dolly.svc.cluster.local - -management: - endpoints: - access: - default: read_only - web: - base-path: /internal - exposure: - include: prometheus,health - path-mapping: - prometheus: metrics - prometheus: - metrics: - export: - enabled: true - -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always diff --git a/apps/synt-vedtakshistorikk-service/src/test/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/ArenaForvalterConsumerTest.java b/apps/synt-vedtakshistorikk-service/src/test/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/ArenaForvalterConsumerTest.java index baac4f3065f..b27ab504a8d 100644 --- a/apps/synt-vedtakshistorikk-service/src/test/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/ArenaForvalterConsumerTest.java +++ b/apps/synt-vedtakshistorikk-service/src/test/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/ArenaForvalterConsumerTest.java @@ -1,7 +1,7 @@ package no.nav.testnav.apps.syntvedtakshistorikkservice.consumer; import no.nav.testnav.apps.syntvedtakshistorikkservice.consumer.request.arena.rettighet.*; -import no.nav.dolly.libs.nais.DollySpringBootTest; +import no.nav.dolly.libs.test.DollySpringBootTest; import no.nav.testnav.libs.domain.dto.arena.testnorge.brukere.Arbeidsoeker; import no.nav.testnav.libs.securitycore.domain.AccessToken; import no.nav.testnav.libs.securitycore.domain.ServerProperties; diff --git a/apps/synt-vedtakshistorikk-service/src/test/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/PdlConsumerTest.java b/apps/synt-vedtakshistorikk-service/src/test/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/PdlConsumerTest.java index 0bdbd632540..2f57877b9bb 100644 --- a/apps/synt-vedtakshistorikk-service/src/test/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/PdlConsumerTest.java +++ b/apps/synt-vedtakshistorikk-service/src/test/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/PdlConsumerTest.java @@ -1,7 +1,7 @@ package no.nav.testnav.apps.syntvedtakshistorikkservice.consumer; import no.nav.testnav.apps.syntvedtakshistorikkservice.consumer.response.pdl.PdlPerson; -import no.nav.dolly.libs.nais.DollySpringBootTest; +import no.nav.dolly.libs.test.DollySpringBootTest; import no.nav.testnav.libs.securitycore.domain.AccessToken; import no.nav.testnav.libs.securitycore.domain.ServerProperties; import no.nav.testnav.libs.standalone.servletsecurity.exchange.TokenExchange; diff --git a/apps/synt-vedtakshistorikk-service/src/test/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/PensjonTestdataFacadeConsumerTest.java b/apps/synt-vedtakshistorikk-service/src/test/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/PensjonTestdataFacadeConsumerTest.java index fb3a97ae804..e32a4303724 100644 --- a/apps/synt-vedtakshistorikk-service/src/test/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/PensjonTestdataFacadeConsumerTest.java +++ b/apps/synt-vedtakshistorikk-service/src/test/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/PensjonTestdataFacadeConsumerTest.java @@ -2,7 +2,7 @@ import no.nav.testnav.apps.syntvedtakshistorikkservice.consumer.request.pensjon.PensjonTestdataInntekt; import no.nav.testnav.apps.syntvedtakshistorikkservice.consumer.request.pensjon.PensjonTestdataPerson; -import no.nav.dolly.libs.nais.DollySpringBootTest; +import no.nav.dolly.libs.test.DollySpringBootTest; import no.nav.testnav.libs.securitycore.domain.AccessToken; import no.nav.testnav.libs.securitycore.domain.ServerProperties; import no.nav.testnav.libs.standalone.servletsecurity.exchange.TokenExchange; diff --git a/apps/synt-vedtakshistorikk-service/src/test/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/PersonSearchConsumerTest.java b/apps/synt-vedtakshistorikk-service/src/test/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/PersonSearchConsumerTest.java index 409d387efc8..2bd9e7e8e2f 100644 --- a/apps/synt-vedtakshistorikk-service/src/test/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/PersonSearchConsumerTest.java +++ b/apps/synt-vedtakshistorikk-service/src/test/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/PersonSearchConsumerTest.java @@ -1,6 +1,6 @@ package no.nav.testnav.apps.syntvedtakshistorikkservice.consumer; -import no.nav.dolly.libs.nais.DollySpringBootTest; +import no.nav.dolly.libs.test.DollySpringBootTest; import no.nav.testnav.libs.dto.personsearchservice.v1.search.AlderSearch; import no.nav.testnav.libs.dto.personsearchservice.v1.search.PersonSearch; import no.nav.testnav.libs.securitycore.domain.AccessToken; diff --git a/apps/synt-vedtakshistorikk-service/src/test/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/SyntVedtakshistorikkConsumerTest.java b/apps/synt-vedtakshistorikk-service/src/test/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/SyntVedtakshistorikkConsumerTest.java index 9c19d705797..b43e7848d80 100644 --- a/apps/synt-vedtakshistorikk-service/src/test/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/SyntVedtakshistorikkConsumerTest.java +++ b/apps/synt-vedtakshistorikk-service/src/test/java/no/nav/testnav/apps/syntvedtakshistorikkservice/consumer/SyntVedtakshistorikkConsumerTest.java @@ -1,6 +1,6 @@ package no.nav.testnav.apps.syntvedtakshistorikkservice.consumer; -import no.nav.dolly.libs.nais.DollySpringBootTest; +import no.nav.dolly.libs.test.DollySpringBootTest; import no.nav.testnav.libs.securitycore.domain.AccessToken; import no.nav.testnav.libs.securitycore.domain.ServerProperties; import no.nav.testnav.libs.standalone.servletsecurity.exchange.TokenExchange; diff --git a/apps/tenor-search-service/build.gradle b/apps/tenor-search-service/build.gradle index da1b52e4ad7..b218994f30f 100644 --- a/apps/tenor-search-service/build.gradle +++ b/apps/tenor-search-service/build.gradle @@ -21,4 +21,5 @@ dependencies { testImplementation "org.springframework.cloud:spring-cloud-contract-wiremock" testImplementation "no.nav.testnav.libs:integration-test" + implementation "org.springframework.boot:spring-boot-starter-test" } diff --git a/apps/tenor-search-service/config.yml b/apps/tenor-search-service/config.yml index 141b7c45b12..b73cd8d473b 100644 --- a/apps/tenor-search-service/config.yml +++ b/apps/tenor-search-service/config.yml @@ -38,7 +38,7 @@ spec: - host: testnav-pdl-proxy.dev-fss-pub.nais.io - host: testdata.api.skatteetaten.no liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 @@ -50,7 +50,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 diff --git a/apps/tenor-search-service/src/main/resources/application.yml b/apps/tenor-search-service/src/main/resources/application.yml index 719d051eda8..08b38b44d55 100644 --- a/apps/tenor-search-service/src/main/resources/application.yml +++ b/apps/tenor-search-service/src/main/resources/application.yml @@ -3,6 +3,8 @@ spring: version: 1 name: testnav-tenor-search-service description: Tjeneste som formidler søk til Tenor testdata hos Skatteetaten + config: + import: "classpath:dolly-application.yml" security: oauth2: resourceserver: @@ -16,36 +18,13 @@ spring: serialization: write_dates_as_timestamps: false -springdoc: - swagger-ui: - disable-swagger-default-url: true - url: /v3/api-docs - -management: - endpoints: - access: - default: read_only - web: - base-path: /internal - exposure: - include: prometheus,health - path-mapping: - prometheus: metrics - prometheus: - metrics: - export: - enabled: true - server: servlet: encoding: - charset: UTF-8 enabled: true force: true force-request: true force-response: true - error: - include-message: always consumers: tenor-search-service: diff --git a/apps/tenor-search-service/src/test/java/no/nav/testnav/apps/tenorsearchservice/ApplicationContextTest.java b/apps/tenor-search-service/src/test/java/no/nav/testnav/apps/tenorsearchservice/ApplicationContextTest.java index 88a2d731a8d..b7c81feb239 100644 --- a/apps/tenor-search-service/src/test/java/no/nav/testnav/apps/tenorsearchservice/ApplicationContextTest.java +++ b/apps/tenor-search-service/src/test/java/no/nav/testnav/apps/tenorsearchservice/ApplicationContextTest.java @@ -1,16 +1,9 @@ package no.nav.testnav.apps.tenorsearchservice; -import no.nav.dolly.libs.nais.DollySpringBootTest; -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import no.nav.dolly.libs.test.DollySpringBootTest; +import no.nav.dolly.libs.test.DollyApplicationContextTest; @DollySpringBootTest -class ApplicationContextTest { - - @Test - void load_app_context() { - assertThat(true).isTrue(); - } +class ApplicationContextTest extends DollyApplicationContextTest { } diff --git a/apps/testnav-ident-pool/config.yml b/apps/testnav-ident-pool/config.yml index 5751ddbecf3..28e924615b9 100644 --- a/apps/testnav-ident-pool/config.yml +++ b/apps/testnav-ident-pool/config.yml @@ -26,7 +26,7 @@ spec: ingresses: - "https://testnav-ident-pool.intern.dev.nav.no" liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 30 periodSeconds: 30 failureThreshold: 3 @@ -38,7 +38,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 30 periodSeconds: 30 failureThreshold: 3 diff --git a/apps/testnav-ident-pool/src/main/resources/application.yml b/apps/testnav-ident-pool/src/main/resources/application.yml index cfbe7200e50..789cbe63509 100644 --- a/apps/testnav-ident-pool/src/main/resources/application.yml +++ b/apps/testnav-ident-pool/src/main/resources/application.yml @@ -3,26 +3,12 @@ generer: identer: enable: true -### METRICS ### -management: - endpoints: - access: - default: read_only - web: - base-path: /internal - exposure: - include: prometheus,health - path-mapping: - prometheus: metrics - prometheus: - metrics: - export: - enabled: true - spring: application: name: testnav-ident-pool version: 1.0.0 + config: + import: "classpath:dolly-application.yml" flyway: enabled: true locations: classpath:/db/migration @@ -45,21 +31,9 @@ spring: issuer-uri: ${AZURE_OPENID_CONFIG_ISSUER} accepted-audience: ${AZURE_APP_CLIENT_ID}, api:// ${AZURE_APP_CLIENT_ID} -springdoc: - swagger-ui: - disable-swagger-default-url: true - url: /v3/api-docs - consumers: tps-messaging-service: url: http://testnav-tps-messaging-service.dolly.svc.cluster.local cluster: dev-gcp namespace: dolly name: testnav-tps-messaging-service - -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always diff --git a/apps/testnav-ident-pool/src/test/java/no/nav/testnav/identpool/ComponentTestbase.java b/apps/testnav-ident-pool/src/test/java/no/nav/testnav/identpool/ComponentTestbase.java index 18db81e3715..d3bd8503e59 100644 --- a/apps/testnav-ident-pool/src/test/java/no/nav/testnav/identpool/ComponentTestbase.java +++ b/apps/testnav-ident-pool/src/test/java/no/nav/testnav/identpool/ComponentTestbase.java @@ -7,7 +7,7 @@ import no.nav.testnav.identpool.domain.Kjoenn; import no.nav.testnav.identpool.domain.Rekvireringsstatus; import no.nav.testnav.identpool.repository.IdentRepository; -import no.nav.dolly.libs.nais.DollySpringBootTest; +import no.nav.dolly.libs.test.DollySpringBootTest; import org.junit.jupiter.api.BeforeEach; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; diff --git a/apps/testnorge-statisk-data-forvalter/config.yml b/apps/testnorge-statisk-data-forvalter/config.yml index d5b19da6a0e..e6fb2614cd0 100644 --- a/apps/testnorge-statisk-data-forvalter/config.yml +++ b/apps/testnorge-statisk-data-forvalter/config.yml @@ -16,7 +16,7 @@ spec: enabled: true tenant: nav.no liveness: - path: /internal/isAlive + path: /internal/health/liveness periodSeconds: 30 initialDelay: 30 observability: @@ -27,7 +27,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 30 prometheus: enabled: true diff --git a/apps/testnorge-statisk-data-forvalter/src/main/resources/application.yml b/apps/testnorge-statisk-data-forvalter/src/main/resources/application.yml index b2e5797c322..8a6beab417e 100644 --- a/apps/testnorge-statisk-data-forvalter/src/main/resources/application.yml +++ b/apps/testnorge-statisk-data-forvalter/src/main/resources/application.yml @@ -3,6 +3,8 @@ spring: version: application.version.todo name: testnorge-statisk-data-forvalter description: Api forvalting av de faste testdataene. + config: + import: "classpath:dolly-application.yml" servlet: multipart: max-file-size: 10MB @@ -15,11 +17,6 @@ spring: issuer-uri: ${AZURE_OPENID_CONFIG_ISSUER} accepted-audience: ${AZURE_APP_CLIENT_ID}, api:// ${AZURE_APP_CLIENT_ID} -springdoc: - swagger-ui: - disable-swagger-default-url: true - url: /v3/api-docs - controller: staticdata: cache: @@ -74,25 +71,3 @@ consumers: aareg: pageSize: 50 - -management: - endpoints: - access: - default: read_only - web: - base-path: /internal - exposure: - include: prometheus,health - path-mapping: - prometheus: metrics - prometheus: - metrics: - export: - enabled: true - -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always diff --git a/apps/testnorge-statisk-data-forvalter/src/test/java/no/nav/registre/sdforvalter/provider/rs/OrkestreringControllerAaregIntegrationTest.java b/apps/testnorge-statisk-data-forvalter/src/test/java/no/nav/registre/sdforvalter/provider/rs/OrkestreringControllerAaregIntegrationTest.java index db4d1e6aad9..9e73183d65b 100644 --- a/apps/testnorge-statisk-data-forvalter/src/test/java/no/nav/registre/sdforvalter/provider/rs/OrkestreringControllerAaregIntegrationTest.java +++ b/apps/testnorge-statisk-data-forvalter/src/test/java/no/nav/registre/sdforvalter/provider/rs/OrkestreringControllerAaregIntegrationTest.java @@ -5,7 +5,7 @@ import no.nav.registre.sdforvalter.consumer.rs.aareg.request.RsAaregSyntetiseringsRequest; import no.nav.registre.sdforvalter.database.model.AaregModel; import no.nav.registre.sdforvalter.database.repository.AaregRepository; -import no.nav.dolly.libs.nais.DollySpringBootTest; +import no.nav.dolly.libs.test.DollySpringBootTest; import no.nav.testnav.libs.securitycore.domain.AccessToken; import no.nav.testnav.libs.securitycore.domain.ServerProperties; import no.nav.testnav.libs.servletsecurity.exchange.TokenExchange; diff --git a/apps/testnorge-statisk-data-forvalter/src/test/java/no/nav/registre/sdforvalter/provider/rs/OrkestreringControllerKrrIntegrationTest.java b/apps/testnorge-statisk-data-forvalter/src/test/java/no/nav/registre/sdforvalter/provider/rs/OrkestreringControllerKrrIntegrationTest.java index 89a5b11bfbe..ef7bdfe797c 100644 --- a/apps/testnorge-statisk-data-forvalter/src/test/java/no/nav/registre/sdforvalter/provider/rs/OrkestreringControllerKrrIntegrationTest.java +++ b/apps/testnorge-statisk-data-forvalter/src/test/java/no/nav/registre/sdforvalter/provider/rs/OrkestreringControllerKrrIntegrationTest.java @@ -5,7 +5,7 @@ import no.nav.registre.sdforvalter.database.model.KrrModel; import no.nav.registre.sdforvalter.database.repository.KrrRepository; import no.nav.registre.sdforvalter.domain.Krr; -import no.nav.dolly.libs.nais.DollySpringBootTest; +import no.nav.dolly.libs.test.DollySpringBootTest; import no.nav.testnav.libs.testing.JsonWiremockHelper; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Test; diff --git a/apps/testnorge-statisk-data-forvalter/src/test/java/no/nav/registre/sdforvalter/provider/rs/v1/StaticDataControllerV1AaregIntegrationTest.java b/apps/testnorge-statisk-data-forvalter/src/test/java/no/nav/registre/sdforvalter/provider/rs/v1/StaticDataControllerV1AaregIntegrationTest.java index 6d3b6a8476c..1642722a06c 100644 --- a/apps/testnorge-statisk-data-forvalter/src/test/java/no/nav/registre/sdforvalter/provider/rs/v1/StaticDataControllerV1AaregIntegrationTest.java +++ b/apps/testnorge-statisk-data-forvalter/src/test/java/no/nav/registre/sdforvalter/provider/rs/v1/StaticDataControllerV1AaregIntegrationTest.java @@ -7,7 +7,7 @@ import no.nav.registre.sdforvalter.database.repository.AaregRepository; import no.nav.registre.sdforvalter.domain.Aareg; import no.nav.registre.sdforvalter.domain.AaregListe; -import no.nav.dolly.libs.nais.DollySpringBootTest; +import no.nav.dolly.libs.test.DollySpringBootTest; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; diff --git a/apps/testnorge-statisk-data-forvalter/src/test/java/no/nav/registre/sdforvalter/provider/rs/v1/StaticDataControllerV1EregIntegrationTest.java b/apps/testnorge-statisk-data-forvalter/src/test/java/no/nav/registre/sdforvalter/provider/rs/v1/StaticDataControllerV1EregIntegrationTest.java index 4ceaf7fcb11..ed966865f7a 100644 --- a/apps/testnorge-statisk-data-forvalter/src/test/java/no/nav/registre/sdforvalter/provider/rs/v1/StaticDataControllerV1EregIntegrationTest.java +++ b/apps/testnorge-statisk-data-forvalter/src/test/java/no/nav/registre/sdforvalter/provider/rs/v1/StaticDataControllerV1EregIntegrationTest.java @@ -13,7 +13,7 @@ import no.nav.registre.sdforvalter.domain.EregListe; import no.nav.registre.sdforvalter.domain.Gruppe; import no.nav.registre.sdforvalter.domain.Opprinnelse; -import no.nav.dolly.libs.nais.DollySpringBootTest; +import no.nav.dolly.libs.test.DollySpringBootTest; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; diff --git a/apps/testnorge-statisk-data-forvalter/src/test/java/no/nav/registre/sdforvalter/provider/rs/v1/StaticDataControllerV1KrrIntegrationTest.java b/apps/testnorge-statisk-data-forvalter/src/test/java/no/nav/registre/sdforvalter/provider/rs/v1/StaticDataControllerV1KrrIntegrationTest.java index 24eb9cb7d6b..95b32750b48 100644 --- a/apps/testnorge-statisk-data-forvalter/src/test/java/no/nav/registre/sdforvalter/provider/rs/v1/StaticDataControllerV1KrrIntegrationTest.java +++ b/apps/testnorge-statisk-data-forvalter/src/test/java/no/nav/registre/sdforvalter/provider/rs/v1/StaticDataControllerV1KrrIntegrationTest.java @@ -6,7 +6,7 @@ import no.nav.registre.sdforvalter.database.repository.KrrRepository; import no.nav.registre.sdforvalter.domain.Krr; import no.nav.registre.sdforvalter.domain.KrrListe; -import no.nav.dolly.libs.nais.DollySpringBootTest; +import no.nav.dolly.libs.test.DollySpringBootTest; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; diff --git a/apps/tilbakemelding-api/config.yml b/apps/tilbakemelding-api/config.yml index 0fda09c091e..f6298828495 100644 --- a/apps/tilbakemelding-api/config.yml +++ b/apps/tilbakemelding-api/config.yml @@ -32,7 +32,7 @@ spec: enabled: true tenant: nav.no liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 @@ -44,7 +44,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 diff --git a/apps/tilbakemelding-api/src/main/java/no/nav/registre/testnorge/tilbakemeldingapi/config/SecurityConfig.java b/apps/tilbakemelding-api/src/main/java/no/nav/registre/testnorge/tilbakemeldingapi/config/SecurityConfig.java index 3ac54bb6c89..4853e64b6eb 100644 --- a/apps/tilbakemelding-api/src/main/java/no/nav/registre/testnorge/tilbakemeldingapi/config/SecurityConfig.java +++ b/apps/tilbakemelding-api/src/main/java/no/nav/registre/testnorge/tilbakemeldingapi/config/SecurityConfig.java @@ -1,5 +1,6 @@ package no.nav.registre.testnorge.tilbakemeldingapi.config; +import no.nav.dolly.libs.security.config.DollyHttpSecurity; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.config.Customizer; @@ -9,26 +10,17 @@ import org.springframework.security.web.SecurityFilterChain; @Configuration -public class SecurityConfig { +class SecurityConfig { @Bean - public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { - - httpSecurity.sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) + SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { + return httpSecurity + .sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) .csrf(AbstractHttpConfigurer::disable) - .authorizeHttpRequests(authorizeConfig -> authorizeConfig.requestMatchers( - "/internal/**", - "/webjars/**", - "/swagger-resources/**", - "/v3/api-docs/**", - "/swagger-ui/**", - "/swagger", - "/error", - "/swagger-ui.html" - ).permitAll().requestMatchers("/api/**").fullyAuthenticated()) - .oauth2ResourceServer(oauth2RSConfig -> oauth2RSConfig.jwt(Customizer.withDefaults())); - - return httpSecurity.build(); + .authorizeHttpRequests(DollyHttpSecurity.withDefaultHttpRequests()) + .oauth2ResourceServer(oauth2RSConfig -> oauth2RSConfig.jwt(Customizer.withDefaults())) + .build(); } + } diff --git a/apps/tilbakemelding-api/src/main/resources/application.yml b/apps/tilbakemelding-api/src/main/resources/application.yml index e0e648809ae..c3dca9e7cbf 100644 --- a/apps/tilbakemelding-api/src/main/resources/application.yml +++ b/apps/tilbakemelding-api/src/main/resources/application.yml @@ -2,6 +2,8 @@ spring: application: name: testnorge-tilbakemelding-api description: App for innsending av tilbakemeldinger. Tilbakemeldingene blir publisert i slack + config: + import: "classpath:dolly-application.yml" security: oauth2: resourceserver: @@ -12,11 +14,6 @@ spring: issuer-uri: ${TOKEN_X_ISSUER} accepted-audience: ${TOKEN_X_CLIENT_ID} -springdoc: - swagger-ui: - disable-swagger-default-url: true - url: /v3/api-docs - consumers: slack: token: ${SLACK_TOKEN} @@ -26,26 +23,4 @@ consumers: url: http://testnorge-profil-api.dolly.svc.cluster.local cluster: dev-gcp namespace: dolly - name: testnorge-profil-api - -management: - endpoints: - access: - default: read_only - web: - base-path: /internal - exposure: - include: prometheus,health - path-mapping: - prometheus: metrics - prometheus: - metrics: - export: - enabled: true - -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always \ No newline at end of file + name: testnorge-profil-api \ No newline at end of file diff --git a/apps/tilbakemelding-api/src/test/java/no/nav/registre/testnorge/tilbakemeldingapi/ApplicationContextTest.java b/apps/tilbakemelding-api/src/test/java/no/nav/registre/testnorge/tilbakemeldingapi/ApplicationContextTest.java index f944f4296c7..ee8fb4ea977 100644 --- a/apps/tilbakemelding-api/src/test/java/no/nav/registre/testnorge/tilbakemeldingapi/ApplicationContextTest.java +++ b/apps/tilbakemelding-api/src/test/java/no/nav/registre/testnorge/tilbakemeldingapi/ApplicationContextTest.java @@ -1,16 +1,8 @@ package no.nav.registre.testnorge.tilbakemeldingapi; -import no.nav.dolly.libs.nais.DollySpringBootTest; -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import no.nav.dolly.libs.test.DollySpringBootTest; +import no.nav.dolly.libs.test.DollyApplicationContextTest; @DollySpringBootTest -class ApplicationContextTest { - - @Test - void loadAppContext() { - assertThat(true).isTrue(); - } - +class ApplicationContextTest extends DollyApplicationContextTest { } diff --git a/apps/tps-messaging-service/config.yml b/apps/tps-messaging-service/config.yml index 101bfc0de90..fadfc69daee 100644 --- a/apps/tps-messaging-service/config.yml +++ b/apps/tps-messaging-service/config.yml @@ -21,7 +21,7 @@ spec: ingresses: - "https://testnav-tps-messaging-service.intern.dev.nav.no" liveness: - path: /internal/isAlive + path: /internal/health/liveness periodSeconds: 30 initialDelay: 30 observability: @@ -32,7 +32,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 30 prometheus: enabled: true diff --git a/apps/tps-messaging-service/src/main/java/no/nav/testnav/apps/tpsmessagingservice/TpsMessagingServiceApplicationStarter.java b/apps/tps-messaging-service/src/main/java/no/nav/testnav/apps/tpsmessagingservice/TpsMessagingServiceApplicationStarter.java index a8384a71269..e0e4c1a47fd 100644 --- a/apps/tps-messaging-service/src/main/java/no/nav/testnav/apps/tpsmessagingservice/TpsMessagingServiceApplicationStarter.java +++ b/apps/tps-messaging-service/src/main/java/no/nav/testnav/apps/tpsmessagingservice/TpsMessagingServiceApplicationStarter.java @@ -3,7 +3,9 @@ import no.nav.dolly.libs.nais.NaisEnvironmentApplicationContextInitializer; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +@EnableWebSecurity @SpringBootApplication public class TpsMessagingServiceApplicationStarter { diff --git a/apps/tps-messaging-service/src/main/java/no/nav/testnav/apps/tpsmessagingservice/config/SecurityConfig.java b/apps/tps-messaging-service/src/main/java/no/nav/testnav/apps/tpsmessagingservice/config/SecurityConfig.java index f559342d4e1..82224b18d30 100644 --- a/apps/tps-messaging-service/src/main/java/no/nav/testnav/apps/tpsmessagingservice/config/SecurityConfig.java +++ b/apps/tps-messaging-service/src/main/java/no/nav/testnav/apps/tpsmessagingservice/config/SecurityConfig.java @@ -1,39 +1,25 @@ package no.nav.testnav.apps.tpsmessagingservice.config; +import no.nav.dolly.libs.security.config.DollyHttpSecurity; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Profile; -import org.springframework.core.annotation.Order; import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; -import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; -@EnableWebSecurity @Configuration -@Profile({ "prod", "local" }) -@Order(1) -public class SecurityConfig { +class SecurityConfig { @Bean - public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { - - httpSecurity.sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) + SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { + return httpSecurity + .sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) .csrf(AbstractHttpConfigurer::disable) - .authorizeHttpRequests(authorizeConfig -> authorizeConfig.requestMatchers( - "/internal/**", - "/webjars/**", - "/swagger-resources/**", - "/v3/api-docs/**", - "/swagger-ui/**", - "/swagger", - "/error", - "/swagger-ui.html" - ).permitAll().requestMatchers("/api/**").fullyAuthenticated()) - .oauth2ResourceServer(oauth2RSConfig -> oauth2RSConfig.jwt(Customizer.withDefaults())); - - return httpSecurity.build(); + .authorizeHttpRequests(DollyHttpSecurity.withDefaultHttpRequests()) + .oauth2ResourceServer(oauth2RSConfig -> oauth2RSConfig.jwt(Customizer.withDefaults())) + .build(); } + } diff --git a/apps/tps-messaging-service/src/main/resources/application.yml b/apps/tps-messaging-service/src/main/resources/application.yml index be72c384808..76bed6ff0aa 100644 --- a/apps/tps-messaging-service/src/main/resources/application.yml +++ b/apps/tps-messaging-service/src/main/resources/application.yml @@ -1,6 +1,8 @@ spring: application: name: testnav-tps-messaging-service + config: + import: "classpath:dolly-application.yml" flyway: enabled: false security: @@ -10,11 +12,6 @@ spring: issuer-uri: ${AZURE_OPENID_CONFIG_ISSUER} accepted-audience: ${AZURE_APP_CLIENT_ID}, api://${AZURE_APP_CLIENT_ID} -springdoc: - swagger-ui: - disable-swagger-default-url: true - url: /v3/api-docs - config: mq: test: @@ -39,28 +36,6 @@ consumers: name: testnav-miljoer-service management: - endpoints: - access: - default: read_only - web: - base-path: /internal - exposure: - include: prometheus,health - path-mapping: - prometheus: metrics - health: - show-details: always health: elasticsearch: - enabled: false - prometheus: - metrics: - export: - enabled: true - -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always \ No newline at end of file + enabled: false \ No newline at end of file diff --git a/apps/tps-messaging-service/src/test/java/no/nav/testnav/apps/tpsmessagingservice/ApplicationContextTest.java b/apps/tps-messaging-service/src/test/java/no/nav/testnav/apps/tpsmessagingservice/ApplicationContextTest.java index 4380cf121cd..4e4dbbacd0f 100644 --- a/apps/tps-messaging-service/src/test/java/no/nav/testnav/apps/tpsmessagingservice/ApplicationContextTest.java +++ b/apps/tps-messaging-service/src/test/java/no/nav/testnav/apps/tpsmessagingservice/ApplicationContextTest.java @@ -1,16 +1,8 @@ package no.nav.testnav.apps.tpsmessagingservice; -import no.nav.dolly.libs.nais.DollySpringBootTest; -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import no.nav.dolly.libs.test.DollySpringBootTest; +import no.nav.dolly.libs.test.DollyApplicationContextTest; @DollySpringBootTest -class ApplicationContextTest { - - @Test - void loadAppContext() { - assertThat(true).isTrue(); - } - +class ApplicationContextTest extends DollyApplicationContextTest { } \ No newline at end of file diff --git a/apps/udi-stub/config.yml b/apps/udi-stub/config.yml index ee6a3d93771..c86018b0c3b 100644 --- a/apps/udi-stub/config.yml +++ b/apps/udi-stub/config.yml @@ -30,7 +30,7 @@ spec: - application: testnav-udistub-proxy cluster: dev-fss liveness: - path: /internal/isAlive + path: /internal/health/liveness periodSeconds: 30 initialDelay: 30 observability: @@ -41,7 +41,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 30 prometheus: enabled: true diff --git a/apps/udi-stub/src/main/resources/application.yml b/apps/udi-stub/src/main/resources/application.yml index e8c4b285c1b..0e140cfe4f9 100644 --- a/apps/udi-stub/src/main/resources/application.yml +++ b/apps/udi-stub/src/main/resources/application.yml @@ -3,6 +3,8 @@ spring: name: Testnav-UDI-stub version: 1.1 description: Stub av persontjenesten til UDI + config: + import: "classpath:dolly-application.yml" jpa: properties: hibernate: @@ -20,30 +22,3 @@ spring: issuer-uri: ${AZURE_OPENID_CONFIG_ISSUER} accepted-audience: ${AZURE_APP_CLIENT_ID}, api:// ${AZURE_APP_CLIENT_ID} -springdoc: - swagger-ui: - disable-swagger-default-url: true - url: /v3/api-docs - -management: - endpoints: - access: - default: read_only - web: - base-path: /internal - exposure: - include: prometheus,health - path-mapping: - prometheus: metrics - prometheus: - metrics: - export: - enabled: true - -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always - diff --git a/apps/udi-stub/src/test/java/no/nav/udistub/converter/itest/UdiStubITest.java b/apps/udi-stub/src/test/java/no/nav/udistub/converter/itest/UdiStubITest.java index 0826af57f37..4c7dd985680 100644 --- a/apps/udi-stub/src/test/java/no/nav/udistub/converter/itest/UdiStubITest.java +++ b/apps/udi-stub/src/test/java/no/nav/udistub/converter/itest/UdiStubITest.java @@ -1,7 +1,7 @@ package no.nav.udistub.converter.itest; import ma.glasnost.orika.MapperFacade; -import no.nav.dolly.libs.nais.DollySpringBootTest; +import no.nav.dolly.libs.test.DollySpringBootTest; import no.nav.udistub.database.model.Person; import no.nav.udistub.database.repository.PersonRepository; import no.nav.udistub.service.dto.UdiPerson; diff --git a/apps/varslinger-service/config.test.yml b/apps/varslinger-service/config.test.yml index a4d04cf93e2..4a5ee735afe 100644 --- a/apps/varslinger-service/config.test.yml +++ b/apps/varslinger-service/config.test.yml @@ -30,7 +30,7 @@ spec: databases: - name: testnav-varslinger-db-dev liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 @@ -42,7 +42,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 diff --git a/apps/varslinger-service/config.yml b/apps/varslinger-service/config.yml index f22f2183c72..426ad6adc7d 100644 --- a/apps/varslinger-service/config.yml +++ b/apps/varslinger-service/config.yml @@ -31,7 +31,7 @@ spec: databases: - name: testnav-varslinger-db liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 @@ -43,7 +43,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 diff --git a/apps/varslinger-service/src/main/java/no/nav/registre/varslingerservice/VarslingerServiceApplicationStarter.java b/apps/varslinger-service/src/main/java/no/nav/registre/varslingerservice/VarslingerServiceApplicationStarter.java index 8250fe13977..38cd3c1aca2 100644 --- a/apps/varslinger-service/src/main/java/no/nav/registre/varslingerservice/VarslingerServiceApplicationStarter.java +++ b/apps/varslinger-service/src/main/java/no/nav/registre/varslingerservice/VarslingerServiceApplicationStarter.java @@ -3,7 +3,9 @@ import no.nav.dolly.libs.nais.NaisEnvironmentApplicationContextInitializer; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +@EnableWebSecurity @SpringBootApplication public class VarslingerServiceApplicationStarter { public static void main(String[] args) { diff --git a/apps/varslinger-service/src/main/java/no/nav/registre/varslingerservice/config/SecurityConfig.java b/apps/varslinger-service/src/main/java/no/nav/registre/varslingerservice/config/SecurityConfig.java index ff9d9e312d0..d3ff268b728 100644 --- a/apps/varslinger-service/src/main/java/no/nav/registre/varslingerservice/config/SecurityConfig.java +++ b/apps/varslinger-service/src/main/java/no/nav/registre/varslingerservice/config/SecurityConfig.java @@ -1,36 +1,25 @@ package no.nav.registre.varslingerservice.config; +import no.nav.dolly.libs.security.config.DollyHttpSecurity; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; -import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; -@EnableWebSecurity @Configuration -public class SecurityConfig { +class SecurityConfig { @Bean - public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { - - httpSecurity.sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) + SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { + return httpSecurity + .sessionManagement(sessionConfig -> sessionConfig.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) .csrf(AbstractHttpConfigurer::disable) - .authorizeHttpRequests(authorizeConfig -> authorizeConfig.requestMatchers( - "/internal/**", - "/webjars/**", - "/swagger-resources/**", - "/v3/api-docs/**", - "/swagger-ui/**", - "/swagger", - "/error", - "/swagger-ui.html" - ).permitAll().requestMatchers("/api/**").fullyAuthenticated()) - .oauth2ResourceServer(oauth2RSConfig -> oauth2RSConfig.jwt(Customizer.withDefaults())); - - return httpSecurity.build(); + .authorizeHttpRequests(DollyHttpSecurity.withDefaultHttpRequests()) + .oauth2ResourceServer(oauth2RSConfig -> oauth2RSConfig.jwt(Customizer.withDefaults())) + .build(); } } diff --git a/apps/varslinger-service/src/main/resources/application.yml b/apps/varslinger-service/src/main/resources/application.yml index 0743cf2025c..78afb47c88e 100644 --- a/apps/varslinger-service/src/main/resources/application.yml +++ b/apps/varslinger-service/src/main/resources/application.yml @@ -2,6 +2,8 @@ spring: application: name: testnav-varslinger-service description: Applikasjon for å registrere varslinger + config: + import: "classpath:dolly-application.yml" security: oauth2: resourceserver: @@ -10,31 +12,4 @@ spring: accepted-audience: ${AZURE_APP_CLIENT_ID}, api:// ${AZURE_APP_CLIENT_ID} tokenx: issuer-uri: ${TOKEN_X_ISSUER} - accepted-audience: ${TOKEN_X_CLIENT_ID} - -springdoc: - swagger-ui: - disable-swagger-default-url: true - url: /v3/api-docs - -management: - endpoints: - access: - default: read_only - web: - base-path: /internal - exposure: - include: prometheus,health - path-mapping: - prometheus: metrics - prometheus: - metrics: - export: - enabled: true - -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always \ No newline at end of file + accepted-audience: ${TOKEN_X_CLIENT_ID} \ No newline at end of file diff --git a/apps/varslinger-service/src/test/java/no/nav/registre/varslingerservice/controller/VarslingerControllerTest.java b/apps/varslinger-service/src/test/java/no/nav/registre/varslingerservice/controller/VarslingerControllerTest.java index fef40637912..665bc6690b3 100644 --- a/apps/varslinger-service/src/test/java/no/nav/registre/varslingerservice/controller/VarslingerControllerTest.java +++ b/apps/varslinger-service/src/test/java/no/nav/registre/varslingerservice/controller/VarslingerControllerTest.java @@ -3,7 +3,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import no.nav.registre.varslingerservice.repository.VarslingRepository; import no.nav.registre.varslingerservice.repository.model.VarslingModel; -import no.nav.dolly.libs.nais.DollySpringBootTest; +import no.nav.dolly.libs.test.DollySpringBootTest; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; diff --git a/apps/varslinger-service/src/test/java/no/nav/registre/varslingerservice/controller/VarslingerPersonControllerTest.java b/apps/varslinger-service/src/test/java/no/nav/registre/varslingerservice/controller/VarslingerPersonControllerTest.java index f23085e59a2..d82f388a752 100644 --- a/apps/varslinger-service/src/test/java/no/nav/registre/varslingerservice/controller/VarslingerPersonControllerTest.java +++ b/apps/varslinger-service/src/test/java/no/nav/registre/varslingerservice/controller/VarslingerPersonControllerTest.java @@ -8,7 +8,7 @@ import no.nav.registre.varslingerservice.repository.model.BrukerModel; import no.nav.registre.varslingerservice.repository.model.MottattVarslingModel; import no.nav.registre.varslingerservice.repository.model.VarslingModel; -import no.nav.dolly.libs.nais.DollySpringBootTest; +import no.nav.dolly.libs.test.DollySpringBootTest; import no.nav.testnav.libs.securitycore.domain.Token; import no.nav.testnav.libs.servletsecurity.action.GetAuthenticatedId; import no.nav.testnav.libs.servletsecurity.action.GetAuthenticatedToken; diff --git a/libs/reactive-core/src/main/java/no/nav/testnav/libs/reactivecore/config/CoreConfig.java b/libs/reactive-core/src/main/java/no/nav/testnav/libs/reactivecore/config/CoreConfig.java index 8d15ebfb77f..c85f5a6f1e4 100644 --- a/libs/reactive-core/src/main/java/no/nav/testnav/libs/reactivecore/config/CoreConfig.java +++ b/libs/reactive-core/src/main/java/no/nav/testnav/libs/reactivecore/config/CoreConfig.java @@ -1,15 +1,11 @@ package no.nav.testnav.libs.reactivecore.config; import no.nav.testnav.libs.reactivecore.filter.RequestLogger; -import no.nav.testnav.libs.reactivecore.router.InternalHandler; -import no.nav.testnav.libs.reactivecore.router.InternalRouter; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; @Import({ RequestLogger.class, - InternalHandler.class, - InternalRouter.class, ApplicationProperties.class, WebClientConfig.class }) diff --git a/libs/reactive-core/src/main/java/no/nav/testnav/libs/reactivecore/router/InternalHandler.java b/libs/reactive-core/src/main/java/no/nav/testnav/libs/reactivecore/router/InternalHandler.java deleted file mode 100644 index a78595a50ec..00000000000 --- a/libs/reactive-core/src/main/java/no/nav/testnav/libs/reactivecore/router/InternalHandler.java +++ /dev/null @@ -1,51 +0,0 @@ -package no.nav.testnav.libs.reactivecore.router; - -import com.fasterxml.jackson.annotation.JsonInclude; -import lombok.Builder; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Component; -import org.springframework.web.reactive.function.BodyInserters; -import org.springframework.web.reactive.function.server.ServerRequest; -import org.springframework.web.reactive.function.server.ServerResponse; -import reactor.core.publisher.Mono; - -import static java.util.Objects.nonNull; - -@Component -public class InternalHandler { - - private final String image; - - public InternalHandler(@Value("${NAIS_APP_IMAGE:null}") String image) { - this.image = image; - } - - public Mono isAlive(ServerRequest ignored) { - return ServerResponse.ok().build(); - } - - public Mono isReady(ServerRequest ignored) { - return ServerResponse.ok().build(); - } - - public Mono getVersion(ServerRequest ignored) { - - return ServerResponse - .ok() - .body(BodyInserters.fromValue( - JsonResponse.builder() - .image(image) - .commit(nonNull(image) && image.lastIndexOf("-") > 0 ? - "https://github.com/navikt/testnorge/commit/" + - image.substring(image.lastIndexOf("-") + 1) : null) - .build())); - } - - @Builder - @JsonInclude(JsonInclude.Include.NON_NULL) - record JsonResponse( - String image, - String commit - ) { - } -} diff --git a/libs/reactive-core/src/main/java/no/nav/testnav/libs/reactivecore/router/InternalRouter.java b/libs/reactive-core/src/main/java/no/nav/testnav/libs/reactivecore/router/InternalRouter.java deleted file mode 100644 index 7b106a5c994..00000000000 --- a/libs/reactive-core/src/main/java/no/nav/testnav/libs/reactivecore/router/InternalRouter.java +++ /dev/null @@ -1,30 +0,0 @@ -package no.nav.testnav.libs.reactivecore.router; - -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.web.reactive.function.server.RequestPredicates; -import org.springframework.web.reactive.function.server.RouterFunction; -import org.springframework.web.reactive.function.server.RouterFunctions; -import org.springframework.web.reactive.function.server.ServerResponse; - -import static org.springframework.http.MediaType.APPLICATION_JSON; -import static org.springframework.http.MediaType.TEXT_PLAIN; - -@Configuration -public class InternalRouter { - - @Bean - public RouterFunction internalRoute(InternalHandler internalHandler) { - return RouterFunctions - .route( - RequestPredicates.GET("/internal/isAlive").and(RequestPredicates.accept(TEXT_PLAIN)), - internalHandler::isAlive - ).andRoute( - RequestPredicates.GET("/internal/isReady").and(RequestPredicates.accept(TEXT_PLAIN)), - internalHandler::isReady - ).andRoute( - RequestPredicates.GET("/internal/image").and(RequestPredicates.accept(TEXT_PLAIN, APPLICATION_JSON)), - internalHandler::getVersion - ); - } -} diff --git a/libs/reactive-core/src/test/java/no/nav/testnav/libs/reactivecore/router/InternalHandlerTest.java b/libs/reactive-core/src/test/java/no/nav/testnav/libs/reactivecore/router/InternalHandlerTest.java deleted file mode 100644 index 65741564d38..00000000000 --- a/libs/reactive-core/src/test/java/no/nav/testnav/libs/reactivecore/router/InternalHandlerTest.java +++ /dev/null @@ -1,75 +0,0 @@ -package no.nav.testnav.libs.reactivecore.router; - -import lombok.extern.slf4j.Slf4j; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; -import org.springframework.http.HttpStatus; -import org.springframework.http.codec.HttpMessageWriter; -import org.springframework.mock.http.server.reactive.MockServerHttpRequest; -import org.springframework.mock.web.server.MockServerWebExchange; -import org.springframework.web.reactive.function.server.HandlerStrategies; -import org.springframework.web.reactive.function.server.ServerResponse; -import org.springframework.web.reactive.result.view.ViewResolver; -import reactor.test.StepVerifier; - -import java.util.Collections; -import java.util.List; - -import static org.assertj.core.api.Assertions.assertThat; - -@Slf4j -class InternalHandlerTest { - - private static final ServerResponse.Context CONTEXT = new ServerResponse.Context() { - @Override - public List> messageWriters() { - return HandlerStrategies.withDefaults().messageWriters(); - } - - @Override - public List viewResolvers() { - return Collections.emptyList(); - } - }; - @Test - @DisplayName("Test response body with null NAIS_APP_IMAGE") - void testNullNaisAppImage() { - - var internalHandler = new InternalHandler(null); - - StepVerifier - .create(internalHandler.isAlive(null)) - .expectNextMatches(status -> status.statusCode() == HttpStatus.OK) - .verifyComplete(); - - StepVerifier - .create(internalHandler.isReady(null)) - .expectNextMatches(status -> status.statusCode() == HttpStatus.OK) - .verifyComplete(); - - StepVerifier - .create(internalHandler.getVersion(null)) - .expectNextMatches(status -> status.statusCode() == HttpStatus.OK) - .verifyComplete(); - } - - @Test - @DisplayName("Test response body with expected NAIS_APP_IMAGE") - void testNonNullNaisAppImage() { - - var handler = new InternalHandler("europe-north1-docker.pkg.dev/nais-management-233d/dolly/testnorge-dolly-backend:2023.05.04-13.27-36aa348"); - - assertThat(handler.getVersion(null)) - .isNotNull() - .satisfies(mono -> assertThat(mono.block()) - .isNotNull() - .satisfies(response -> { - assertThat(response.statusCode()).isEqualTo(HttpStatus.OK); - var exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/internal/isAlive")); - response.writeTo(exchange, CONTEXT).block(); - assertThat(exchange.getResponse().getBodyAsString().block()) - .isNotNull() - .satisfies(body -> assertThat(body).isEqualTo("{\"image\":\"europe-north1-docker.pkg.dev/nais-management-233d/dolly/testnorge-dolly-backend:2023.05.04-13.27-36aa348\",\"commit\":\"https://github.com/navikt/testnorge/commit/36aa348\"}")); - })); - } -} diff --git a/libs/reactive-security/src/main/java/no/nav/testnav/libs/reactivesecurity/exchange/TokenServiceAutoConfiguration.java b/libs/reactive-security/src/main/java/no/nav/testnav/libs/reactivesecurity/exchange/TokenServiceAutoConfiguration.java index f33c6c1f0f0..5ddbd5b5317 100644 --- a/libs/reactive-security/src/main/java/no/nav/testnav/libs/reactivesecurity/exchange/TokenServiceAutoConfiguration.java +++ b/libs/reactive-security/src/main/java/no/nav/testnav/libs/reactivesecurity/exchange/TokenServiceAutoConfiguration.java @@ -13,7 +13,6 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Primary; import org.springframework.context.annotation.Profile; -import org.springframework.util.Assert; @AutoConfiguration(after = ClientCredentialAutoConfiguration.class) public class TokenServiceAutoConfiguration { @@ -28,7 +27,7 @@ AzureTokenService azureAdTokenServiceTest( AzureClientCredential clientCredential, GetAuthenticatedToken getAuthenticatedToken ) { - return new AzureTokenService(null, clientCredential, getAuthenticatedToken); + return new AzureTokenService.Test(null, clientCredential, getAuthenticatedToken); } @Bean @@ -47,7 +46,7 @@ AzureTokenService azureAdTokenService( AzureNavTokenService azureNavTokenServiceTest( AzureNavClientCredential azureNavClientCredential ) { - return new AzureNavTokenService(null, azureNavClientCredential); + return new AzureNavTokenService.Test(null, azureNavClientCredential); } @Bean @@ -67,7 +66,7 @@ AzureTrygdeetatenTokenService trygdeetatenAzureAdTokenServiceTest( GetAuthenticatedUserId getAuthenticatedUserId, ObjectMapper objectMapper ) { - return new AzureTrygdeetatenTokenService(null, clientCredential, getAuthenticatedUserId, objectMapper); + return new AzureTrygdeetatenTokenService.Test(null, clientCredential, getAuthenticatedUserId, objectMapper); } @Bean diff --git a/libs/reactive-security/src/main/java/no/nav/testnav/libs/reactivesecurity/exchange/azuread/AzureNavTokenService.java b/libs/reactive-security/src/main/java/no/nav/testnav/libs/reactivesecurity/exchange/azuread/AzureNavTokenService.java index ea7001cafd8..133bf658a5b 100644 --- a/libs/reactive-security/src/main/java/no/nav/testnav/libs/reactivesecurity/exchange/azuread/AzureNavTokenService.java +++ b/libs/reactive-security/src/main/java/no/nav/testnav/libs/reactivesecurity/exchange/azuread/AzureNavTokenService.java @@ -64,4 +64,18 @@ public Mono exchange(ServerProperties serverProperties) { ).call(); } + + public static class Test extends AzureNavTokenService { + + public Test(String proxyHost, AzureNavClientCredential azureNavClientCredential) { + super(proxyHost, azureNavClientCredential); + } + + @Override + public Mono exchange(ServerProperties serverProperties) { + return Mono.empty(); + } + + } + } diff --git a/libs/reactive-security/src/main/java/no/nav/testnav/libs/reactivesecurity/exchange/azuread/AzureTokenService.java b/libs/reactive-security/src/main/java/no/nav/testnav/libs/reactivesecurity/exchange/azuread/AzureTokenService.java index e2a93dd9abf..39f6c2fce19 100644 --- a/libs/reactive-security/src/main/java/no/nav/testnav/libs/reactivesecurity/exchange/azuread/AzureTokenService.java +++ b/libs/reactive-security/src/main/java/no/nav/testnav/libs/reactivesecurity/exchange/azuread/AzureTokenService.java @@ -97,4 +97,18 @@ private Mono generateOnBehalfOfAccessToken(Token token, ServerPrope token ).call(); } + + public static class Test extends AzureTokenService { + + public Test(String proxyHost, AzureClientCredential azureClientCredential, GetAuthenticatedToken getAuthenticatedToken) { + super(proxyHost, azureClientCredential, getAuthenticatedToken); + } + + @Override + public Mono exchange(ServerProperties serverProperties) { + return Mono.empty(); + } + + } + } diff --git a/libs/reactive-security/src/main/java/no/nav/testnav/libs/reactivesecurity/exchange/azuread/AzureTrygdeetatenTokenService.java b/libs/reactive-security/src/main/java/no/nav/testnav/libs/reactivesecurity/exchange/azuread/AzureTrygdeetatenTokenService.java index a6fae4111f7..26f957efa60 100644 --- a/libs/reactive-security/src/main/java/no/nav/testnav/libs/reactivesecurity/exchange/azuread/AzureTrygdeetatenTokenService.java +++ b/libs/reactive-security/src/main/java/no/nav/testnav/libs/reactivesecurity/exchange/azuread/AzureTrygdeetatenTokenService.java @@ -114,4 +114,18 @@ private boolean expires(AccessToken accessToken) { .minusSeconds(300) .isBefore(Instant.now()); } + + public static class Test extends AzureTrygdeetatenTokenService { + + public Test(String proxyHost, AzureTrygdeetatenClientCredential azureTrygdeetatenClientCredential, GetAuthenticatedUserId getAuthenticatedUserId, ObjectMapper objectMapper) { + super(proxyHost, azureTrygdeetatenClientCredential, getAuthenticatedUserId, objectMapper); + } + + @Override + public Mono exchange(ServerProperties serverProperties) { + return Mono.empty(); + } + + } + } diff --git a/libs/servlet-core/src/main/java/no/nav/testnav/libs/servletcore/config/ApplicationCoreConfig.java b/libs/servlet-core/src/main/java/no/nav/testnav/libs/servletcore/config/ApplicationCoreConfig.java index fd02e80d322..ff8473356ad 100644 --- a/libs/servlet-core/src/main/java/no/nav/testnav/libs/servletcore/config/ApplicationCoreConfig.java +++ b/libs/servlet-core/src/main/java/no/nav/testnav/libs/servletcore/config/ApplicationCoreConfig.java @@ -1,16 +1,12 @@ package no.nav.testnav.libs.servletcore.config; -import no.nav.testnav.libs.servletcore.health.HealthToMeterAutoConfig; -import no.nav.testnav.libs.servletcore.provider.InternalController; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; @Configuration @Import({ - InternalController.class, ApplicationProperties.class, - LoggingWebConfig.class, - HealthToMeterAutoConfig.class + LoggingWebConfig.class }) public class ApplicationCoreConfig { } \ No newline at end of file diff --git a/libs/servlet-core/src/main/java/no/nav/testnav/libs/servletcore/health/Health.java b/libs/servlet-core/src/main/java/no/nav/testnav/libs/servletcore/health/Health.java index 561b59f956a..f81ec77e55d 100644 --- a/libs/servlet-core/src/main/java/no/nav/testnav/libs/servletcore/health/Health.java +++ b/libs/servlet-core/src/main/java/no/nav/testnav/libs/servletcore/health/Health.java @@ -3,11 +3,10 @@ import lombok.experimental.UtilityClass; @UtilityClass -public class Health { - - public static final String UP = "UP"; - public static final String PAUSED = "PAUSED"; - public static final String DISABLED = "DISABLED"; - public static final String OUT_OF_SERVICE = "OUT_OF_SERVICE"; - public static final String DOWN = "DOWN"; +class Health { + static final String UP = "UP"; + static final String PAUSED = "PAUSED"; + static final String DISABLED = "DISABLED"; + static final String OUT_OF_SERVICE = "OUT_OF_SERVICE"; + static final String DOWN = "DOWN"; } \ No newline at end of file diff --git a/libs/servlet-core/src/main/java/no/nav/testnav/libs/servletcore/health/HealthToMeterAutoConfig.java b/libs/servlet-core/src/main/java/no/nav/testnav/libs/servletcore/health/HealthAutoConfiguration.java similarity index 60% rename from libs/servlet-core/src/main/java/no/nav/testnav/libs/servletcore/health/HealthToMeterAutoConfig.java rename to libs/servlet-core/src/main/java/no/nav/testnav/libs/servletcore/health/HealthAutoConfiguration.java index 228e88fa44d..1418024fd04 100644 --- a/libs/servlet-core/src/main/java/no/nav/testnav/libs/servletcore/health/HealthToMeterAutoConfig.java +++ b/libs/servlet-core/src/main/java/no/nav/testnav/libs/servletcore/health/HealthAutoConfiguration.java @@ -5,6 +5,7 @@ import org.springframework.boot.actuate.health.SimpleStatusAggregator; import org.springframework.boot.actuate.health.StatusAggregator; import org.springframework.boot.autoconfigure.AutoConfigureAfter; +import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Profile; @@ -14,15 +15,15 @@ @Configuration(proxyBeanMethods = false) @AutoConfigureAfter(HealthContributorAutoConfiguration.class) @Profile("!test") -public class HealthToMeterAutoConfig { +public class HealthAutoConfiguration { @Bean - public HealthToMeterBinder healthToMeterBinder(HealthContributorRegistry registry) { + HealthToMeterBinder healthToMeterBinder(HealthContributorRegistry registry) { return new HealthToMeterBinder(registry); } @Bean - public StatusAggregator statusAggregator() { + StatusAggregator statusAggregator() { return new SimpleStatusAggregator(List.of( Health.DOWN, Health.OUT_OF_SERVICE, @@ -31,4 +32,14 @@ public StatusAggregator statusAggregator() { Health.UP )); } + + @Bean + FilterRegistrationBean redirectFilterRegistration() { + var registrationBean = new FilterRegistrationBean(); + registrationBean.setFilter(new LegacyHealthEndpointsForwardingFilter()); + registrationBean.addUrlPatterns("/internal/isAlive", "/internal/isReady"); + registrationBean.setOrder(1); + return registrationBean; + } + } diff --git a/libs/servlet-core/src/main/java/no/nav/testnav/libs/servletcore/health/HealthToMeterBinder.java b/libs/servlet-core/src/main/java/no/nav/testnav/libs/servletcore/health/HealthToMeterBinder.java index 6ecde40085a..602e6dd5a39 100644 --- a/libs/servlet-core/src/main/java/no/nav/testnav/libs/servletcore/health/HealthToMeterBinder.java +++ b/libs/servlet-core/src/main/java/no/nav/testnav/libs/servletcore/health/HealthToMeterBinder.java @@ -7,30 +7,33 @@ import lombok.val; import org.springframework.boot.actuate.health.HealthContributorRegistry; import org.springframework.boot.actuate.health.HealthIndicator; +import org.springframework.lang.NonNull; import java.util.function.ToDoubleFunction; @RequiredArgsConstructor -public class HealthToMeterBinder implements MeterBinder { +class HealthToMeterBinder implements MeterBinder { private final HealthContributorRegistry registry; @Override - public void bindTo(MeterRegistry meterRegistry) { - registry.stream() + public void bindTo(@NonNull MeterRegistry meterRegistry) { + registry + .stream() .filter(e -> e.getContributor() instanceof HealthIndicator) .forEach(e -> bind(e.getName(), (HealthIndicator) e.getContributor(), meterRegistry)); } - private void bind(String key, HealthIndicator healthIndicator, MeterRegistry registry) { - Gauge.builder("health", healthIndicator, statusToDouble()).tag("name", key).register(registry); + private static void bind(String key, HealthIndicator healthIndicator, MeterRegistry registry) { + Gauge + .builder("health", healthIndicator, statusToDouble()) + .tag("name", key) + .register(registry); } - private ToDoubleFunction statusToDouble() { - + private static ToDoubleFunction statusToDouble() { return value -> { val status = value.health().getStatus().getCode(); - return switch (status) { case Health.UP -> 1; case Health.PAUSED -> 2; diff --git a/libs/servlet-core/src/main/java/no/nav/testnav/libs/servletcore/health/LegacyHealthEndpointsForwardingFilter.java b/libs/servlet-core/src/main/java/no/nav/testnav/libs/servletcore/health/LegacyHealthEndpointsForwardingFilter.java new file mode 100644 index 00000000000..110ba75235c --- /dev/null +++ b/libs/servlet-core/src/main/java/no/nav/testnav/libs/servletcore/health/LegacyHealthEndpointsForwardingFilter.java @@ -0,0 +1,41 @@ +package no.nav.testnav.libs.servletcore.health; + +import jakarta.servlet.*; +import jakarta.servlet.http.HttpFilter; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import lombok.extern.slf4j.Slf4j; + +import java.io.IOException; + +/** + *

A filter to provide forwards from the legacy {@code /internal/isAlive} and {@code /internal/isReady} + * endpoints to the new {@code /internal/health/liveness} and {@code /internal/health/readiness} endpoints.

+ *

This is to ensure backwards compatibility with external apps that may still be using the old endpoints.

+ */ +@Slf4j +class LegacyHealthEndpointsForwardingFilter extends HttpFilter { + + @Override + protected void doFilter(HttpServletRequest request, HttpServletResponse response, FilterChain chain) + throws IOException, ServletException { + + switch (request.getRequestURI()) { + case "/internal/isAlive" -> { + log.warn("Received request to deprecated endpoint /internal/isAlive from remote host {}", request.getRemoteHost()); + request + .getRequestDispatcher("/internal/health/liveness") + .forward(request, response); + } + case "/internal/isReady" -> { + log.warn("Received request to deprecated endpoint /internal/isReady from remote host {}", request.getRemoteHost()); + request + .getRequestDispatcher("/internal/health/readiness") + .forward(request, response); + } + default -> chain.doFilter(request, response); + } + + } + +} \ No newline at end of file diff --git a/libs/servlet-core/src/main/java/no/nav/testnav/libs/servletcore/provider/InternalController.java b/libs/servlet-core/src/main/java/no/nav/testnav/libs/servletcore/provider/InternalController.java deleted file mode 100644 index 94c364a9afd..00000000000 --- a/libs/servlet-core/src/main/java/no/nav/testnav/libs/servletcore/provider/InternalController.java +++ /dev/null @@ -1,62 +0,0 @@ -package no.nav.testnav.libs.servletcore.provider; - -import com.fasterxml.jackson.annotation.JsonInclude; -import io.swagger.v3.oas.annotations.Operation; -import lombok.Builder; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.http.HttpStatus; -import org.springframework.http.MediaType; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseStatus; -import org.springframework.web.bind.annotation.RestController; - -import static java.util.Objects.nonNull; - -@RestController -@RequestMapping( - path = "/internal", - produces = {MediaType.APPLICATION_JSON_VALUE} -) -public class InternalController { - - private final String image; - - public InternalController(@Value("${NAIS_APP_IMAGE:null}") String image) { - this.image = image; - } - - @GetMapping("/isAlive") - @Operation(hidden = true) - public ResponseEntity isAlive() { - return ResponseEntity.ok().build(); - } - - @GetMapping("/isReady") - @Operation(hidden = true) - public ResponseEntity isReady() { - return ResponseEntity.ok().build(); - } - - @GetMapping("/image") - @Operation(hidden = true) - @ResponseStatus(HttpStatus.OK) - public JsonResponse getVersion() { - - return JsonResponse.builder() - .image(image) - .commit(nonNull(image) && image.lastIndexOf("-") > 0 ? - "https://github.com/navikt/testnorge/commit/" + - image.substring(image.lastIndexOf("-") + 1) : null) - .build(); - } - - @Builder - @JsonInclude(JsonInclude.Include.NON_NULL) - record JsonResponse( - String image, - String commit - ) { - } -} \ No newline at end of file diff --git a/libs/servlet-core/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/libs/servlet-core/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 00000000000..552d648ebfd --- /dev/null +++ b/libs/servlet-core/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1 @@ +no.nav.testnav.libs.servletcore.health.HealthAutoConfiguration \ No newline at end of file diff --git a/libs/servlet-core/src/test/java/no/nav/testnav/libs/servletcore/provider/InternalControllerTest.java b/libs/servlet-core/src/test/java/no/nav/testnav/libs/servletcore/provider/InternalControllerTest.java deleted file mode 100644 index 42fda0a12e4..00000000000 --- a/libs/servlet-core/src/test/java/no/nav/testnav/libs/servletcore/provider/InternalControllerTest.java +++ /dev/null @@ -1,49 +0,0 @@ -package no.nav.testnav.libs.servletcore.provider; - -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; -import org.springframework.http.HttpStatus; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.jupiter.api.Assertions.assertNull; - -class InternalControllerTest { - - @Test - @DisplayName("Test response body with null NAIS_APP_IMAGE") - void testNullNaisAppImage() { - - var internalController = new InternalController(null); - - assertThat(internalController.isAlive()) - .isNotNull() - .satisfies(response -> { - assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK); - }); - assertThat(internalController.isReady()) - .isNotNull() - .satisfies(response -> { - assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK); - }); - assertThat(internalController.getVersion()) - .isNotNull() - .satisfies(response -> { - assertNull(response.commit()); - assertNull(response.image()); - }); - } - - @Test - @DisplayName("Test response body with expected NAIS_APP_IMAGE") - void testNonNullNaisAppImage() { - - var internalController = new InternalController("europe-north1-docker.pkg.dev/nais-management-233d/dolly/testnorge-dolly-backend:2023.05.04-13.27-36aa348"); - - assertThat(internalController.getVersion()) - .isNotNull() - .satisfies(response -> { - assertThat(response.commit()).isEqualTo("https://github.com/navikt/testnorge/commit/36aa348"); - assertThat(response.image()).isEqualTo("europe-north1-docker.pkg.dev/nais-management-233d/dolly/testnorge-dolly-backend:2023.05.04-13.27-36aa348"); - }); - } -} diff --git a/libs/servlet-security/src/main/java/no/nav/dolly/libs/security/config/DollyHttpSecurity.java b/libs/servlet-security/src/main/java/no/nav/dolly/libs/security/config/DollyHttpSecurity.java new file mode 100644 index 00000000000..3fc5035924d --- /dev/null +++ b/libs/servlet-security/src/main/java/no/nav/dolly/libs/security/config/DollyHttpSecurity.java @@ -0,0 +1,28 @@ +package no.nav.dolly.libs.security.config; + +import lombok.experimental.UtilityClass; +import org.springframework.security.config.Customizer; +import org.springframework.security.config.annotation.web.builders.HttpSecurity; +import org.springframework.security.config.annotation.web.configurers.AuthorizeHttpRequestsConfigurer; + +@UtilityClass +public class DollyHttpSecurity { + + public static Customizer.AuthorizationManagerRequestMatcherRegistry> withDefaultHttpRequests() { + return registry -> registry + .requestMatchers( + "/error", + "/internal/**", + "/swagger", + "/swagger-resources/**", + "/swagger-ui.html", + "/swagger-ui/**", + "/v3/api-docs/**", + "/webjars/**") + .permitAll() + .requestMatchers( + "/api/**") + .fullyAuthenticated(); + } + +} diff --git a/libs/testing/src/main/java/no/nav/dolly/libs/nais/NaisEnvironmentApplicationContextInitializer.java b/libs/testing/src/main/java/no/nav/dolly/libs/nais/NaisEnvironmentApplicationContextInitializer.java index d5564d768ce..c31788be6b5 100644 --- a/libs/testing/src/main/java/no/nav/dolly/libs/nais/NaisEnvironmentApplicationContextInitializer.java +++ b/libs/testing/src/main/java/no/nav/dolly/libs/nais/NaisEnvironmentApplicationContextInitializer.java @@ -42,6 +42,9 @@ private static void configureForLocalProfile(Map properties) { properties.putIfAbsent("AZURE_NAV_OPENID_CONFIG_TOKEN_ENDPOINT", "${sm\\://azure-nav-openid-config-token-endpoint}"); properties.putIfAbsent("AZURE_OPENID_CONFIG_ISSUER", "${sm\\://azure-openid-config-issuer}"); properties.putIfAbsent("AZURE_OPENID_CONFIG_TOKEN_ENDPOINT", "${sm\\://azure-openid-config-token-endpoint}"); + properties.putIfAbsent("AZURE_TRYGDEETATEN_APP_CLIENT_ID", DUMMY); + properties.putIfAbsent("AZURE_TRYGDEETATEN_APP_CLIENT_SECRET", DUMMY); + properties.putIfAbsent("AZURE_TRYGDEETATEN_OPENID_CONFIG_TOKEN_ENDPOINT", DUMMY); properties.putIfAbsent("CRYPTOGRAPHY_SECRET", DUMMY); // Used by bruker-service only. properties.putIfAbsent("JWT_SECRET", DUMMY); // Used by bruker-service only. properties.putIfAbsent("MASKINPORTEN_CLIENT_ID", DUMMY); // Used by tenor-search-service and altinn3-tilgang-service only. diff --git a/libs/testing/src/main/java/no/nav/dolly/libs/test/DollyApplicationContextTest.java b/libs/testing/src/main/java/no/nav/dolly/libs/test/DollyApplicationContextTest.java new file mode 100644 index 00000000000..311c9c7c514 --- /dev/null +++ b/libs/testing/src/main/java/no/nav/dolly/libs/test/DollyApplicationContextTest.java @@ -0,0 +1,86 @@ +package no.nav.dolly.libs.test; + +import lombok.Setter; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.test.web.reactive.server.WebTestClient; + +/** + * Common test base for all tests that simply want to check the application context. + * Also does a simple check to see if the application is alive and ready. + * Note that this class is intentionally not annotated with {@link DollySpringBootTest}, for readability. + */ +public class DollyApplicationContextTest { + + @Setter(onMethod_ = @Autowired) + public WebTestClient webTestClient; + + @Test + void testLivenessEndpoint() { + webTestClient + .get() + .uri("/internal/health/liveness") + .exchange() + .expectStatus() + .isOk(); + } + + @Test + void testReadinessEndpoint() { + webTestClient + .get() + .uri("/internal/health/readiness") + .exchange() + .expectStatus() + .isOk(); + } + + /** + *

Note that {@code WebTestClient} is not configured with {@code LegacyHealthEndpointsForwardingFilter}.

+ *

Added to ensure no app publishes on legacy endpoints itself.

+ */ + @Test + void testIsAliveEndpoint() { + webTestClient + .get() + .uri("/internal/isAlive") + .exchange() + .expectStatus() + .isNotFound(); + } + + /** + *

Note that {@code WebTestClient} is not configured with {@code LegacyHealthEndpointsForwardingFilter}.

+ *

Added to ensure no app publishes on legacy endpoints itself.

+ */ + @Test + void testIsReadyEndpoint() { + webTestClient + .get() + .uri("/internal/isReady") + .exchange() + .expectStatus() + .isNotFound(); + } + + @Test + void testNonexistingInternalEndpoint() { + webTestClient + .get() + .uri("/internal/someNonExistingEndpoint") + .exchange() + .expectStatus() + .isNotFound(); + } + + @Test + public void testNonexistingApiEndpoint() { + webTestClient + .get() + .uri("/api/someNonExistingEndpoint") + .exchange() + .expectStatus() + .is4xxClientError(); + } + +} diff --git a/libs/testing/src/main/java/no/nav/dolly/libs/nais/DollySpringBootTest.java b/libs/testing/src/main/java/no/nav/dolly/libs/test/DollySpringBootTest.java similarity index 91% rename from libs/testing/src/main/java/no/nav/dolly/libs/nais/DollySpringBootTest.java rename to libs/testing/src/main/java/no/nav/dolly/libs/test/DollySpringBootTest.java index 3b0828b1d53..9dc5fbcae5a 100644 --- a/libs/testing/src/main/java/no/nav/dolly/libs/nais/DollySpringBootTest.java +++ b/libs/testing/src/main/java/no/nav/dolly/libs/test/DollySpringBootTest.java @@ -1,5 +1,6 @@ -package no.nav.dolly.libs.nais; +package no.nav.dolly.libs.test; +import no.nav.dolly.libs.nais.NaisEnvironmentApplicationContextInitializer; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.context.ApplicationContextInitializer; import org.springframework.core.annotation.AliasFor; @@ -25,6 +26,7 @@ * {@inheritDoc} *

Defaults to {@link SpringBootTest.WebEnvironment#RANDOM_PORT}.

*/ + @AliasFor(annotation = SpringBootTest.class, attribute = "webEnvironment") SpringBootTest.WebEnvironment webEnvironment() default SpringBootTest.WebEnvironment.RANDOM_PORT; /** diff --git a/libs/testing/src/main/resources/dolly-application.yml b/libs/testing/src/main/resources/dolly-application.yml new file mode 100644 index 00000000000..7b77464ee4d --- /dev/null +++ b/libs/testing/src/main/resources/dolly-application.yml @@ -0,0 +1,37 @@ +# +# Import this file to apply some common boilerplate config to your app: +# +# spring: +# config: +# import: "classpath:dolly-application.yml" +# + +management: + endpoints: + access: + default: read_only + web: + base-path: /internal + exposure: + include: prometheus,health + path-mapping: + prometheus: metrics + health: + probes: + enabled: true + prometheus: + metrics: + export: + enabled: true + +server: + servlet: + encoding: + charset: UTF-8 + error: + include-message: always + +springdoc: + swagger-ui: + disable-swagger-default-url: true + url: /v3/api-docs \ No newline at end of file diff --git a/plugins/java/src/main/groovy/dolly-apps.gradle b/plugins/java/src/main/groovy/dolly-apps.gradle index 446313b0c82..667a3357370 100644 --- a/plugins/java/src/main/groovy/dolly-apps.gradle +++ b/plugins/java/src/main/groovy/dolly-apps.gradle @@ -79,7 +79,10 @@ tasks.bootJar { tasks.test { useJUnitPlatform() - jvmArgs "--add-opens", "java.base/java.lang=ALL-UNNAMED" + doFirst { + jvmArgs += '-javaagent:' + configurations.testRuntimeClasspath.find { it.name.contains("byte-buddy-agent") } + jvmArgs "--add-opens", "java.base/java.lang=ALL-UNNAMED" + } } /** diff --git a/plugins/java/src/main/groovy/dolly-libs.gradle b/plugins/java/src/main/groovy/dolly-libs.gradle index 9002e295ad3..81b60697990 100644 --- a/plugins/java/src/main/groovy/dolly-libs.gradle +++ b/plugins/java/src/main/groovy/dolly-libs.gradle @@ -50,5 +50,8 @@ repositories { tasks.test { useJUnitPlatform() - jvmArgs "--add-opens", "java.base/java.lang=ALL-UNNAMED" + doFirst { + jvmArgs += '-javaagent:' + configurations.testRuntimeClasspath.find { it.name.contains("byte-buddy-agent") } + jvmArgs "--add-opens", "java.base/java.lang=ALL-UNNAMED" + } } \ No newline at end of file diff --git a/plugins/java/src/main/groovy/dolly-proxies.gradle b/plugins/java/src/main/groovy/dolly-proxies.gradle index cba8c898edb..4037fd447c7 100644 --- a/plugins/java/src/main/groovy/dolly-proxies.gradle +++ b/plugins/java/src/main/groovy/dolly-proxies.gradle @@ -84,5 +84,8 @@ tasks.bootJar { tasks.test { useJUnitPlatform() - jvmArgs "--add-opens", "java.base/java.lang=ALL-UNNAMED" + doFirst { + jvmArgs += '-javaagent:' + configurations.testRuntimeClasspath.find { it.name.contains("byte-buddy-agent") } + jvmArgs "--add-opens", "java.base/java.lang=ALL-UNNAMED" + } } \ No newline at end of file diff --git a/proxies/aareg-proxy/config.yml b/proxies/aareg-proxy/config.yml index 45a28c5ec53..cb12f1916b1 100644 --- a/proxies/aareg-proxy/config.yml +++ b/proxies/aareg-proxy/config.yml @@ -55,7 +55,7 @@ spec: - application: testnav-levende-arbeidsforhold-ansettelse cluster: dev-gcp liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 @@ -67,7 +67,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 diff --git a/proxies/aareg-proxy/src/main/resources/application.yml b/proxies/aareg-proxy/src/main/resources/application.yml index bfcfa930bac..4ca67d6531d 100644 --- a/proxies/aareg-proxy/src/main/resources/application.yml +++ b/proxies/aareg-proxy/src/main/resources/application.yml @@ -1,6 +1,8 @@ spring: application: name: testnav-aareg-proxy + config: + import: "classpath:dolly-application.yml" security: oauth2: resourceserver: @@ -15,13 +17,6 @@ spring: httpclient: response-timeout: 600s -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always - consumers: aareg-services: name: aareg-services-nais-{env} diff --git a/proxies/aareg-proxy/src/test/java/no/nav/testnav/proxies/aareg/ApplicationContextTest.java b/proxies/aareg-proxy/src/test/java/no/nav/testnav/proxies/aareg/ApplicationContextTest.java index 7f44b250f8b..20784985210 100644 --- a/proxies/aareg-proxy/src/test/java/no/nav/testnav/proxies/aareg/ApplicationContextTest.java +++ b/proxies/aareg-proxy/src/test/java/no/nav/testnav/proxies/aareg/ApplicationContextTest.java @@ -1,16 +1,8 @@ package no.nav.testnav.proxies.aareg; -import no.nav.dolly.libs.nais.DollySpringBootTest; -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import no.nav.dolly.libs.test.DollySpringBootTest; +import no.nav.dolly.libs.test.DollyApplicationContextTest; @DollySpringBootTest -class ApplicationContextTest { - - @Test - void contextLoads() { - assertThat(true).isTrue(); - } - +class ApplicationContextTest extends DollyApplicationContextTest { } diff --git a/proxies/aareg-synt-services-proxy/config.yml b/proxies/aareg-synt-services-proxy/config.yml index 2f5e8ea397a..29634122a02 100644 --- a/proxies/aareg-synt-services-proxy/config.yml +++ b/proxies/aareg-synt-services-proxy/config.yml @@ -24,7 +24,7 @@ spec: - application: testnav-oppsummeringsdokument-service cluster: dev-gcp liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 @@ -36,7 +36,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 diff --git a/proxies/aareg-synt-services-proxy/src/main/java/no/nav/testnav/proxies/aaregsyntservicesproxy/AaregSyntServiceProxyApplicationStarter.java b/proxies/aareg-synt-services-proxy/src/main/java/no/nav/testnav/proxies/aaregsyntservicesproxy/AaregSyntServiceProxyApplicationStarter.java index 11d4c3d5251..ffca0834865 100644 --- a/proxies/aareg-synt-services-proxy/src/main/java/no/nav/testnav/proxies/aaregsyntservicesproxy/AaregSyntServiceProxyApplicationStarter.java +++ b/proxies/aareg-synt-services-proxy/src/main/java/no/nav/testnav/proxies/aaregsyntservicesproxy/AaregSyntServiceProxyApplicationStarter.java @@ -24,9 +24,14 @@ public static void main(String[] args) { } @Bean - public RouteLocator customRouteLocator(RouteLocatorBuilder builder) { - return builder.routes() - .route(spec -> spec.path("/**").uri("http://aareg-synt-services.arbeidsforhold.svc.nais.local")) + RouteLocator customRouteLocator(RouteLocatorBuilder builder) { + return builder + .routes() + .route(spec -> spec + .path("/**") + .and() + .not(not -> not.path("/internal/**")) + .uri("http://aareg-synt-services.arbeidsforhold.svc.nais.local")) .build(); } diff --git a/proxies/aareg-synt-services-proxy/src/main/resources/application.yml b/proxies/aareg-synt-services-proxy/src/main/resources/application.yml index 3df302f75c4..dd50a976163 100644 --- a/proxies/aareg-synt-services-proxy/src/main/resources/application.yml +++ b/proxies/aareg-synt-services-proxy/src/main/resources/application.yml @@ -2,6 +2,8 @@ spring: application: name: aareg-synt-services-proxy description: Proxy for aareg-synt-services som legger på sikkerhet. + config: + import: "classpath:dolly-application.yml" security: oauth2: resourceserver: @@ -14,11 +16,4 @@ spring: cloud: gateway: httpclient: - response-timeout: 600s - -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always \ No newline at end of file + response-timeout: 600s \ No newline at end of file diff --git a/proxies/aareg-synt-services-proxy/src/test/java/no/nav/testnav/proxies/aaregsyntservicesproxy/ApplicationContextTest.java b/proxies/aareg-synt-services-proxy/src/test/java/no/nav/testnav/proxies/aaregsyntservicesproxy/ApplicationContextTest.java index 27bbf7ecb88..63c2e9d0ee9 100644 --- a/proxies/aareg-synt-services-proxy/src/test/java/no/nav/testnav/proxies/aaregsyntservicesproxy/ApplicationContextTest.java +++ b/proxies/aareg-synt-services-proxy/src/test/java/no/nav/testnav/proxies/aaregsyntservicesproxy/ApplicationContextTest.java @@ -1,16 +1,8 @@ package no.nav.testnav.proxies.aaregsyntservicesproxy; -import no.nav.dolly.libs.nais.DollySpringBootTest; -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import no.nav.dolly.libs.test.DollySpringBootTest; +import no.nav.dolly.libs.test.DollyApplicationContextTest; @DollySpringBootTest -class ApplicationContextTest { - - @Test - void load_app_context() { - assertThat(true).isTrue(); - } - +class ApplicationContextTest extends DollyApplicationContextTest { } diff --git a/proxies/altinn3-tilgang-proxy/config.yml b/proxies/altinn3-tilgang-proxy/config.yml index 700fe0a5b05..e2aae91e968 100644 --- a/proxies/altinn3-tilgang-proxy/config.yml +++ b/proxies/altinn3-tilgang-proxy/config.yml @@ -31,7 +31,7 @@ spec: external: - host: testnav-altinn3-tilgang-service.nav.no liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 @@ -43,7 +43,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 diff --git a/proxies/altinn3-tilgang-proxy/src/main/java/no/nav/testnav/altinn3tilgangproxy/Altinn3TilgangProxyApplicationStarter.java b/proxies/altinn3-tilgang-proxy/src/main/java/no/nav/testnav/altinn3tilgangproxy/Altinn3TilgangProxyApplicationStarter.java index 8602d758931..19c1657991f 100644 --- a/proxies/altinn3-tilgang-proxy/src/main/java/no/nav/testnav/altinn3tilgangproxy/Altinn3TilgangProxyApplicationStarter.java +++ b/proxies/altinn3-tilgang-proxy/src/main/java/no/nav/testnav/altinn3tilgangproxy/Altinn3TilgangProxyApplicationStarter.java @@ -28,17 +28,23 @@ public static void main(String[] args) { } @Bean - public RouteLocator customRouteLocator(RouteLocatorBuilder builder, - TokenExchange tokenExchange, - Consumers consumers) { - + RouteLocator customRouteLocator( + RouteLocatorBuilder builder, + TokenExchange tokenExchange, + Consumers consumers + ) { return builder .routes() - .route(spec -> spec.path("/**") + .route(spec -> spec + .path("/**") + .and() + .not(not -> not.path("/internal/**")) .filters(filterSpec -> filterSpec .filter(AddAuthenticationRequestGatewayFilterFactory - .bearerAuthenticationHeaderFilter(() -> tokenExchange.exchange(consumers.getAltinn3TilgangService()) - .map(AccessToken::getTokenValue)))) + .bearerAuthenticationHeaderFilter( + () -> tokenExchange + .exchange(consumers.getAltinn3TilgangService()) + .map(AccessToken::getTokenValue)))) .uri(consumers.getAltinn3TilgangService().getUrl())) .build(); } diff --git a/proxies/altinn3-tilgang-proxy/src/main/resources/application.yml b/proxies/altinn3-tilgang-proxy/src/main/resources/application.yml index 1b447904a0e..d83a341e5f2 100644 --- a/proxies/altinn3-tilgang-proxy/src/main/resources/application.yml +++ b/proxies/altinn3-tilgang-proxy/src/main/resources/application.yml @@ -2,6 +2,8 @@ spring: application: name: testnav-altinn3-tilgang-proxy description: Proxy for altinn3-tilgang som legger på Entra ID token sikkerhet + config: + import: "classpath:dolly-application.yml" security: oauth2: resourceserver: @@ -16,13 +18,6 @@ spring: httpclient: response-timeout: 1200s -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always - consumers: altinn3-tilgang-service: url: https://testnav-altinn3-tilgang-service.nav.no diff --git a/proxies/altinn3-tilgang-proxy/src/test/java/no/nav/testnav/altinn3tilgangproxy/ApplicationContextTest.java b/proxies/altinn3-tilgang-proxy/src/test/java/no/nav/testnav/altinn3tilgangproxy/ApplicationContextTest.java index 1b27dd11b82..f7c0d9e8757 100644 --- a/proxies/altinn3-tilgang-proxy/src/test/java/no/nav/testnav/altinn3tilgangproxy/ApplicationContextTest.java +++ b/proxies/altinn3-tilgang-proxy/src/test/java/no/nav/testnav/altinn3tilgangproxy/ApplicationContextTest.java @@ -1,16 +1,8 @@ package no.nav.testnav.altinn3tilgangproxy; -import no.nav.dolly.libs.nais.DollySpringBootTest; -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import no.nav.dolly.libs.test.DollySpringBootTest; +import no.nav.dolly.libs.test.DollyApplicationContextTest; @DollySpringBootTest -class ApplicationContextTest { - - @Test - void load_app_context() { - assertThat(true).isTrue(); - } - +class ApplicationContextTest extends DollyApplicationContextTest { } diff --git a/proxies/arbeidsplassencv-proxy/config.yml b/proxies/arbeidsplassencv-proxy/config.yml index 1582a0f67ae..7ca63cde223 100644 --- a/proxies/arbeidsplassencv-proxy/config.yml +++ b/proxies/arbeidsplassencv-proxy/config.yml @@ -32,7 +32,7 @@ spec: - application: pam-cv-api-gcp namespace: teampam liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 @@ -44,7 +44,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 diff --git a/proxies/arbeidsplassencv-proxy/src/main/java/no/nav/testnav/proxies/arbeidsplassencvproxy/ArbeidsplassenCVProxyApplicationStarter.java b/proxies/arbeidsplassencv-proxy/src/main/java/no/nav/testnav/proxies/arbeidsplassencvproxy/ArbeidsplassenCVProxyApplicationStarter.java index 03779d1c409..6880d369329 100644 --- a/proxies/arbeidsplassencv-proxy/src/main/java/no/nav/testnav/proxies/arbeidsplassencvproxy/ArbeidsplassenCVProxyApplicationStarter.java +++ b/proxies/arbeidsplassencv-proxy/src/main/java/no/nav/testnav/proxies/arbeidsplassencvproxy/ArbeidsplassenCVProxyApplicationStarter.java @@ -34,24 +34,26 @@ public static void main(String[] args) { } @Bean - public RouteLocator customRouteLocator(RouteLocatorBuilder builder, + RouteLocator customRouteLocator(RouteLocatorBuilder builder, Consumers consumers, FakedingsConsumer fakedingsConsumer, TokenXService tokenXService) { + var gatewayFilter = AddAuthenticationRequestGatewayFilterFactory + .bearerIdportenHeaderFilter( + fakedingsConsumer, + tokenXService, + consumers.getArbeidsplassenCv()); return builder .routes() - .route(createRoute( - consumers - .getArbeidsplassenCv() - .getUrl(), - AddAuthenticationRequestGatewayFilterFactory - .bearerIdportenHeaderFilter(fakedingsConsumer, tokenXService, consumers.getArbeidsplassenCv()))) + .route(createRoute(consumers.getArbeidsplassenCv().getUrl(), gatewayFilter)) .build(); } private Function> createRoute(String url, GatewayFilter filter) { return spec -> spec .path("/**") + .and() + .not(not -> not.path("/internal/**")) .filters( filterSpec -> filterSpec .rewritePath("/(?.*)", "/pam-cv-api/${segment}") diff --git a/proxies/arbeidsplassencv-proxy/src/main/resources/application.yml b/proxies/arbeidsplassencv-proxy/src/main/resources/application.yml index 396bd983fbb..acb3a773191 100644 --- a/proxies/arbeidsplassencv-proxy/src/main/resources/application.yml +++ b/proxies/arbeidsplassencv-proxy/src/main/resources/application.yml @@ -2,6 +2,8 @@ spring: application: name: testnav-arbeidsplassencv-proxy description: Proxy for arbeidsplassencv, henter fra fakedings og signerer med tokenx + config: + import: "classpath:dolly-application.yml" security: oauth2: resourceserver: @@ -16,13 +18,6 @@ spring: httpclient: response-timeout: 30s -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always - consumers: arbeidsplassencv: name: pam-cv-api-gcp diff --git a/proxies/arbeidsplassencv-proxy/src/test/java/no/nav/testnav/proxies/arbeidsplassencvproxy/ApplicationContextTest.java b/proxies/arbeidsplassencv-proxy/src/test/java/no/nav/testnav/proxies/arbeidsplassencvproxy/ApplicationContextTest.java index ab841e0485c..ce1052a06eb 100644 --- a/proxies/arbeidsplassencv-proxy/src/test/java/no/nav/testnav/proxies/arbeidsplassencvproxy/ApplicationContextTest.java +++ b/proxies/arbeidsplassencv-proxy/src/test/java/no/nav/testnav/proxies/arbeidsplassencvproxy/ApplicationContextTest.java @@ -1,16 +1,8 @@ package no.nav.testnav.proxies.arbeidsplassencvproxy; -import no.nav.dolly.libs.nais.DollySpringBootTest; -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import no.nav.dolly.libs.test.DollySpringBootTest; +import no.nav.dolly.libs.test.DollyApplicationContextTest; @DollySpringBootTest -class ApplicationContextTest { - - @Test - void load_app_context() { - assertThat(true).isTrue(); - } - +class ApplicationContextTest extends DollyApplicationContextTest { } diff --git a/proxies/arbeidssoekerregisteret-proxy/config.yml b/proxies/arbeidssoekerregisteret-proxy/config.yml index f3754df687f..5d9811e0de9 100644 --- a/proxies/arbeidssoekerregisteret-proxy/config.yml +++ b/proxies/arbeidssoekerregisteret-proxy/config.yml @@ -47,7 +47,7 @@ spec: - application: paw-arbeidssoekerregisteret-api-dolly namespace: paw liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 @@ -59,7 +59,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 diff --git a/proxies/arbeidssoekerregisteret-proxy/src/main/java/no/nav/testnav/proxies/arbeidssoekerregisteretproxy/ArbeidssoekerregisteretProxyApplicationStarter.java b/proxies/arbeidssoekerregisteret-proxy/src/main/java/no/nav/testnav/proxies/arbeidssoekerregisteretproxy/ArbeidssoekerregisteretProxyApplicationStarter.java index 163d5d03584..b3e75af5a56 100644 --- a/proxies/arbeidssoekerregisteret-proxy/src/main/java/no/nav/testnav/proxies/arbeidssoekerregisteretproxy/ArbeidssoekerregisteretProxyApplicationStarter.java +++ b/proxies/arbeidssoekerregisteret-proxy/src/main/java/no/nav/testnav/proxies/arbeidssoekerregisteretproxy/ArbeidssoekerregisteretProxyApplicationStarter.java @@ -30,17 +30,22 @@ public static void main(String[] args) { } @Bean - public RouteLocator customRouteLocator(RouteLocatorBuilder builder, - AzureTrygdeetatenTokenService tokenService, - Consumers consumers) { - - return builder.routes() - .route(spec -> spec.path("/**") + RouteLocator customRouteLocator( + RouteLocatorBuilder builder, + AzureTrygdeetatenTokenService tokenService, + Consumers consumers + ) { + return builder + .routes() + .route(spec -> spec + .path("/**") + .and() + .not(not -> not.path("/internal/**")) .filters(filterSpec -> filterSpec.filters( AddAuthenticationRequestGatewayFilterFactory.bearerAuthenticationHeaderFilter( - () -> tokenService.exchange(consumers.getArbeidssoekerregisteret()) - .map(AccessToken::getTokenValue) - ))) + () -> tokenService + .exchange(consumers.getArbeidssoekerregisteret()) + .map(AccessToken::getTokenValue)))) .uri(consumers.getArbeidssoekerregisteret().getUrl()) ) .build(); diff --git a/proxies/arbeidssoekerregisteret-proxy/src/main/resources/application.yml b/proxies/arbeidssoekerregisteret-proxy/src/main/resources/application.yml index 5c48fdc67e6..9d9eed53012 100644 --- a/proxies/arbeidssoekerregisteret-proxy/src/main/resources/application.yml +++ b/proxies/arbeidssoekerregisteret-proxy/src/main/resources/application.yml @@ -2,6 +2,8 @@ spring: application: name: testnav-arbeidssoekerregisteret-proxy description: Proxy for arbeidssoekerregisteret som fikser tenant=trygdeetaten.no. + config: + import: "classpath:dolly-application.yml" security: oauth2: resourceserver: @@ -16,13 +18,6 @@ spring: httpclient: response-timeout: 600s -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always - consumers: arbeidssoekerregisteret: name: paw-arbeidssoekerregisteret-api-dolly diff --git a/proxies/arbeidssoekerregisteret-proxy/src/test/java/no/nav/testnav/proxies/arbeidssoekerregisteretproxy/ApplicationContextTest.java b/proxies/arbeidssoekerregisteret-proxy/src/test/java/no/nav/testnav/proxies/arbeidssoekerregisteretproxy/ApplicationContextTest.java index 6ad432172b9..c8e786997f0 100644 --- a/proxies/arbeidssoekerregisteret-proxy/src/test/java/no/nav/testnav/proxies/arbeidssoekerregisteretproxy/ApplicationContextTest.java +++ b/proxies/arbeidssoekerregisteret-proxy/src/test/java/no/nav/testnav/proxies/arbeidssoekerregisteretproxy/ApplicationContextTest.java @@ -1,18 +1,8 @@ package no.nav.testnav.proxies.arbeidssoekerregisteretproxy; -import no.nav.dolly.libs.nais.DollySpringBootTest; -import org.junit.jupiter.api.Test; -import org.springframework.test.context.ActiveProfiles; - -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import no.nav.dolly.libs.test.DollySpringBootTest; +import no.nav.dolly.libs.test.DollyApplicationContextTest; @DollySpringBootTest -@ActiveProfiles("test") -class ApplicationContextTest { - - @Test - void load_app_context() { - assertThat(true).isTrue(); - } - +class ApplicationContextTest extends DollyApplicationContextTest { } diff --git a/proxies/arena-forvalteren-proxy/config.yml b/proxies/arena-forvalteren-proxy/config.yml index 8bcc69d1467..3f66ede26e5 100644 --- a/proxies/arena-forvalteren-proxy/config.yml +++ b/proxies/arena-forvalteren-proxy/config.yml @@ -36,7 +36,7 @@ spec: - application: testnav-synt-vedtakshistorikk-service cluster: dev-gcp liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 @@ -48,7 +48,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 diff --git a/proxies/arena-forvalteren-proxy/src/main/resources/application.yml b/proxies/arena-forvalteren-proxy/src/main/resources/application.yml index 6b83ff72acb..7e982b5a82b 100644 --- a/proxies/arena-forvalteren-proxy/src/main/resources/application.yml +++ b/proxies/arena-forvalteren-proxy/src/main/resources/application.yml @@ -2,6 +2,8 @@ spring: application: name: testnav-arena-forvalteren-proxy description: Proxy for arena-forvalteren som legger på sikkerhet. + config: + import: "classpath:dolly-application.yml" security: oauth2: resourceserver: @@ -16,13 +18,6 @@ spring: httpclient: response-timeout: 120s -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always - consumers: arena-services: name: arena-services-MILJOE diff --git a/proxies/arena-forvalteren-proxy/src/test/java/no/nav/testnav/proxies/arenaforvalterenproxy/ApplicationContextTest.java b/proxies/arena-forvalteren-proxy/src/test/java/no/nav/testnav/proxies/arenaforvalterenproxy/ApplicationContextTest.java index 93f2bf440ae..e31e7195ecf 100644 --- a/proxies/arena-forvalteren-proxy/src/test/java/no/nav/testnav/proxies/arenaforvalterenproxy/ApplicationContextTest.java +++ b/proxies/arena-forvalteren-proxy/src/test/java/no/nav/testnav/proxies/arenaforvalterenproxy/ApplicationContextTest.java @@ -1,16 +1,8 @@ package no.nav.testnav.proxies.arenaforvalterenproxy; -import no.nav.dolly.libs.nais.DollySpringBootTest; -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import no.nav.dolly.libs.test.DollySpringBootTest; +import no.nav.dolly.libs.test.DollyApplicationContextTest; @DollySpringBootTest -class ApplicationContextTest { - - @Test - void load_app_context() { - assertThat(true).isTrue(); - } - +class ApplicationContextTest extends DollyApplicationContextTest { } diff --git a/proxies/batch-adeo-proxy/config.yml b/proxies/batch-adeo-proxy/config.yml index 722e5ac297e..040ddac4267 100644 --- a/proxies/batch-adeo-proxy/config.yml +++ b/proxies/batch-adeo-proxy/config.yml @@ -38,7 +38,7 @@ spec: - application: organisasjon-bestilling-service cluster: dev-gcp liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 @@ -50,7 +50,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 diff --git a/proxies/batch-adeo-proxy/src/main/java/no/nav/testnav/proxies/batchadeoproxy/BatchAdeoProxyApplicationStarter.java b/proxies/batch-adeo-proxy/src/main/java/no/nav/testnav/proxies/batchadeoproxy/BatchAdeoProxyApplicationStarter.java index 6c29892462c..a33bcb12bcc 100644 --- a/proxies/batch-adeo-proxy/src/main/java/no/nav/testnav/proxies/batchadeoproxy/BatchAdeoProxyApplicationStarter.java +++ b/proxies/batch-adeo-proxy/src/main/java/no/nav/testnav/proxies/batchadeoproxy/BatchAdeoProxyApplicationStarter.java @@ -24,9 +24,14 @@ public static void main(String[] args) { } @Bean - public RouteLocator customRouteLocator(RouteLocatorBuilder builder) { - return builder.routes() - .route(spec -> spec.path("/**").uri("https://batch.adeo.no")) + RouteLocator customRouteLocator(RouteLocatorBuilder builder) { + return builder + .routes() + .route(spec -> spec + .path("/**") + .and() + .not(not -> not.path("/internal/**")) + .uri("https://batch.adeo.no")) .build(); } diff --git a/proxies/batch-adeo-proxy/src/main/resources/application.yml b/proxies/batch-adeo-proxy/src/main/resources/application.yml index 8127a1a9ab8..99b55104935 100644 --- a/proxies/batch-adeo-proxy/src/main/resources/application.yml +++ b/proxies/batch-adeo-proxy/src/main/resources/application.yml @@ -2,6 +2,8 @@ spring: application: name: testnorge-batch-adeo-proxy description: Proxy for batch.adeo.no som legger på sikkerhet. + config: + import: "classpath:dolly-application.yml" security: oauth2: resourceserver: @@ -14,11 +16,4 @@ spring: cloud: gateway: httpclient: - response-timeout: 30s - -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always \ No newline at end of file + response-timeout: 30s \ No newline at end of file diff --git a/proxies/batch-adeo-proxy/src/test/java/no/nav/testnav/proxies/batchadeoproxy/ApplicationContextTest.java b/proxies/batch-adeo-proxy/src/test/java/no/nav/testnav/proxies/batchadeoproxy/ApplicationContextTest.java index e1fc2579530..14ef5787740 100644 --- a/proxies/batch-adeo-proxy/src/test/java/no/nav/testnav/proxies/batchadeoproxy/ApplicationContextTest.java +++ b/proxies/batch-adeo-proxy/src/test/java/no/nav/testnav/proxies/batchadeoproxy/ApplicationContextTest.java @@ -1,16 +1,8 @@ package no.nav.testnav.proxies.batchadeoproxy; -import no.nav.dolly.libs.nais.DollySpringBootTest; -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import no.nav.dolly.libs.test.DollySpringBootTest; +import no.nav.dolly.libs.test.DollyApplicationContextTest; @DollySpringBootTest -class ApplicationContextTest { - - @Test - void load_app_context() { - assertThat(true).isTrue(); - } - +class ApplicationContextTest extends DollyApplicationContextTest { } diff --git a/proxies/brregstub-proxy/config.yml b/proxies/brregstub-proxy/config.yml index 49b10e8046f..e018176666f 100644 --- a/proxies/brregstub-proxy/config.yml +++ b/proxies/brregstub-proxy/config.yml @@ -37,7 +37,7 @@ spec: cluster: dev-gcp namespace: flex liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 @@ -49,7 +49,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 diff --git a/proxies/brregstub-proxy/src/main/java/no/nav/testnav/proxies/brregstubproxy/BrregstubProxyApplicationStarter.java b/proxies/brregstub-proxy/src/main/java/no/nav/testnav/proxies/brregstubproxy/BrregstubProxyApplicationStarter.java index 7bd18e846c9..2d93df8a4de 100644 --- a/proxies/brregstub-proxy/src/main/java/no/nav/testnav/proxies/brregstubproxy/BrregstubProxyApplicationStarter.java +++ b/proxies/brregstub-proxy/src/main/java/no/nav/testnav/proxies/brregstubproxy/BrregstubProxyApplicationStarter.java @@ -24,9 +24,14 @@ public static void main(String[] args) { } @Bean - public RouteLocator customRouteLocator(RouteLocatorBuilder builder) { - return builder.routes() - .route(spec -> spec.path("/**").uri("http://brreg-stub.dolly.svc.nais.local/")) + RouteLocator customRouteLocator(RouteLocatorBuilder builder) { + return builder + .routes() + .route(spec -> spec + .path("/**") + .and() + .not(not -> not.path("/internal/**")) + .uri("http://brreg-stub.dolly.svc.nais.local/")) .build(); } diff --git a/proxies/brregstub-proxy/src/main/java/no/nav/testnav/proxies/brregstubproxy/StatusController.java b/proxies/brregstub-proxy/src/main/java/no/nav/testnav/proxies/brregstubproxy/StatusController.java index 8c3ddafeaef..2974b2d5f55 100644 --- a/proxies/brregstub-proxy/src/main/java/no/nav/testnav/proxies/brregstubproxy/StatusController.java +++ b/proxies/brregstub-proxy/src/main/java/no/nav/testnav/proxies/brregstubproxy/StatusController.java @@ -18,8 +18,8 @@ public Map getStatus() { var statusWebClient = WebClient.builder().build(); var status = checkConsumerStatus( - "https://brreg-stub.intern.dev.nav.no/isAlive", - "https://brreg-stub.intern.dev.nav.no/isReady", + "https://brreg-stub.intern.dev.nav.no/internal/liveness", + "https://brreg-stub.intern.dev.nav.no/internal/readiness", statusWebClient); return Map.of( diff --git a/proxies/brregstub-proxy/src/main/resources/application.yml b/proxies/brregstub-proxy/src/main/resources/application.yml index ec307da4b84..95f35c61145 100644 --- a/proxies/brregstub-proxy/src/main/resources/application.yml +++ b/proxies/brregstub-proxy/src/main/resources/application.yml @@ -2,6 +2,8 @@ spring: application: name: testnav-brregstub-proxy description: Proxy for brregstub som legger på sikkerhet. + config: + import: "classpath:dolly-application.yml" security: oauth2: resourceserver: @@ -14,11 +16,4 @@ spring: cloud: gateway: httpclient: - response-timeout: 30s - -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always \ No newline at end of file + response-timeout: 30s \ No newline at end of file diff --git a/proxies/brregstub-proxy/src/test/java/no/nav/testnav/proxies/brregstubproxy/ApplicationContextTest.java b/proxies/brregstub-proxy/src/test/java/no/nav/testnav/proxies/brregstubproxy/ApplicationContextTest.java index e99206ee3b4..15ea960ea3f 100644 --- a/proxies/brregstub-proxy/src/test/java/no/nav/testnav/proxies/brregstubproxy/ApplicationContextTest.java +++ b/proxies/brregstub-proxy/src/test/java/no/nav/testnav/proxies/brregstubproxy/ApplicationContextTest.java @@ -1,16 +1,8 @@ package no.nav.testnav.proxies.brregstubproxy; -import no.nav.dolly.libs.nais.DollySpringBootTest; -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import no.nav.dolly.libs.test.DollySpringBootTest; +import no.nav.dolly.libs.test.DollyApplicationContextTest; @DollySpringBootTest -class ApplicationContextTest { - - @Test - void load_app_context() { - assertThat(true).isTrue(); - } - +class ApplicationContextTest extends DollyApplicationContextTest { } diff --git a/proxies/brregstub-reverse-proxy/build.gradle b/proxies/brregstub-reverse-proxy/build.gradle index a41a41a2635..451a7d07ae7 100644 --- a/proxies/brregstub-reverse-proxy/build.gradle +++ b/proxies/brregstub-reverse-proxy/build.gradle @@ -10,7 +10,8 @@ sonarqube { } dependencies { + implementation "no.nav.testnav.libs:reactive-core" implementation "no.nav.testnav.libs:reactive-security" implementation "no.nav.testnav.libs:security-core" - implementation "no.nav.testnav.libs:reactive-core" + implementation "no.nav.testnav.libs:testing" } diff --git a/proxies/brregstub-reverse-proxy/src/test/java/no/nav/testnav/proxies/brregstubreverseproxy/ApplicationContextTest.java b/proxies/brregstub-reverse-proxy/src/test/java/no/nav/testnav/proxies/brregstubreverseproxy/ApplicationContextTest.java index 9ef4249e352..b80e448c201 100644 --- a/proxies/brregstub-reverse-proxy/src/test/java/no/nav/testnav/proxies/brregstubreverseproxy/ApplicationContextTest.java +++ b/proxies/brregstub-reverse-proxy/src/test/java/no/nav/testnav/proxies/brregstubreverseproxy/ApplicationContextTest.java @@ -1,6 +1,6 @@ package no.nav.testnav.proxies.brregstubreverseproxy; -import no.nav.dolly.libs.nais.DollySpringBootTest; +import no.nav.dolly.libs.test.DollySpringBootTest; import org.junit.jupiter.api.Test; import static org.assertj.core.api.AssertionsForClassTypes.assertThat; diff --git a/proxies/dokarkiv-proxy/config.yml b/proxies/dokarkiv-proxy/config.yml index afcd9df1190..d6cfe1efeec 100644 --- a/proxies/dokarkiv-proxy/config.yml +++ b/proxies/dokarkiv-proxy/config.yml @@ -52,7 +52,7 @@ spec: - application: dolly-frontend-dev cluster: dev-gcp liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 @@ -64,7 +64,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 diff --git a/proxies/dokarkiv-proxy/src/main/resources/application.yml b/proxies/dokarkiv-proxy/src/main/resources/application.yml index a68feea15c5..3695de64cc9 100644 --- a/proxies/dokarkiv-proxy/src/main/resources/application.yml +++ b/proxies/dokarkiv-proxy/src/main/resources/application.yml @@ -2,6 +2,8 @@ spring: application: name: testnav-dokarkiv-proxy description: Proxy for dokarkiv som legger på sikkerhet og redirecter til riktig miljø.. + config: + import: "classpath:dolly-application.yml" security: oauth2: resourceserver: @@ -16,13 +18,6 @@ spring: httpclient: response-timeout: 120s -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always - consumers: dokarkiv: url: http://dokarkiv-MILJOE.teamdokumenthandtering.svc.nais.local diff --git a/proxies/dokarkiv-proxy/src/test/java/no/nav/testnav/proxies/dokarkivproxy/ApplicationContextTest.java b/proxies/dokarkiv-proxy/src/test/java/no/nav/testnav/proxies/dokarkivproxy/ApplicationContextTest.java index fb49c4d3e24..ac354b31402 100644 --- a/proxies/dokarkiv-proxy/src/test/java/no/nav/testnav/proxies/dokarkivproxy/ApplicationContextTest.java +++ b/proxies/dokarkiv-proxy/src/test/java/no/nav/testnav/proxies/dokarkivproxy/ApplicationContextTest.java @@ -1,16 +1,8 @@ package no.nav.testnav.proxies.dokarkivproxy; -import no.nav.dolly.libs.nais.DollySpringBootTest; -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import no.nav.dolly.libs.test.DollySpringBootTest; +import no.nav.dolly.libs.test.DollyApplicationContextTest; @DollySpringBootTest -class ApplicationContextTest { - - @Test - void load_app_context() { - assertThat(true).isTrue(); - } - +class ApplicationContextTest extends DollyApplicationContextTest { } diff --git a/proxies/ereg-proxy/config.yml b/proxies/ereg-proxy/config.yml index 62a3f823f60..f7c7417d57d 100644 --- a/proxies/ereg-proxy/config.yml +++ b/proxies/ereg-proxy/config.yml @@ -28,7 +28,7 @@ spec: - application: testnav-levende-arbeidsforhold-ansettelse cluster: dev-gcp liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 @@ -40,7 +40,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 diff --git a/proxies/ereg-proxy/src/main/resources/application.yml b/proxies/ereg-proxy/src/main/resources/application.yml index f08ac6a0323..202025e6dc4 100644 --- a/proxies/ereg-proxy/src/main/resources/application.yml +++ b/proxies/ereg-proxy/src/main/resources/application.yml @@ -2,6 +2,8 @@ spring: application: name: testnav-ereg-proxy description: Proxy for ereg som legger på sikkerhet og redirecter til riktig miljø. + config: + import: "classpath:dolly-application.yml" security: oauth2: resourceserver: @@ -14,11 +16,4 @@ spring: cloud: gateway: httpclient: - response-timeout: 120s - -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always \ No newline at end of file + response-timeout: 120s \ No newline at end of file diff --git a/proxies/ereg-proxy/src/test/java/no/nav/testnav/proxies/eregproxy/ApplicationContextTest.java b/proxies/ereg-proxy/src/test/java/no/nav/testnav/proxies/eregproxy/ApplicationContextTest.java index 1d503b0b576..bccac63d772 100644 --- a/proxies/ereg-proxy/src/test/java/no/nav/testnav/proxies/eregproxy/ApplicationContextTest.java +++ b/proxies/ereg-proxy/src/test/java/no/nav/testnav/proxies/eregproxy/ApplicationContextTest.java @@ -1,16 +1,8 @@ package no.nav.testnav.proxies.eregproxy; -import no.nav.dolly.libs.nais.DollySpringBootTest; -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import no.nav.dolly.libs.test.DollySpringBootTest; +import no.nav.dolly.libs.test.DollyApplicationContextTest; @DollySpringBootTest -class ApplicationContextTest { - - @Test - void load_app_context() { - assertThat(true).isTrue(); - } - +class ApplicationContextTest extends DollyApplicationContextTest { } diff --git a/proxies/fullmakt-proxy/config.yml b/proxies/fullmakt-proxy/config.yml index 21640eab611..56508964527 100644 --- a/proxies/fullmakt-proxy/config.yml +++ b/proxies/fullmakt-proxy/config.yml @@ -38,12 +38,12 @@ spec: - application: repr-fullmakt namespace: repr liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 diff --git a/proxies/fullmakt-proxy/src/main/java/no/nav/testnav/proxies/fullmaktproxy/FullmaktProxyApplicationStarter.java b/proxies/fullmakt-proxy/src/main/java/no/nav/testnav/proxies/fullmaktproxy/FullmaktProxyApplicationStarter.java index beb81ed5b27..1c7f39f43f7 100644 --- a/proxies/fullmakt-proxy/src/main/java/no/nav/testnav/proxies/fullmaktproxy/FullmaktProxyApplicationStarter.java +++ b/proxies/fullmakt-proxy/src/main/java/no/nav/testnav/proxies/fullmaktproxy/FullmaktProxyApplicationStarter.java @@ -34,29 +34,27 @@ public static void main(String[] args) { } @Bean - public RouteLocator customRouteLocator(RouteLocatorBuilder builder, + RouteLocator customRouteLocator(RouteLocatorBuilder builder, Consumers consumers, FakedingsConsumer fakedingsConsumer, TokenXService tokenXService) { + var gatewayFilter = AddAuthenticationRequestGatewayFilterFactory + .bearerIdportenHeaderFilter(fakedingsConsumer, tokenXService, consumers.getFullmakt()); return builder .routes() - .route(createRoute( - consumers - .getFullmakt() - .getUrl(), - AddAuthenticationRequestGatewayFilterFactory - .bearerIdportenHeaderFilter(fakedingsConsumer, tokenXService, consumers.getFullmakt()))) + .route(createRoute(consumers.getFullmakt().getUrl(), gatewayFilter)) .build(); } private Function> createRoute(String url, GatewayFilter filter) { return spec -> spec .path("/**") - .filters( - filterSpec -> filterSpec - .rewritePath("/(?.*)", "/${segment}") - .setResponseHeader("Content-Type", "application/json; charset=UTF-8") - .filter(filter)) + .and() + .not(not -> not.path("/internal/**")) + .filters(filterSpec -> filterSpec + .rewritePath("/(?.*)", "/${segment}") + .setResponseHeader("Content-Type", "application/json; charset=UTF-8") + .filter(filter)) .uri(url); } diff --git a/proxies/fullmakt-proxy/src/main/resources/application.yml b/proxies/fullmakt-proxy/src/main/resources/application.yml index 552404f5622..59e043858ec 100644 --- a/proxies/fullmakt-proxy/src/main/resources/application.yml +++ b/proxies/fullmakt-proxy/src/main/resources/application.yml @@ -2,6 +2,8 @@ spring: application: name: testnav-fullmakt-proxy description: Proxy for repr-fullmakt-api som legger på sikkerhet og benytter trygdeetaten tenant. + config: + import: "classpath:dolly-application.yml" security: oauth2: resourceserver: @@ -16,13 +18,6 @@ spring: httpclient: response-timeout: 600s -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always - consumers: fullmakt: name: repr-fullmakt diff --git a/proxies/fullmakt-proxy/src/test/java/no/nav/testnav/proxies/fullmaktproxy/ApplicationContextTest.java b/proxies/fullmakt-proxy/src/test/java/no/nav/testnav/proxies/fullmaktproxy/ApplicationContextTest.java index eb8942a2271..b05fa0590d1 100644 --- a/proxies/fullmakt-proxy/src/test/java/no/nav/testnav/proxies/fullmaktproxy/ApplicationContextTest.java +++ b/proxies/fullmakt-proxy/src/test/java/no/nav/testnav/proxies/fullmaktproxy/ApplicationContextTest.java @@ -1,16 +1,8 @@ package no.nav.testnav.proxies.fullmaktproxy; -import no.nav.dolly.libs.nais.DollySpringBootTest; -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import no.nav.dolly.libs.test.DollySpringBootTest; +import no.nav.dolly.libs.test.DollyApplicationContextTest; @DollySpringBootTest -class ApplicationContextTest { - - @Test - void load_app_context() { - assertThat(true).isTrue(); - } - +class ApplicationContextTest extends DollyApplicationContextTest { } diff --git a/proxies/histark-proxy/config.yml b/proxies/histark-proxy/config.yml index 3b48fe7c890..20eb1fb9d43 100644 --- a/proxies/histark-proxy/config.yml +++ b/proxies/histark-proxy/config.yml @@ -36,7 +36,7 @@ spec: - application: testnav-oversikt-frontend cluster: dev-gcp liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 @@ -48,7 +48,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 diff --git a/proxies/histark-proxy/src/main/java/no/nav/testnav/proxies/histarkproxy/HistarkProxyApplicationStarter.java b/proxies/histark-proxy/src/main/java/no/nav/testnav/proxies/histarkproxy/HistarkProxyApplicationStarter.java index b5018a0eb11..557734c6183 100644 --- a/proxies/histark-proxy/src/main/java/no/nav/testnav/proxies/histarkproxy/HistarkProxyApplicationStarter.java +++ b/proxies/histark-proxy/src/main/java/no/nav/testnav/proxies/histarkproxy/HistarkProxyApplicationStarter.java @@ -25,8 +25,13 @@ public static void main(String[] args) { @Bean public RouteLocator customRouteLocator(RouteLocatorBuilder builder) { - return builder.routes() - .route(spec -> spec.path("/**").uri("https://histarkimport.dev.intern.nav.no/")) + return builder + .routes() + .route(spec -> spec + .path("/**") + .and() + .not(not -> not.path("/internal/**")) + .uri("https://histarkimport.dev.intern.nav.no/")) .build(); } diff --git a/proxies/histark-proxy/src/main/resources/application.yml b/proxies/histark-proxy/src/main/resources/application.yml index 98fb18c7983..efbe157fdbf 100644 --- a/proxies/histark-proxy/src/main/resources/application.yml +++ b/proxies/histark-proxy/src/main/resources/application.yml @@ -2,6 +2,8 @@ spring: application: name: testnav-histark-proxy description: Proxy for histark som legger på sikkerhet. + config: + import: "classpath:dolly-application.yml" security: oauth2: resourceserver: @@ -14,11 +16,4 @@ spring: cloud: gateway: httpclient: - response-timeout: 600s - -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always \ No newline at end of file + response-timeout: 600s \ No newline at end of file diff --git a/proxies/histark-proxy/src/test/java/no/nav/testnav/proxies/histarkproxy/ApplicationContextTest.java b/proxies/histark-proxy/src/test/java/no/nav/testnav/proxies/histarkproxy/ApplicationContextTest.java index e03dc77b8de..50a762ed33c 100644 --- a/proxies/histark-proxy/src/test/java/no/nav/testnav/proxies/histarkproxy/ApplicationContextTest.java +++ b/proxies/histark-proxy/src/test/java/no/nav/testnav/proxies/histarkproxy/ApplicationContextTest.java @@ -1,16 +1,8 @@ package no.nav.testnav.proxies.histarkproxy; -import no.nav.dolly.libs.nais.DollySpringBootTest; -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import no.nav.dolly.libs.test.DollySpringBootTest; +import no.nav.dolly.libs.test.DollyApplicationContextTest; @DollySpringBootTest -class ApplicationContextTest { - - @Test - void load_app_context() { - assertThat(true).isTrue(); - } - +class ApplicationContextTest extends DollyApplicationContextTest { } diff --git a/proxies/inntektstub-proxy/config.yml b/proxies/inntektstub-proxy/config.yml index d50397e3369..7e26fa67f5f 100644 --- a/proxies/inntektstub-proxy/config.yml +++ b/proxies/inntektstub-proxy/config.yml @@ -36,7 +36,7 @@ spec: - application: testnav-synt-vedtakshistorikk-service cluster: dev-gcp liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 @@ -48,7 +48,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 diff --git a/proxies/inntektstub-proxy/src/main/java/no/nav/testnav/proxies/inntektstubproxy/InntektstubProxyApplicationStarter.java b/proxies/inntektstub-proxy/src/main/java/no/nav/testnav/proxies/inntektstubproxy/InntektstubProxyApplicationStarter.java index 754dad67658..67a349ddd88 100644 --- a/proxies/inntektstub-proxy/src/main/java/no/nav/testnav/proxies/inntektstubproxy/InntektstubProxyApplicationStarter.java +++ b/proxies/inntektstub-proxy/src/main/java/no/nav/testnav/proxies/inntektstubproxy/InntektstubProxyApplicationStarter.java @@ -24,9 +24,13 @@ public static void main(String[] args) { } @Bean - public RouteLocator customRouteLocator(RouteLocatorBuilder builder) { + RouteLocator customRouteLocator(RouteLocatorBuilder builder) { return builder.routes() - .route(spec -> spec.path("/**").uri("http://inntektstub.team-inntekt.svc.nais.local/")) + .route(spec -> spec + .path("/**") + .and() + .not(not -> not.path("/internal/**")) + .uri("http://inntektstub.team-inntekt.svc.nais.local/")) .build(); } diff --git a/proxies/inntektstub-proxy/src/main/resources/application.yml b/proxies/inntektstub-proxy/src/main/resources/application.yml index 58e31a734b6..c18084fbf1a 100644 --- a/proxies/inntektstub-proxy/src/main/resources/application.yml +++ b/proxies/inntektstub-proxy/src/main/resources/application.yml @@ -2,6 +2,8 @@ spring: application: name: testnav-inntektstub-proxy description: Proxy for inntektstub som legger på sikkerhet. + config: + import: "classpath:dolly-application.yml" security: oauth2: resourceserver: @@ -14,11 +16,4 @@ spring: cloud: gateway: httpclient: - response-timeout: 600s - -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always \ No newline at end of file + response-timeout: 600s \ No newline at end of file diff --git a/proxies/inntektstub-proxy/src/test/java/no/nav/testnav/proxies/inntektstubproxy/ApplicationContextTest.java b/proxies/inntektstub-proxy/src/test/java/no/nav/testnav/proxies/inntektstubproxy/ApplicationContextTest.java index 469e3ef01d0..ae3a39565f0 100644 --- a/proxies/inntektstub-proxy/src/test/java/no/nav/testnav/proxies/inntektstubproxy/ApplicationContextTest.java +++ b/proxies/inntektstub-proxy/src/test/java/no/nav/testnav/proxies/inntektstubproxy/ApplicationContextTest.java @@ -1,16 +1,8 @@ package no.nav.testnav.proxies.inntektstubproxy; -import no.nav.dolly.libs.nais.DollySpringBootTest; -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import no.nav.dolly.libs.test.DollySpringBootTest; +import no.nav.dolly.libs.test.DollyApplicationContextTest; @DollySpringBootTest -class ApplicationContextTest { - - @Test - void load_app_context() { - assertThat(true).isTrue(); - } - +class ApplicationContextTest extends DollyApplicationContextTest { } diff --git a/proxies/inst-proxy/config.yml b/proxies/inst-proxy/config.yml index ca1a74fda48..b86216aa488 100644 --- a/proxies/inst-proxy/config.yml +++ b/proxies/inst-proxy/config.yml @@ -51,7 +51,7 @@ spec: - application: opphold-testdata namespace: team-rocket liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 @@ -63,7 +63,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 diff --git a/proxies/inst-proxy/src/main/java/no/nav/testnav/proxies/instproxy/InstProxyApplicationStarter.java b/proxies/inst-proxy/src/main/java/no/nav/testnav/proxies/instproxy/InstProxyApplicationStarter.java index e32fca1aa17..90e01a6350d 100644 --- a/proxies/inst-proxy/src/main/java/no/nav/testnav/proxies/instproxy/InstProxyApplicationStarter.java +++ b/proxies/inst-proxy/src/main/java/no/nav/testnav/proxies/instproxy/InstProxyApplicationStarter.java @@ -29,7 +29,7 @@ public static void main(String[] args) { } @Bean - public RouteLocator customRouteLocator( + RouteLocator customRouteLocator( RouteLocatorBuilder builder, AzureTrygdeetatenTokenService tokenService, Consumers consumers @@ -44,9 +44,10 @@ public RouteLocator customRouteLocator( .routes() .route(spec -> spec .path("/**") + .and() + .not(not -> not.path("/internal/**")) .filters(filterSpec -> filterSpec.filter(addAuthenticationHeaderDevFilter)) - .uri(consumers.getInst().getUrl()) - ) + .uri(consumers.getInst().getUrl())) .build(); } diff --git a/proxies/inst-proxy/src/main/resources/application.yml b/proxies/inst-proxy/src/main/resources/application.yml index 41c31d4446f..08498948be9 100644 --- a/proxies/inst-proxy/src/main/resources/application.yml +++ b/proxies/inst-proxy/src/main/resources/application.yml @@ -2,6 +2,8 @@ spring: application: name: testnav-inst-proxy description: Proxy for opphold-testdata som legger på sikkerhet og redirecter. + config: + import: "classpath:dolly-application.yml" security: oauth2: resourceserver: @@ -16,13 +18,6 @@ spring: httpclient: response-timeout: 180s -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always - consumers: inst: name: opphold-testdata diff --git a/proxies/inst-proxy/src/test/java/no/nav/testnav/proxies/instproxy/ApplicationContextTest.java b/proxies/inst-proxy/src/test/java/no/nav/testnav/proxies/instproxy/ApplicationContextTest.java index 6eeeb0a9b2f..dbbf22a1042 100644 --- a/proxies/inst-proxy/src/test/java/no/nav/testnav/proxies/instproxy/ApplicationContextTest.java +++ b/proxies/inst-proxy/src/test/java/no/nav/testnav/proxies/instproxy/ApplicationContextTest.java @@ -1,16 +1,8 @@ package no.nav.testnav.proxies.instproxy; -import no.nav.dolly.libs.nais.DollySpringBootTest; -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import no.nav.dolly.libs.test.DollySpringBootTest; +import no.nav.dolly.libs.test.DollyApplicationContextTest; @DollySpringBootTest -class ApplicationContextTest { - - @Test - void load_app_context() { - assertThat(true).isTrue(); - } - +class ApplicationContextTest extends DollyApplicationContextTest { } diff --git a/proxies/kontoregister-person-proxy/config.yml b/proxies/kontoregister-person-proxy/config.yml index 0f6f82b3e23..f1e4d7cfa40 100644 --- a/proxies/kontoregister-person-proxy/config.yml +++ b/proxies/kontoregister-person-proxy/config.yml @@ -47,7 +47,7 @@ spec: - application: dolly-backend-dev cluster: dev-gcp liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 @@ -59,7 +59,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 diff --git a/proxies/kontoregister-person-proxy/src/main/java/no/nav/testnav/proxies/kontoregisterperson/KontoregisterProxyApplicationStarter.java b/proxies/kontoregister-person-proxy/src/main/java/no/nav/testnav/proxies/kontoregisterperson/KontoregisterProxyApplicationStarter.java index 59df8ad63d1..1f36b74bddb 100644 --- a/proxies/kontoregister-person-proxy/src/main/java/no/nav/testnav/proxies/kontoregisterperson/KontoregisterProxyApplicationStarter.java +++ b/proxies/kontoregister-person-proxy/src/main/java/no/nav/testnav/proxies/kontoregisterperson/KontoregisterProxyApplicationStarter.java @@ -30,7 +30,7 @@ public static void main(String[] args) { } @Bean - public RouteLocator customRouteLocator( + RouteLocator customRouteLocator( RouteLocatorBuilder builder, AzureTrygdeetatenTokenService tokenService, Consumers consumers @@ -45,6 +45,8 @@ public RouteLocator customRouteLocator( .route( spec -> spec .path("/**") + .and() + .not(not -> not.path("/internal/**")) .filters(filterSpec -> filterSpec.filter(addAuthenticationHeaderDevFilter)) .uri(consumers.getKontoregister().getUrl())) .build(); diff --git a/proxies/kontoregister-person-proxy/src/main/resources/application.yml b/proxies/kontoregister-person-proxy/src/main/resources/application.yml index efb36e9b16d..8b9d661020a 100644 --- a/proxies/kontoregister-person-proxy/src/main/resources/application.yml +++ b/proxies/kontoregister-person-proxy/src/main/resources/application.yml @@ -2,6 +2,8 @@ spring: application: name: testnav-kontoregister-person-proxy description: Proxy for sokos-kontoregister-person som legger på sikkerhet. + config: + import: "classpath:dolly-application.yml" security: oauth2: resourceserver: @@ -16,13 +18,6 @@ spring: httpclient: response-timeout: 600s -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always - consumers: kontoregister: name: sokos-kontoregister-person diff --git a/proxies/kontoregister-person-proxy/src/test/java/no/nav/testnav/proxies/kontoregisterperson/ApplicationContextTest.java b/proxies/kontoregister-person-proxy/src/test/java/no/nav/testnav/proxies/kontoregisterperson/ApplicationContextTest.java index ff86193443e..38724cc88d2 100644 --- a/proxies/kontoregister-person-proxy/src/test/java/no/nav/testnav/proxies/kontoregisterperson/ApplicationContextTest.java +++ b/proxies/kontoregister-person-proxy/src/test/java/no/nav/testnav/proxies/kontoregisterperson/ApplicationContextTest.java @@ -1,16 +1,8 @@ package no.nav.testnav.proxies.kontoregisterperson; -import no.nav.dolly.libs.nais.DollySpringBootTest; -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import no.nav.dolly.libs.test.DollySpringBootTest; +import no.nav.dolly.libs.test.DollyApplicationContextTest; @DollySpringBootTest -class ApplicationContextTest { - - @Test - void load_app_context() { - assertThat(true).isTrue(); - } - +class ApplicationContextTest extends DollyApplicationContextTest { } diff --git a/proxies/krrstub-proxy/config.yml b/proxies/krrstub-proxy/config.yml index 29080efbeba..40f2bcce536 100644 --- a/proxies/krrstub-proxy/config.yml +++ b/proxies/krrstub-proxy/config.yml @@ -47,7 +47,7 @@ spec: - application: dolly-backend-dev cluster: dev-gcp liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 @@ -59,7 +59,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 diff --git a/proxies/krrstub-proxy/src/main/resources/application.yml b/proxies/krrstub-proxy/src/main/resources/application.yml index 2bb6c48a788..c93cd383aef 100644 --- a/proxies/krrstub-proxy/src/main/resources/application.yml +++ b/proxies/krrstub-proxy/src/main/resources/application.yml @@ -2,6 +2,8 @@ spring: application: name: testnav-krrstub-proxy description: Proxy for krr-stub som legger på sikkerhet. + config: + import: "classpath:dolly-application.yml" security: oauth2: resourceserver: @@ -16,13 +18,6 @@ spring: httpclient: response-timeout: 600s -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always - consumers: krrstub: name: digdir-krr-stub diff --git a/proxies/krrstub-proxy/src/test/java/no/nav/testnav/proxies/krrstubproxy/ApplicationContextTest.java b/proxies/krrstub-proxy/src/test/java/no/nav/testnav/proxies/krrstubproxy/ApplicationContextTest.java index beeaa3d4579..23ba180fb36 100644 --- a/proxies/krrstub-proxy/src/test/java/no/nav/testnav/proxies/krrstubproxy/ApplicationContextTest.java +++ b/proxies/krrstub-proxy/src/test/java/no/nav/testnav/proxies/krrstubproxy/ApplicationContextTest.java @@ -1,16 +1,8 @@ package no.nav.testnav.proxies.krrstubproxy; -import no.nav.dolly.libs.nais.DollySpringBootTest; -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import no.nav.dolly.libs.test.DollySpringBootTest; +import no.nav.dolly.libs.test.DollyApplicationContextTest; @DollySpringBootTest -class ApplicationContextTest { - - @Test - void load_app_context() { - assertThat(true).isTrue(); - } - +class ApplicationContextTest extends DollyApplicationContextTest { } diff --git a/proxies/medl-proxy/config.yml b/proxies/medl-proxy/config.yml index 2ab1dd48fa0..9f674a55112 100644 --- a/proxies/medl-proxy/config.yml +++ b/proxies/medl-proxy/config.yml @@ -50,7 +50,7 @@ spec: external: - host: medlemskap-medl-testdata.intern.dev.nav.no liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 @@ -62,7 +62,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 diff --git a/proxies/medl-proxy/src/main/resources/application.yml b/proxies/medl-proxy/src/main/resources/application.yml index 5917152982f..6ae98d138d1 100644 --- a/proxies/medl-proxy/src/main/resources/application.yml +++ b/proxies/medl-proxy/src/main/resources/application.yml @@ -2,6 +2,8 @@ spring: application: name: testnav-medl-proxy description: Proxy for medl-stub som legger på sikkerhet. + config: + import: "classpath:dolly-application.yml" security: oauth2: resourceserver: @@ -16,13 +18,6 @@ spring: httpclient: response-timeout: 600s -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always - consumers: medlstub: name: medlemskap-medl-testdata diff --git a/proxies/medl-proxy/src/test/java/no/nav/testnav/proxies/medlproxy/ApplicationContextTest.java b/proxies/medl-proxy/src/test/java/no/nav/testnav/proxies/medlproxy/ApplicationContextTest.java index 48752054aec..95ec71f485b 100644 --- a/proxies/medl-proxy/src/test/java/no/nav/testnav/proxies/medlproxy/ApplicationContextTest.java +++ b/proxies/medl-proxy/src/test/java/no/nav/testnav/proxies/medlproxy/ApplicationContextTest.java @@ -1,16 +1,8 @@ package no.nav.testnav.proxies.medlproxy; -import no.nav.dolly.libs.nais.DollySpringBootTest; -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import no.nav.dolly.libs.test.DollySpringBootTest; +import no.nav.dolly.libs.test.DollyApplicationContextTest; @DollySpringBootTest -class ApplicationContextTest { - - @Test - void load_app_context() { - assertThat(true).isTrue(); - } - +class ApplicationContextTest extends DollyApplicationContextTest { } diff --git a/proxies/norg2-proxy/config.yml b/proxies/norg2-proxy/config.yml index 4dca79a69d0..054590d6c11 100644 --- a/proxies/norg2-proxy/config.yml +++ b/proxies/norg2-proxy/config.yml @@ -34,7 +34,7 @@ spec: - application: testnav-oversikt-frontend cluster: dev-gcp liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 @@ -46,7 +46,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 diff --git a/proxies/norg2-proxy/src/main/java/no/nav/testnav/proxies/norg2proxy/Norg2ProxyApplicationStarter.java b/proxies/norg2-proxy/src/main/java/no/nav/testnav/proxies/norg2proxy/Norg2ProxyApplicationStarter.java index 26f297da0b1..5e533d614e6 100644 --- a/proxies/norg2-proxy/src/main/java/no/nav/testnav/proxies/norg2proxy/Norg2ProxyApplicationStarter.java +++ b/proxies/norg2-proxy/src/main/java/no/nav/testnav/proxies/norg2proxy/Norg2ProxyApplicationStarter.java @@ -24,9 +24,13 @@ public static void main(String[] args) { } @Bean - public RouteLocator customRouteLocator(RouteLocatorBuilder builder) { - return builder.routes() - .route(spec -> spec.path("/**") + RouteLocator customRouteLocator(RouteLocatorBuilder builder) { + return builder + .routes() + .route(spec -> spec + .path("/**") + .and() + .not(not -> not.path("/internal/**")) .uri("http://norg2.org.svc.nais.local")) .build(); } diff --git a/proxies/norg2-proxy/src/main/resources/application.yml b/proxies/norg2-proxy/src/main/resources/application.yml index 6524f4f2ff6..f38d58d2a87 100644 --- a/proxies/norg2-proxy/src/main/resources/application.yml +++ b/proxies/norg2-proxy/src/main/resources/application.yml @@ -2,6 +2,8 @@ spring: application: name: testnav-norg2-proxy description: Proxy for Norg2 som legger på sikkerhet. + config: + import: "classpath:dolly-application.yml" security: oauth2: resourceserver: @@ -14,11 +16,4 @@ spring: cloud: gateway: httpclient: - response-timeout: 600s - -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always \ No newline at end of file + response-timeout: 600s \ No newline at end of file diff --git a/proxies/norg2-proxy/src/test/java/no/nav/testnav/proxies/norg2proxy/ApplicationContextTest.java b/proxies/norg2-proxy/src/test/java/no/nav/testnav/proxies/norg2proxy/ApplicationContextTest.java index cb365d15dfc..8b46f7e32ee 100644 --- a/proxies/norg2-proxy/src/test/java/no/nav/testnav/proxies/norg2proxy/ApplicationContextTest.java +++ b/proxies/norg2-proxy/src/test/java/no/nav/testnav/proxies/norg2proxy/ApplicationContextTest.java @@ -1,16 +1,8 @@ package no.nav.testnav.proxies.norg2proxy; -import no.nav.dolly.libs.nais.DollySpringBootTest; -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import no.nav.dolly.libs.test.DollySpringBootTest; +import no.nav.dolly.libs.test.DollyApplicationContextTest; @DollySpringBootTest -class ApplicationContextTest { - - @Test - void load_app_context() { - assertThat(true).isTrue(); - } - +class ApplicationContextTest extends DollyApplicationContextTest { } diff --git a/proxies/pdl-proxy/config.yml b/proxies/pdl-proxy/config.yml index dfe7448bf2e..90650f7a52f 100644 --- a/proxies/pdl-proxy/config.yml +++ b/proxies/pdl-proxy/config.yml @@ -78,7 +78,7 @@ spec: cluster: dev-fss namespace: pdl liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 @@ -90,7 +90,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 diff --git a/proxies/pdl-proxy/src/main/resources/application.yml b/proxies/pdl-proxy/src/main/resources/application.yml index 3ceee0ee89f..e3bf3abf143 100644 --- a/proxies/pdl-proxy/src/main/resources/application.yml +++ b/proxies/pdl-proxy/src/main/resources/application.yml @@ -2,6 +2,8 @@ spring: application: name: testnav-pdl-proxy description: Proxy for pdl som legger på AzureAd sikkerhet og lager en sts token.. + config: + import: "classpath:dolly-application.yml" security: oauth2: resourceserver: @@ -28,13 +30,6 @@ sts: provider: url: https://security-token-service.dev.adeo.no/rest/v1/sts/token -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always - consumers: pdl-testdata: url: http://pdl-testdata.pdl.svc.nais.local diff --git a/proxies/pdl-proxy/src/test/java/no/nav/testnav/proxies/pdlproxy/ApplicationContextTest.java b/proxies/pdl-proxy/src/test/java/no/nav/testnav/proxies/pdlproxy/ApplicationContextTest.java index d58a197056c..a7142cbd0f6 100644 --- a/proxies/pdl-proxy/src/test/java/no/nav/testnav/proxies/pdlproxy/ApplicationContextTest.java +++ b/proxies/pdl-proxy/src/test/java/no/nav/testnav/proxies/pdlproxy/ApplicationContextTest.java @@ -1,16 +1,8 @@ package no.nav.testnav.proxies.pdlproxy; -import no.nav.dolly.libs.nais.DollySpringBootTest; -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import no.nav.dolly.libs.test.DollySpringBootTest; +import no.nav.dolly.libs.test.DollyApplicationContextTest; @DollySpringBootTest -class ApplicationContextTest { - - @Test - void load_app_context() { - assertThat(true).isTrue(); - } - +class ApplicationContextTest extends DollyApplicationContextTest { } diff --git a/proxies/pensjon-testdata-facade-proxy/config.yml b/proxies/pensjon-testdata-facade-proxy/config.yml index c57e676b1dd..ba0512c14ec 100644 --- a/proxies/pensjon-testdata-facade-proxy/config.yml +++ b/proxies/pensjon-testdata-facade-proxy/config.yml @@ -63,7 +63,7 @@ spec: namespace: pensjon-saksbehandling cluster: dev-gcp liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 @@ -75,7 +75,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 diff --git a/proxies/pensjon-testdata-facade-proxy/src/main/resources/application.yml b/proxies/pensjon-testdata-facade-proxy/src/main/resources/application.yml index c9e0eaaebf1..53c8a7e4dcf 100644 --- a/proxies/pensjon-testdata-facade-proxy/src/main/resources/application.yml +++ b/proxies/pensjon-testdata-facade-proxy/src/main/resources/application.yml @@ -2,6 +2,8 @@ spring: application: name: pensjon-testdata-facade-proxy description: Proxy for pensjon-testdata-facade som legger på sikkerhet. + config: + import: "classpath:dolly-application.yml" security: oauth2: resourceserver: @@ -25,13 +27,6 @@ logging: cloud: gateway: TRACE -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always - consumers: pensjon-testdata-facade: url: http://pensjon-testdata-facade.pensjontestdata.svc.nais.local diff --git a/proxies/pensjon-testdata-facade-proxy/src/test/java/no/nav/testnav/proxies/pensjontestdatafacadeproxy/ApplicationContextTest.java b/proxies/pensjon-testdata-facade-proxy/src/test/java/no/nav/testnav/proxies/pensjontestdatafacadeproxy/ApplicationContextTest.java index 9f81a371f91..1d2c6083f7f 100644 --- a/proxies/pensjon-testdata-facade-proxy/src/test/java/no/nav/testnav/proxies/pensjontestdatafacadeproxy/ApplicationContextTest.java +++ b/proxies/pensjon-testdata-facade-proxy/src/test/java/no/nav/testnav/proxies/pensjontestdatafacadeproxy/ApplicationContextTest.java @@ -1,16 +1,8 @@ package no.nav.testnav.proxies.pensjontestdatafacadeproxy; -import no.nav.dolly.libs.nais.DollySpringBootTest; -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import no.nav.dolly.libs.test.DollySpringBootTest; +import no.nav.dolly.libs.test.DollyApplicationContextTest; @DollySpringBootTest -class ApplicationContextTest { - - @Test - void load_app_context() { - assertThat(true).isTrue(); - } - +class ApplicationContextTest extends DollyApplicationContextTest { } diff --git a/proxies/saf-proxy/config.yml b/proxies/saf-proxy/config.yml index f03c9e6de7a..ae0cd9a2bb4 100644 --- a/proxies/saf-proxy/config.yml +++ b/proxies/saf-proxy/config.yml @@ -45,7 +45,7 @@ spec: - application: testnav-joark-dokument-service cluster: dev-gcp liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 @@ -57,7 +57,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 diff --git a/proxies/saf-proxy/src/main/resources/application.yml b/proxies/saf-proxy/src/main/resources/application.yml index f487b0a263f..972cf10a0d2 100644 --- a/proxies/saf-proxy/src/main/resources/application.yml +++ b/proxies/saf-proxy/src/main/resources/application.yml @@ -2,6 +2,8 @@ spring: application: name: testnav-saf-proxy description: Proxy for dokarkiv som legger på sikkerhet og redirecter til riktig miljø. + config: + import: "classpath:dolly-application.yml" security: oauth2: resourceserver: @@ -16,13 +18,6 @@ spring: httpclient: response-timeout: 1200s -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always - consumers: saf: url: http://saf-MILJOE.teamdokumenthandtering.svc.nais.local diff --git a/proxies/saf-proxy/src/test/java/no/nav/testnav/proxies/safproxy/ApplicationContextTest.java b/proxies/saf-proxy/src/test/java/no/nav/testnav/proxies/safproxy/ApplicationContextTest.java index 5bcf67a0a20..651e73d36fd 100644 --- a/proxies/saf-proxy/src/test/java/no/nav/testnav/proxies/safproxy/ApplicationContextTest.java +++ b/proxies/saf-proxy/src/test/java/no/nav/testnav/proxies/safproxy/ApplicationContextTest.java @@ -1,16 +1,8 @@ package no.nav.testnav.proxies.safproxy; -import no.nav.dolly.libs.nais.DollySpringBootTest; -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import no.nav.dolly.libs.test.DollySpringBootTest; +import no.nav.dolly.libs.test.DollyApplicationContextTest; @DollySpringBootTest -class ApplicationContextTest { - - @Test - void load_app_context() { - assertThat(true).isTrue(); - } - +class ApplicationContextTest extends DollyApplicationContextTest { } diff --git a/proxies/sigrunstub-proxy/config.yml b/proxies/sigrunstub-proxy/config.yml index 6d4def7fd39..dedb7b6e2a2 100644 --- a/proxies/sigrunstub-proxy/config.yml +++ b/proxies/sigrunstub-proxy/config.yml @@ -34,7 +34,7 @@ spec: - application: testnav-oversikt-frontend cluster: dev-gcp liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 @@ -46,7 +46,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 diff --git a/proxies/sigrunstub-proxy/src/main/java/no/nav/testnav/proxies/sigrunstubproxy/SigrunstubProxyApplicationStarter.java b/proxies/sigrunstub-proxy/src/main/java/no/nav/testnav/proxies/sigrunstubproxy/SigrunstubProxyApplicationStarter.java index d6271b5456b..14dc61e8d4a 100644 --- a/proxies/sigrunstub-proxy/src/main/java/no/nav/testnav/proxies/sigrunstubproxy/SigrunstubProxyApplicationStarter.java +++ b/proxies/sigrunstub-proxy/src/main/java/no/nav/testnav/proxies/sigrunstubproxy/SigrunstubProxyApplicationStarter.java @@ -24,9 +24,14 @@ public static void main(String[] args) { } @Bean - public RouteLocator customRouteLocator(RouteLocatorBuilder builder) { - return builder.routes() - .route(spec -> spec.path("/**").uri("http://sigrun-skd-stub.team-inntekt.svc.nais.local/")) + RouteLocator customRouteLocator(RouteLocatorBuilder builder) { + return builder + .routes() + .route(spec -> spec + .path("/**") + .and() + .not(not -> not.path("/internal/**")) + .uri("http://sigrun-skd-stub.team-inntekt.svc.nais.local/")) .build(); } diff --git a/proxies/sigrunstub-proxy/src/main/resources/application.yml b/proxies/sigrunstub-proxy/src/main/resources/application.yml index 0f6542d1626..59891aa5567 100644 --- a/proxies/sigrunstub-proxy/src/main/resources/application.yml +++ b/proxies/sigrunstub-proxy/src/main/resources/application.yml @@ -2,6 +2,8 @@ spring: application: name: testnav-sigrunstub-proxy description: Proxy for sigrunstub som legger på sikkerhet. + config: + import: "classpath:dolly-application.yml" security: oauth2: resourceserver: @@ -14,11 +16,4 @@ spring: cloud: gateway: httpclient: - response-timeout: 600s - -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always \ No newline at end of file + response-timeout: 600s \ No newline at end of file diff --git a/proxies/sigrunstub-proxy/src/test/java/no/nav/testnav/proxies/sigrunstubproxy/ApplicationContextTest.java b/proxies/sigrunstub-proxy/src/test/java/no/nav/testnav/proxies/sigrunstubproxy/ApplicationContextTest.java index 45092b387a8..486c1714466 100644 --- a/proxies/sigrunstub-proxy/src/test/java/no/nav/testnav/proxies/sigrunstubproxy/ApplicationContextTest.java +++ b/proxies/sigrunstub-proxy/src/test/java/no/nav/testnav/proxies/sigrunstubproxy/ApplicationContextTest.java @@ -1,16 +1,8 @@ package no.nav.testnav.proxies.sigrunstubproxy; -import no.nav.dolly.libs.nais.DollySpringBootTest; -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import no.nav.dolly.libs.test.DollySpringBootTest; +import no.nav.dolly.libs.test.DollyApplicationContextTest; @DollySpringBootTest -class ApplicationContextTest { - - @Test - void load_app_context() { - assertThat(true).isTrue(); - } - +class ApplicationContextTest extends DollyApplicationContextTest { } diff --git a/proxies/skjermingsregister-proxy/config.yml b/proxies/skjermingsregister-proxy/config.yml index 4535491da09..1eb4e0baec6 100644 --- a/proxies/skjermingsregister-proxy/config.yml +++ b/proxies/skjermingsregister-proxy/config.yml @@ -51,7 +51,7 @@ spec: - application: skjermede-personer namespace: nom liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 @@ -63,7 +63,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 diff --git a/proxies/skjermingsregister-proxy/src/main/java/no/nav/testnav/proxies/skjermingsregisterproxy/RouteLocatorConfig.java b/proxies/skjermingsregister-proxy/src/main/java/no/nav/testnav/proxies/skjermingsregisterproxy/RouteLocatorConfig.java index 168a865ef67..2245a3be8be 100644 --- a/proxies/skjermingsregister-proxy/src/main/java/no/nav/testnav/proxies/skjermingsregisterproxy/RouteLocatorConfig.java +++ b/proxies/skjermingsregister-proxy/src/main/java/no/nav/testnav/proxies/skjermingsregisterproxy/RouteLocatorConfig.java @@ -29,6 +29,8 @@ public RouteLocator customRouteLocator( .routes() .route(spec -> spec .path("/**") + .and() + .not(not -> not.path("/internal/**")) .filters(f -> f.filter(authenticationFilter)) .uri(consumers.getSkjermingsregister().getUrl())) .build(); diff --git a/proxies/skjermingsregister-proxy/src/main/resources/application.yml b/proxies/skjermingsregister-proxy/src/main/resources/application.yml index 2f08d4b8909..dd2df1bf9f0 100644 --- a/proxies/skjermingsregister-proxy/src/main/resources/application.yml +++ b/proxies/skjermingsregister-proxy/src/main/resources/application.yml @@ -2,6 +2,8 @@ spring: application: name: testnav-skjermingsregister-proxy description: Proxy for skjermingsregister som legger på sikkerhet. + config: + import: "classpath:dolly-application.yml" security: oauth2: resourceserver: @@ -16,13 +18,6 @@ spring: httpclient: response-timeout: 30s -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always - consumers: skjermingsregister: name: skjermede-personer diff --git a/proxies/skjermingsregister-proxy/src/test/java/no/nav/testnav/proxies/skjermingsregisterproxy/RouteLocatorConfigTest.java b/proxies/skjermingsregister-proxy/src/test/java/no/nav/testnav/proxies/skjermingsregisterproxy/RouteLocatorConfigTest.java index dc9fe7e45d3..ded372ec9d0 100644 --- a/proxies/skjermingsregister-proxy/src/test/java/no/nav/testnav/proxies/skjermingsregisterproxy/RouteLocatorConfigTest.java +++ b/proxies/skjermingsregister-proxy/src/test/java/no/nav/testnav/proxies/skjermingsregisterproxy/RouteLocatorConfigTest.java @@ -1,8 +1,8 @@ package no.nav.testnav.proxies.skjermingsregisterproxy; -import no.nav.dolly.libs.nais.DollySpringBootTest; +import no.nav.dolly.libs.test.DollyApplicationContextTest; +import no.nav.dolly.libs.test.DollySpringBootTest; import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.reactive.AutoConfigureWebTestClient; import org.springframework.boot.test.context.TestConfiguration; import org.springframework.cloud.contract.wiremock.AutoConfigureWireMock; @@ -12,7 +12,6 @@ import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; -import org.springframework.test.web.reactive.server.WebTestClient; import static com.github.tomakehurst.wiremock.client.WireMock.*; import static org.springframework.security.test.web.reactive.server.SecurityMockServerConfigurers.mockOAuth2Login; @@ -22,10 +21,7 @@ ) @AutoConfigureWireMock(port = 0) @AutoConfigureWebTestClient(timeout = "PT1M") -class RouteLocatorConfigTest { - - @Autowired - private WebTestClient webClient; +class RouteLocatorConfigTest extends DollyApplicationContextTest { @TestConfiguration static class TestAuthenticationConfig { @@ -52,7 +48,7 @@ void shouldRouteToStub() { ) ); - webClient + webTestClient .mutateWith(mockOAuth2Login()) .get().uri("/testing/route") .exchange() diff --git a/proxies/sykemelding-proxy/config.yml b/proxies/sykemelding-proxy/config.yml index 4d2a78276fc..15e99c26833 100644 --- a/proxies/sykemelding-proxy/config.yml +++ b/proxies/sykemelding-proxy/config.yml @@ -47,7 +47,7 @@ spec: - application: syfosmregler namespace: teamsykmelding liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 @@ -59,7 +59,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 diff --git a/proxies/sykemelding-proxy/src/main/java/no/nav/testnav/proxies/sykemeldingproxy/RouteLocatorConfig.java b/proxies/sykemelding-proxy/src/main/java/no/nav/testnav/proxies/sykemeldingproxy/RouteLocatorConfig.java index 178db99692b..824d6bbc302 100644 --- a/proxies/sykemelding-proxy/src/main/java/no/nav/testnav/proxies/sykemeldingproxy/RouteLocatorConfig.java +++ b/proxies/sykemelding-proxy/src/main/java/no/nav/testnav/proxies/sykemeldingproxy/RouteLocatorConfig.java @@ -29,6 +29,8 @@ public RouteLocator customRouteLocator( .routes() .route(spec -> spec .path("/**") + .and() + .not(not -> not.path("/internal/**")) .filters(f -> f.filter(authenticationFilter)) .uri(consumers.getSykemelding().getUrl())) .build(); diff --git a/proxies/sykemelding-proxy/src/main/resources/application.yml b/proxies/sykemelding-proxy/src/main/resources/application.yml index 16c7cfdc813..18452389118 100644 --- a/proxies/sykemelding-proxy/src/main/resources/application.yml +++ b/proxies/sykemelding-proxy/src/main/resources/application.yml @@ -2,6 +2,8 @@ spring: application: name: testnav-sykemelding-proxy description: Proxy for sykemelding. + config: + import: "classpath:dolly-application.yml" security: oauth2: resourceserver: @@ -16,13 +18,6 @@ spring: httpclient: response-timeout: 30s -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always - consumers: sykemelding: name: syfosmregler diff --git a/proxies/sykemelding-proxy/src/test/java/no/nav/testnav/proxies/sykemeldingproxy/RouteLocatorConfigTest.java b/proxies/sykemelding-proxy/src/test/java/no/nav/testnav/proxies/sykemeldingproxy/RouteLocatorConfigTest.java index 5a83a245850..836e34afe61 100644 --- a/proxies/sykemelding-proxy/src/test/java/no/nav/testnav/proxies/sykemeldingproxy/RouteLocatorConfigTest.java +++ b/proxies/sykemelding-proxy/src/test/java/no/nav/testnav/proxies/sykemeldingproxy/RouteLocatorConfigTest.java @@ -1,8 +1,8 @@ package no.nav.testnav.proxies.sykemeldingproxy; -import no.nav.dolly.libs.nais.DollySpringBootTest; +import no.nav.dolly.libs.test.DollyApplicationContextTest; +import no.nav.dolly.libs.test.DollySpringBootTest; import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.reactive.AutoConfigureWebTestClient; import org.springframework.boot.test.context.TestConfiguration; import org.springframework.cloud.contract.wiremock.AutoConfigureWireMock; @@ -12,7 +12,6 @@ import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; -import org.springframework.test.web.reactive.server.WebTestClient; import static com.github.tomakehurst.wiremock.client.WireMock.*; import static org.springframework.security.test.web.reactive.server.SecurityMockServerConfigurers.mockOAuth2Login; @@ -22,10 +21,7 @@ ) @AutoConfigureWireMock(port = 0) @AutoConfigureWebTestClient(timeout = "PT1M") -class RouteLocatorConfigTest { - - @Autowired - private WebTestClient webClient; +class RouteLocatorConfigTest extends DollyApplicationContextTest { @TestConfiguration static class TestAuthenticationConfig { @@ -52,7 +48,7 @@ void shouldRouteToStub() { ) ); - webClient + webTestClient .mutateWith(mockOAuth2Login()) .get().uri("/testing/route") .exchange() diff --git a/proxies/synthdata-meldekort-proxy/build.gradle b/proxies/synthdata-meldekort-proxy/build.gradle index 66ce73cf9ae..09cb575cbd9 100644 --- a/proxies/synthdata-meldekort-proxy/build.gradle +++ b/proxies/synthdata-meldekort-proxy/build.gradle @@ -9,12 +9,6 @@ sonarqube { } } -configurations { - configureEach { - exclude group: "org.springframework.boot", module: "spring-boot-starter-actuator" - } -} - dependencies { implementation "no.nav.testnav.libs:data-transfer-objects" implementation "no.nav.testnav.libs:reactive-security" diff --git a/proxies/synthdata-meldekort-proxy/config.yml b/proxies/synthdata-meldekort-proxy/config.yml index c20fb8d97da..f3dcd5f432b 100644 --- a/proxies/synthdata-meldekort-proxy/config.yml +++ b/proxies/synthdata-meldekort-proxy/config.yml @@ -53,7 +53,7 @@ spec: external: - host: synthdata-arena-meldekort.intern.dev.nav.no liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 @@ -65,7 +65,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 diff --git a/proxies/synthdata-meldekort-proxy/src/main/java/no/nav/testnav/proxies/synthdatameldekortproxy/SynthdataMeldekortProxyApplicationStarter.java b/proxies/synthdata-meldekort-proxy/src/main/java/no/nav/testnav/proxies/synthdatameldekortproxy/SynthdataMeldekortProxyApplicationStarter.java index 9af90d282af..f5d66b60fbf 100644 --- a/proxies/synthdata-meldekort-proxy/src/main/java/no/nav/testnav/proxies/synthdatameldekortproxy/SynthdataMeldekortProxyApplicationStarter.java +++ b/proxies/synthdata-meldekort-proxy/src/main/java/no/nav/testnav/proxies/synthdatameldekortproxy/SynthdataMeldekortProxyApplicationStarter.java @@ -30,7 +30,7 @@ public static void main(String[] args) { } @Bean - public RouteLocator customRouteLocator( + RouteLocator customRouteLocator( RouteLocatorBuilder builder, AzureNavTokenService tokenService, Consumers consumers @@ -43,7 +43,10 @@ public RouteLocator customRouteLocator( return builder .routes() .route( - spec -> spec.path("/**") + spec -> spec + .path("/**") + .and() + .not(not -> not.path("/internal/**")) .filters(filterSpec -> filterSpec.filter(addAuthenticationHeaderFilter)) .uri(consumers.getSyntMeldekort().getUrl())) .build(); diff --git a/proxies/synthdata-meldekort-proxy/src/main/resources/application.yml b/proxies/synthdata-meldekort-proxy/src/main/resources/application.yml index 8d9b1938bb0..ce49cb9409a 100644 --- a/proxies/synthdata-meldekort-proxy/src/main/resources/application.yml +++ b/proxies/synthdata-meldekort-proxy/src/main/resources/application.yml @@ -2,6 +2,8 @@ spring: application: name: testnav-synthdata-meldekort-proxy description: Proxy for synthdata-arena-meldekort som legger på sikkerhet. + config: + import: "classpath:dolly-application.yml" security: oauth2: resourceserver: @@ -15,13 +17,6 @@ spring: secretmanager: enabled: false -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always - consumers: synt-meldekort: url: https://synthdata-arena-meldekort.intern.dev.nav.no diff --git a/proxies/synthdata-meldekort-proxy/src/main/resources/logback-spring.xml b/proxies/synthdata-meldekort-proxy/src/main/resources/logback-spring.xml index 7e71f477274..4e5c194c4ee 100644 --- a/proxies/synthdata-meldekort-proxy/src/main/resources/logback-spring.xml +++ b/proxies/synthdata-meldekort-proxy/src/main/resources/logback-spring.xml @@ -22,7 +22,7 @@ - + diff --git a/proxies/synthdata-meldekort-proxy/src/test/java/no/nav/testnav/proxies/synthdatameldekortproxy/ApplicationContextTest.java b/proxies/synthdata-meldekort-proxy/src/test/java/no/nav/testnav/proxies/synthdatameldekortproxy/ApplicationContextTest.java index 00916b25472..8e255f5cd6d 100644 --- a/proxies/synthdata-meldekort-proxy/src/test/java/no/nav/testnav/proxies/synthdatameldekortproxy/ApplicationContextTest.java +++ b/proxies/synthdata-meldekort-proxy/src/test/java/no/nav/testnav/proxies/synthdatameldekortproxy/ApplicationContextTest.java @@ -1,16 +1,8 @@ package no.nav.testnav.proxies.synthdatameldekortproxy; -import no.nav.dolly.libs.nais.DollySpringBootTest; -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import no.nav.dolly.libs.test.DollySpringBootTest; +import no.nav.dolly.libs.test.DollyApplicationContextTest; @DollySpringBootTest -class ApplicationContextTest { - - @Test - void load_app_context() { - assertThat(true).isTrue(); - } - +class ApplicationContextTest extends DollyApplicationContextTest { } \ No newline at end of file diff --git a/proxies/udistub-proxy/config.yml b/proxies/udistub-proxy/config.yml index a300be22918..df95053efd1 100644 --- a/proxies/udistub-proxy/config.yml +++ b/proxies/udistub-proxy/config.yml @@ -34,7 +34,7 @@ spec: - application: testnav-oversikt-frontend cluster: dev-gcp liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 @@ -46,7 +46,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 diff --git a/proxies/udistub-proxy/src/main/java/no/nav/testnav/proxies/udistubproxy/StatusController.java b/proxies/udistub-proxy/src/main/java/no/nav/testnav/proxies/udistubproxy/StatusController.java index 9fe7f992076..f6dd992705d 100644 --- a/proxies/udistub-proxy/src/main/java/no/nav/testnav/proxies/udistubproxy/StatusController.java +++ b/proxies/udistub-proxy/src/main/java/no/nav/testnav/proxies/udistubproxy/StatusController.java @@ -18,8 +18,8 @@ public Map getStatus() { var statusWebClient = WebClient.builder().build(); var status = checkConsumerStatus( - "http://udi-stub.dev.intern.nav.no/internal/isAlive", - "http://udi-stub.dev.intern.nav.no/internal/isReady", + "http://udi-stub.dev.intern.nav.no/internal/health/liveness", + "http://udi-stub.dev.intern.nav.no/internal/health/readiness", statusWebClient); return Map.of( diff --git a/proxies/udistub-proxy/src/main/java/no/nav/testnav/proxies/udistubproxy/UdistubProxyApplicationStarter.java b/proxies/udistub-proxy/src/main/java/no/nav/testnav/proxies/udistubproxy/UdistubProxyApplicationStarter.java index c3c27482a0b..d8a43d55518 100644 --- a/proxies/udistub-proxy/src/main/java/no/nav/testnav/proxies/udistubproxy/UdistubProxyApplicationStarter.java +++ b/proxies/udistub-proxy/src/main/java/no/nav/testnav/proxies/udistubproxy/UdistubProxyApplicationStarter.java @@ -36,7 +36,7 @@ public static void main(String[] args) { } @Bean - public RouteLocator customRouteLocator(RouteLocatorBuilder builder) { + RouteLocator customRouteLocator(RouteLocatorBuilder builder) { var addAuthenticationHeaderFilter = AddAuthenticationRequestGatewayFilterFactory .bearerAuthenticationHeaderFilter( @@ -45,11 +45,13 @@ public RouteLocator customRouteLocator(RouteLocatorBuilder builder) { .map(AccessToken::getTokenValue)); return builder .routes() - .route(spec -> spec.path("/**") - .filters( - filterspec -> filterspec - .setResponseHeader(CONTENT_TYPE, "application/json; charset=UTF-8") - .filter(addAuthenticationHeaderFilter)) + .route(spec -> spec + .path("/**") + .and() + .not(not -> not.path("/internal/**")) + .filters(filterspec -> filterspec + .setResponseHeader(CONTENT_TYPE, "application/json; charset=UTF-8") + .filter(addAuthenticationHeaderFilter)) .uri(consumers.getTestnavUdistub().getUrl())) .build(); } diff --git a/proxies/udistub-proxy/src/main/resources/application.yml b/proxies/udistub-proxy/src/main/resources/application.yml index 7964c5d4848..684813cfbd0 100644 --- a/proxies/udistub-proxy/src/main/resources/application.yml +++ b/proxies/udistub-proxy/src/main/resources/application.yml @@ -2,6 +2,8 @@ spring: application: name: testnav-udistub-proxy description: Proxy for udistub som legger på sikkerhet. + config: + import: "classpath:dolly-application.yml" security: oauth2: resourceserver: @@ -16,13 +18,6 @@ spring: httpclient: response-timeout: 1200s -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always - consumers: testnav-udistub: url: http://testnav-udi-stub.dolly.svc.nais.local diff --git a/proxies/udistub-proxy/src/test/java/no/nav/testnav/proxies/udistubproxy/ApplicationContextTest.java b/proxies/udistub-proxy/src/test/java/no/nav/testnav/proxies/udistubproxy/ApplicationContextTest.java index da894a52abc..6702be5b518 100644 --- a/proxies/udistub-proxy/src/test/java/no/nav/testnav/proxies/udistubproxy/ApplicationContextTest.java +++ b/proxies/udistub-proxy/src/test/java/no/nav/testnav/proxies/udistubproxy/ApplicationContextTest.java @@ -1,16 +1,8 @@ package no.nav.testnav.proxies.udistubproxy; -import no.nav.dolly.libs.nais.DollySpringBootTest; -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import no.nav.dolly.libs.test.DollySpringBootTest; +import no.nav.dolly.libs.test.DollyApplicationContextTest; @DollySpringBootTest -class ApplicationContextTest { - - @Test - void load_app_context() { - assertThat(true).isTrue(); - } - +class ApplicationContextTest extends DollyApplicationContextTest { } diff --git a/proxies/yrkesskade-proxy/config.yml b/proxies/yrkesskade-proxy/config.yml index a62e067635c..ee664c8a9ac 100644 --- a/proxies/yrkesskade-proxy/config.yml +++ b/proxies/yrkesskade-proxy/config.yml @@ -30,7 +30,7 @@ spec: - application: yrkesskade-datagenerator-service namespace: yrkesskade liveness: - path: /internal/isAlive + path: /internal/health/liveness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 @@ -42,7 +42,7 @@ spec: enabled: true runtime: java readiness: - path: /internal/isReady + path: /internal/health/readiness initialDelay: 4 periodSeconds: 5 failureThreshold: 500 diff --git a/proxies/yrkesskade-proxy/src/main/java/no/nav/testnav/proxies/yrkesskadeproxy/YrkesskadeProxyApplicationStarter.java b/proxies/yrkesskade-proxy/src/main/java/no/nav/testnav/proxies/yrkesskadeproxy/YrkesskadeProxyApplicationStarter.java index aeec4528f89..80a011136cf 100644 --- a/proxies/yrkesskade-proxy/src/main/java/no/nav/testnav/proxies/yrkesskadeproxy/YrkesskadeProxyApplicationStarter.java +++ b/proxies/yrkesskade-proxy/src/main/java/no/nav/testnav/proxies/yrkesskadeproxy/YrkesskadeProxyApplicationStarter.java @@ -37,6 +37,8 @@ public RouteLocator customRouteLocator(RouteLocatorBuilder builder, .routes() .route(spec -> spec .path("/**") + .and() + .not(not -> not.path("/internal/**")) .filters(f -> f.filter(tokenxAuthenticationFilter)) .uri(consumers.getYrkesskade().getUrl())) .build(); diff --git a/proxies/yrkesskade-proxy/src/main/resources/application-prod.yml b/proxies/yrkesskade-proxy/src/main/resources/application-prod.yml deleted file mode 100644 index 5b2473efedc..00000000000 --- a/proxies/yrkesskade-proxy/src/main/resources/application-prod.yml +++ /dev/null @@ -1,8 +0,0 @@ - -spring: - security: - oauth2: - resourceserver: - tokenx: - issuer-uri: ${TOKEN_X_ISSUER} - accepted-audience: ${TOKEN_X_CLIENT_ID} \ No newline at end of file diff --git a/proxies/yrkesskade-proxy/src/main/resources/application.yml b/proxies/yrkesskade-proxy/src/main/resources/application.yml index 62a44b12d4f..0e7ed09fc99 100644 --- a/proxies/yrkesskade-proxy/src/main/resources/application.yml +++ b/proxies/yrkesskade-proxy/src/main/resources/application.yml @@ -2,25 +2,23 @@ spring: application: name: testnav-pdl-proxy description: Proxy for pdl som legger på AzureAd sikkerhet og lager en sts token.. + config: + import: "classpath:dolly-application.yml" security: oauth2: resourceserver: aad: issuer-uri: ${AZURE_OPENID_CONFIG_ISSUER} accepted-audience: ${AZURE_APP_CLIENT_ID}, api:// ${AZURE_APP_CLIENT_ID} + tokenx: + issuer-uri: ${TOKEN_X_ISSUER} + accepted-audience: ${TOKEN_X_CLIENT_ID} cloud: gateway: httpclient: response-timeout: 30s wiretap: true -server: - servlet: - encoding: - charset: UTF-8 - error: - include-message: always - logging: level: reactor: diff --git a/proxies/yrkesskade-proxy/src/test/java/no/nav/testnav/proxies/yrkesskadeproxy/ApplicationContextTest.java b/proxies/yrkesskade-proxy/src/test/java/no/nav/testnav/proxies/yrkesskadeproxy/ApplicationContextTest.java new file mode 100644 index 00000000000..898335b49dc --- /dev/null +++ b/proxies/yrkesskade-proxy/src/test/java/no/nav/testnav/proxies/yrkesskadeproxy/ApplicationContextTest.java @@ -0,0 +1,8 @@ +package no.nav.testnav.proxies.yrkesskadeproxy; + +import no.nav.dolly.libs.test.DollyApplicationContextTest; +import no.nav.dolly.libs.test.DollySpringBootTest; + +@DollySpringBootTest +public class ApplicationContextTest extends DollyApplicationContextTest { +}