diff --git a/.github/workflows/build-and-deploy.yml b/.github/workflows/build-and-deploy.yml index 3e634238..fa96999c 100644 --- a/.github/workflows/build-and-deploy.yml +++ b/.github/workflows/build-and-deploy.yml @@ -20,6 +20,7 @@ jobs: with: readertoken: true buildcommand: './gradlew check' + javaversion: 21 codeql: uses: navikt/sif-gha-workflows/.github/workflows/gradle-codeql.yml@main @@ -33,6 +34,7 @@ jobs: readertoken: true package-command: './gradlew clean build -x test' branch: master + javaversion: 21 build: uses: navikt/sif-gha-workflows/.github/workflows/gradle-build.yml@main @@ -45,6 +47,7 @@ jobs: team: dusseldorf readertoken: true buildcommand: '--configuration-cache build -x test' + javaversion: 21 trivy: needs: [ build ] diff --git a/Dockerfile b/Dockerfile index 5c9fb0dd..58e51b17 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM amazoncorretto:17-alpine3.15 +FROM amazoncorretto:21-alpine3.15 COPY build/libs/*.jar app.jar diff --git a/build.gradle.kts b/build.gradle.kts index 2bf7ff30..cb110f1a 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -2,19 +2,19 @@ import com.expediagroup.graphql.plugin.gradle.tasks.GraphQLGenerateClientTask import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { - kotlin("jvm") version "1.9.22" - kotlin("plugin.spring") version "1.9.22" - kotlin("plugin.jpa") version "1.9.22" - id("org.springframework.boot") version "3.2.2" + kotlin("jvm") version "1.9.23" + kotlin("plugin.spring") version "1.9.23" + kotlin("plugin.jpa") version "1.9.23" + id("org.springframework.boot") version "3.2.4" id("io.spring.dependency-management") version "1.1.4" id("com.expediagroup.graphql") version "7.0.2" - id("org.sonarqube") version "4.4.1.3373" + id("org.sonarqube") version "5.0.0.4638" jacoco } group = "no.nav" version = "0.0.1-SNAPSHOT" -java.sourceCompatibility = JavaVersion.VERSION_17 +java.sourceCompatibility = JavaVersion.VERSION_21 configurations { compileOnly { @@ -22,26 +22,26 @@ configurations { } } -val confluentVersion = "7.5.3" -val springCloudVersion = "4.1.1" +val confluentVersion = "7.6.1" +val springCloudVersion = "4.1.2" val logstashLogbackEncoderVersion = "7.4" -val tokenSupportVersion = "3.2.0" +val tokenSupportVersion = "4.1.4" val retryVersion = "2.0.5" val zalandoVersion = "0.27.0" val openhtmltopdfVersion = "1.0.10" -val handlebarsVersion = "4.3.1" -val postgresqlVersion = "42.7.1" -val awailitilityKotlinVersion = "4.2.0" +val handlebarsVersion = "4.4.0" +val postgresqlVersion = "42.7.3" +val awailitilityKotlinVersion = "4.2.1" val assertkJvmVersion = "0.28.0" val springMockkVersion = "4.0.2" -val mockkVersion = "1.13.9" -val guavaVersion = "33.0.0-jre" -val orgJsonVersion = "20231013" +val mockkVersion = "1.13.10" +val guavaVersion = "33.1.0-jre" +val orgJsonVersion = "20240303" val graphQLKotlinVersion = "7.0.2" val k9FormatVersion = "8.3.4" val teamDokumenthåndteringAvroSchemaVersion = "357738b9" -val testContainersVersion = "1.19.4" -val springdocVersion = "2.3.0" +val testContainersVersion = "1.19.7" +val springdocVersion = "2.5.0" repositories { mavenCentral() @@ -161,7 +161,7 @@ tasks.withType { tasks.withType { kotlinOptions { freeCompilerArgs = listOf("-Xjsr305=strict") - jvmTarget = "17" + jvmTarget = "21" } } diff --git a/src/main/kotlin/no/nav/sifinnsynapi/filter/LoggerInterceptor.kt b/src/main/kotlin/no/nav/sifinnsynapi/filter/LoggerInterceptor.kt index b064d329..335bde18 100644 --- a/src/main/kotlin/no/nav/sifinnsynapi/filter/LoggerInterceptor.kt +++ b/src/main/kotlin/no/nav/sifinnsynapi/filter/LoggerInterceptor.kt @@ -14,7 +14,7 @@ class LoggerInterceptor(private val tokenValidationContextHolder: TokenValidatio private val logger = LoggerFactory.getLogger(LoggerInterceptor::class.java) } override fun preHandle(request: HttpServletRequest, response: HttpServletResponse, handler: Any): Boolean { - val jwtToken = tokenValidationContextHolder.tokenValidationContext.firstValidToken.orElse(null) + val jwtToken = tokenValidationContextHolder.getTokenValidationContext().firstValidToken if (jwtToken !== null) { logger.info("Issuer [${jwtToken.issuer}]") } diff --git a/src/main/kotlin/no/nav/sifinnsynapi/k9sakinnsynapi/K9SakInnsynApiClientConfig.kt b/src/main/kotlin/no/nav/sifinnsynapi/k9sakinnsynapi/K9SakInnsynApiClientConfig.kt index b11e7da3..784e305e 100644 --- a/src/main/kotlin/no/nav/sifinnsynapi/k9sakinnsynapi/K9SakInnsynApiClientConfig.kt +++ b/src/main/kotlin/no/nav/sifinnsynapi/k9sakinnsynapi/K9SakInnsynApiClientConfig.kt @@ -51,7 +51,7 @@ class K9SakInnsynApiClientConfig( private fun bearerTokenInterceptor(): ClientHttpRequestInterceptor { return ClientHttpRequestInterceptor { request: HttpRequest, body: ByteArray, execution: ClientHttpRequestExecution -> val response = oAuth2AccessTokenService.getAccessToken(tokenxK9SakInnsynApiClientProperties) - request.headers.setBearerAuth(response.accessToken) + request.headers.setBearerAuth(response.accessToken!!) execution.execute(request, body) } } diff --git a/src/main/kotlin/no/nav/sifinnsynapi/oppslag/OppslagsKlientKonfig.kt b/src/main/kotlin/no/nav/sifinnsynapi/oppslag/OppslagsKlientKonfig.kt index 4b39ad1b..b89c52a0 100644 --- a/src/main/kotlin/no/nav/sifinnsynapi/oppslag/OppslagsKlientKonfig.kt +++ b/src/main/kotlin/no/nav/sifinnsynapi/oppslag/OppslagsKlientKonfig.kt @@ -85,8 +85,8 @@ class OppslagsKlientKonfig( else -> { val response = oAuth2AccessTokenService.getAccessToken(tokenxK9SelvbetjeningOppslagClientProperties) val expiresIn = response.expiresIn - logger.debug("Utveklset token utgår kl. {}, ({} min)", ZonedDateTime.now(UTC).plusSeconds(expiresIn.toLong()), expiresIn/60) - request.headers.setBearerAuth(response.accessToken) + logger.debug("Utveklset token utgår kl. {}, ({} min)", ZonedDateTime.now(UTC).plusSeconds(expiresIn!!.toLong()), expiresIn/60) + request.headers.setBearerAuth(response.accessToken!!) } } execution.execute(request, body) diff --git a/src/main/kotlin/no/nav/sifinnsynapi/saf/SafClientConfig.kt b/src/main/kotlin/no/nav/sifinnsynapi/saf/SafClientConfig.kt index 3a115e0f..4e9319bd 100644 --- a/src/main/kotlin/no/nav/sifinnsynapi/saf/SafClientConfig.kt +++ b/src/main/kotlin/no/nav/sifinnsynapi/saf/SafClientConfig.kt @@ -61,6 +61,6 @@ class SafClientConfig( ) private fun accessToken(clientProperties: ClientProperties): String { - return oAuth2AccessTokenService.getAccessToken(clientProperties).accessToken + return oAuth2AccessTokenService.getAccessToken(clientProperties).accessToken!! } } diff --git a/src/main/kotlin/no/nav/sifinnsynapi/safselvbetjening/SafSelvbetjeningClientsConfig.kt b/src/main/kotlin/no/nav/sifinnsynapi/safselvbetjening/SafSelvbetjeningClientsConfig.kt index ed6edabf..a946fdc0 100644 --- a/src/main/kotlin/no/nav/sifinnsynapi/safselvbetjening/SafSelvbetjeningClientsConfig.kt +++ b/src/main/kotlin/no/nav/sifinnsynapi/safselvbetjening/SafSelvbetjeningClientsConfig.kt @@ -86,7 +86,7 @@ class SafSelvbetjeningClientsConfig( ): ClientHttpRequestInterceptor { return ClientHttpRequestInterceptor { request: HttpRequest, body: ByteArray, execution: ClientHttpRequestExecution -> val response = oAuth2AccessTokenService.getAccessToken(clientProperties) - request.headers.setBearerAuth(response.accessToken) + request.headers.setBearerAuth(response.accessToken!!) execution.execute(request, body) } } diff --git a/src/main/kotlin/no/nav/sifinnsynapi/util/TokenUtils.kt b/src/main/kotlin/no/nav/sifinnsynapi/util/TokenUtils.kt index 32e70f38..ca55437e 100644 --- a/src/main/kotlin/no/nav/sifinnsynapi/util/TokenUtils.kt +++ b/src/main/kotlin/no/nav/sifinnsynapi/util/TokenUtils.kt @@ -11,8 +11,8 @@ object TokenClaims { } fun SpringTokenValidationContextHolder.personIdent(): String { - val jwtToken = tokenValidationContext.firstValidToken - .orElseThrow { IllegalStateException("Ingen gyldige tokens i Authorization headeren") } + val jwtToken = getTokenValidationContext().firstValidToken + ?: throw IllegalStateException("Ingen gyldige tokens i Authorization headeren") val pid = jwtToken.jwtTokenClaims.getStringClaim(TokenClaims.CLAIM_PID) val sub = jwtToken.jwtTokenClaims.getStringClaim(TokenClaims.CLAIM_SUB)