Skip to content

Commit

Permalink
Revert "Legger til integrasjonstest baseklasse med med postgresSql te…
Browse files Browse the repository at this point in the history
…stcontainer og embedded kafka. (#1057)"

This reverts commit 7469360.
  • Loading branch information
ramrock93 committed Jan 11, 2024
1 parent e28b2aa commit 7389f3c
Show file tree
Hide file tree
Showing 66 changed files with 2,578 additions and 1,988 deletions.
32 changes: 9 additions & 23 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,6 @@
<zonky-postgresql.version>13.4.0</zonky-postgresql.version>
<mockk.version>1.13.8</mockk.version>
<jsonassert.version>1.5.1</jsonassert.version>
<testcontainers.version>1.19.3</testcontainers.version>
<springmockk.version>4.0.2</springmockk.version>

<!-- pdf -->
<openhtmltopdf.version>1.0.10</openhtmltopdf.version>
Expand All @@ -71,9 +69,9 @@
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>testcontainers-bom</artifactId>
<version>${testcontainers.version}</version>
<groupId>io.zonky.test.postgres</groupId>
<artifactId>embedded-postgres-binaries-bom</artifactId>
<version>${zonky-postgresql.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
Expand Down Expand Up @@ -101,10 +99,6 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
Expand Down Expand Up @@ -224,9 +218,9 @@

<!-- Testing & Mocks -->
<dependency>
<groupId>com.ninja-squad</groupId>
<artifactId>springmockk</artifactId>
<version>${springmockk.version}</version>
<groupId>io.mockk</groupId>
<artifactId>mockk-jvm</artifactId>
<version>${mockk.version}</version>
<scope>test</scope>
</dependency>
<dependency>
Expand All @@ -241,17 +235,9 @@
<scope>test</scope>
</dependency>
<dependency>
<groupId>no.nav.security</groupId>
<artifactId>token-validation-spring-test</artifactId>
<version>${token-support.version}</version>
</dependency>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>postgresql</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka-test</artifactId>
<groupId>io.zonky.test</groupId>
<artifactId>embedded-postgres</artifactId>
<version>${embedded-postgres.version}</version>
<scope>test</scope>
</dependency>
<dependency>
Expand Down
12 changes: 11 additions & 1 deletion src/main/kotlin/no/nav/k9punsj/K9PunsjApplication.kt
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,23 @@ import com.fasterxml.jackson.databind.PropertyNamingStrategies
import com.fasterxml.jackson.databind.SerializationFeature
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule
import de.huxhorn.sulky.ulid.ULID
import no.nav.k9punsj.configuration.DbConfiguration
import no.nav.k9punsj.configuration.hikariConfig
import no.nav.k9punsj.utils.UlidDeserializer
import org.springframework.boot.Banner
import org.springframework.boot.autoconfigure.SpringBootApplication
import org.springframework.boot.autoconfigure.flyway.FlywayAutoConfiguration
import org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration
import org.springframework.boot.runApplication
import org.springframework.boot.web.embedded.netty.NettyReactiveWebServerFactory
import org.springframework.boot.web.reactive.server.ReactiveWebServerFactory
import org.springframework.context.annotation.Bean
import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder
import org.springframework.scheduling.annotation.EnableScheduling
import javax.sql.DataSource

@EnableScheduling
@SpringBootApplication(exclude = [ErrorMvcAutoConfiguration::class])
@SpringBootApplication(exclude = [ErrorMvcAutoConfiguration::class, FlywayAutoConfiguration::class])
class K9PunsjApplication {

@Bean
Expand All @@ -33,6 +37,12 @@ class K9PunsjApplication {
fun reactiveWebServerFactory(): ReactiveWebServerFactory {
return NettyReactiveWebServerFactory()
}

@Bean
@StandardProfil
fun databaseInitializer(dbConfiguration: DbConfiguration): DataSource {
return hikariConfig(dbConfiguration)
}
}

fun main(args: Array<String>) {
Expand Down
36 changes: 36 additions & 0 deletions src/main/kotlin/no/nav/k9punsj/configuration/DbConfiguration.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package no.nav.k9punsj.configuration

import org.springframework.beans.factory.annotation.Value
import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Configuration

@Configuration
class DbConfiguration(
@Value("\${no.nav.db.url}") private val url: String,
@Value("\${no.nav.db.username}") private val username: String,
@Value("\${no.nav.db.password}") private val password: String?,
@Value("\${no.nav.db.vault_mountpath}") private val vaultMountpath: String
) {

@Bean
fun hikariConfig() = createHikariConfig(url, username, password)

@Bean
fun isVaultEnabled(): Boolean {
return vaultMountpath.isNotBlank()
}

@Bean
fun getVaultDbPath(): String {
return vaultMountpath
}

@Bean
fun databaseName(): String {
return getDbNameFromUrl(url)
}
}

fun getDbNameFromUrl(urlWithDbName: String): String {
return Regex("(?<=/)[a-zA-Z][-_a-zA-Z\\d]*\$").find(urlWithDbName)?.value ?: ""
}
26 changes: 26 additions & 0 deletions src/main/kotlin/no/nav/k9punsj/configuration/HikariConfig.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package no.nav.k9punsj.configuration

import com.zaxxer.hikari.HikariConfig
import com.zaxxer.hikari.HikariDataSource

fun createHikariConfig(
jdbcUrl: String,
username: String? = null,
password: String? = null
) = HikariConfig().apply {
this.jdbcUrl = jdbcUrl
maximumPoolSize = 10
minimumIdle = 1
idleTimeout = 10001
connectionTimeout = 1000
maxLifetime = 30001
driverClassName = "org.postgresql.Driver"
username?.let { this.username = it }
password?.let { this.password = it }
isAutoCommit = true
}

fun hikariConfig(hikariConfig: DbConfiguration): HikariDataSource {
migrate(hikariConfig)
return getDataSource(hikariConfig)
}
49 changes: 49 additions & 0 deletions src/main/kotlin/no/nav/k9punsj/configuration/Postgres.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
package no.nav.k9punsj.configuration

import com.zaxxer.hikari.HikariDataSource
import no.nav.vault.jdbc.hikaricp.HikariCPVaultUtil
import org.flywaydb.core.Flyway
import org.flywaydb.core.api.output.MigrateResult
import java.util.Locale
import javax.sql.DataSource

enum class Role {
Admin;

override fun toString() = name.lowercase(Locale.getDefault())
}

fun getDataSource(configuration: DbConfiguration): HikariDataSource =
if (configuration.isVaultEnabled()) {
dataSourceFromVault(configuration, Role.Admin)
} else {
HikariDataSource(configuration.hikariConfig())
}

fun dataSourceFromVault(hikariConfig: DbConfiguration, role: Role): HikariDataSource =
HikariCPVaultUtil.createHikariDataSourceWithVaultIntegration(
hikariConfig.hikariConfig(),
hikariConfig.getVaultDbPath(),
"${hikariConfig.databaseName()}-$role"
)

fun migrate(configuration: DbConfiguration) =
if (configuration.isVaultEnabled()) {
runMigration(
dataSourceFromVault(configuration, Role.Admin),
"SET ROLE \'${configuration.databaseName()}-${Role.Admin}\'"
)
} else {
runMigration(HikariDataSource(configuration.hikariConfig()))
}

fun loadFlyway(dataSource: DataSource, initSql: String? = null) =
Flyway.configure()
.locations("migreringer/")
.dataSource(dataSource)
.initSql(initSql)
.load()!!

fun runMigration(dataSource: DataSource, initSql: String? = null): MigrateResult? {
return loadFlyway(dataSource, initSql).migrate()
}
2 changes: 2 additions & 0 deletions src/main/kotlin/no/nav/k9punsj/kafka/KafkaHendelseProducer.kt
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
package no.nav.k9punsj.kafka

import no.nav.k9punsj.IkkeTestProfil
import org.slf4j.Logger
import org.slf4j.LoggerFactory
import org.springframework.kafka.core.KafkaTemplate
import org.springframework.stereotype.Component

@Component
@IkkeTestProfil
class KafkaHendelseProducer(
private val kafkaTemplate: KafkaTemplate<String, String>
) : HendelseProducer {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ import org.springframework.web.reactive.function.server.ServerResponse
import org.springframework.web.reactive.function.server.buildAndAwait

@Service
class AuthenticationHandler(
internal class AuthenticationHandler(
multiIssuerProperties: MultiIssuerProperties
) {

Expand Down
16 changes: 5 additions & 11 deletions src/main/resources/application.yml
Original file line number Diff line number Diff line change
@@ -1,14 +1,3 @@
spring:
datasource:
hikari:
connection-test-query: SELECT 1
url: ${DEFAULTDS_URL}
username: ${DEFAULTDS_USERNAME}
password: ${DEFAULTDS_PASSWORD}
driver-class-name: org.postgresql.Driver
flyway:
enabled: true

management:
health:
diskspace:
Expand Down Expand Up @@ -85,6 +74,11 @@ no.nav:
accepted_audience: ${APP_NAISSTS_aud}
proxyUrl:

db:
url: ${DEFAULTDS_URL}
username: ${DEFAULTDS_USERNAME}
password: ${DEFAULTDS_PASSWORD}
vault_mountpath: ${DEFAULTDS_VAULT_MOUNTPATH}
abac:
system_user: ${SYSTEMBRUKER_USERNAME}
system_user_password: ${SYSTEMBRUKER_PASSWORD}
Expand Down
Loading

0 comments on commit 7389f3c

Please sign in to comment.