Skip to content

Commit 4eedc17

Browse files
authored
Merge pull request #129 from navikt/dev/VaultUtil
Tatt i bruk VaultUtil fra emottak-utils
2 parents 244eb5d + fd55400 commit 4eedc17

File tree

11 files changed

+17
-148
lines changed

11 files changed

+17
-148
lines changed

cpa-repo/src/main/kotlin/no/nav/emottak/cpa/persistence/DBConfiguration.kt

+2-3
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ import com.zaxxer.hikari.HikariConfig
55
import no.nav.emottak.cpa.log
66
import no.nav.emottak.utils.environment.fromEnv
77
import no.nav.emottak.utils.environment.getEnvVar
8+
import no.nav.emottak.utils.vault.VaultUtil
89
import no.nav.vault.jdbc.hikaricp.HikariCPVaultUtil
9-
import no.nav.vault.jdbc.hikaricp.VaultUtil
1010

1111
const val CPA_DB_NAME = "emottak-cpa-repo-db"
1212

@@ -55,10 +55,9 @@ fun VaultConfig.configure(role: String): HikariConfig {
5555
this.maximumPoolSize = maxPoolSizeForUser
5656
if (role == "admin") {
5757
this.maximumPoolSize = maxPoolSizeForAdmin
58-
val vault = VaultUtil.getInstance().client
5958
val path: String = this@configure.vaultMountPath + "/creds/$databaseName-$role"
6059
log.info("Fetching database credentials for role admin")
61-
val response: LogicalResponse = vault.logical().read(path)
60+
val response: LogicalResponse = VaultUtil.getClient().logical().read(path)
6261
this.username = response.data["username"]
6362
this.password = response.data["password"]
6463
}

ebms-async/src/main/kotlin/no/nav/emottak/ebms/async/persistence/DatabaseConfig.kt

+2-3
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ import com.bettercloud.vault.response.LogicalResponse
44
import com.zaxxer.hikari.HikariConfig
55
import no.nav.emottak.ebms.async.log
66
import no.nav.emottak.utils.environment.getEnvVar
7+
import no.nav.emottak.utils.vault.VaultUtil
78
import no.nav.vault.jdbc.hikaricp.HikariCPVaultUtil
8-
import no.nav.vault.jdbc.hikaricp.VaultUtil
99

1010
const val EBMS_DB_NAME = "emottak-ebms-db"
1111

@@ -33,10 +33,9 @@ fun VaultConfig.configure(role: String): HikariConfig {
3333
this.maximumPoolSize = maxPoolSizeForUser
3434
if (role == "admin") {
3535
this.maximumPoolSize = maxPoolSizeForAdmin
36-
val vault = VaultUtil.getInstance().client
3736
val path: String = this@configure.vaultMountPath + "/creds/$databaseName-$role"
3837
log.info("Fetching database credentials for role admin")
39-
val response: LogicalResponse = vault.logical().read(path)
38+
val response: LogicalResponse = VaultUtil.getClient().logical().read(path)
4039
this.username = response.data["username"]
4140
this.password = response.data["password"]
4241
}

ebms-payload/src/main/kotlin/no/nav/emottak/payload/crypto/Dekryptering.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ package no.nav.emottak.payload.crypto
33
import no.nav.emottak.crypto.FileKeyStoreConfig
44
import no.nav.emottak.crypto.KeyStoreManager
55
import no.nav.emottak.crypto.VaultKeyStoreConfig
6-
import no.nav.emottak.crypto.parseVaultJsonObject
76
import no.nav.emottak.util.decodeBase64
87
import no.nav.emottak.utils.environment.getEnvVar
8+
import no.nav.emottak.utils.vault.parseVaultJsonObject
99
import org.bouncycastle.asn1.x500.X500Name
1010
import org.bouncycastle.cms.CMSEnvelopedData
1111
import org.bouncycastle.cms.KeyTransRecipientId

ebms-payload/src/main/kotlin/no/nav/emottak/payload/crypto/PayloadSignering.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@ package no.nav.emottak.payload.crypto
33
import no.nav.emottak.crypto.FileKeyStoreConfig
44
import no.nav.emottak.crypto.KeyStoreManager
55
import no.nav.emottak.crypto.VaultKeyStoreConfig
6-
import no.nav.emottak.crypto.parseVaultJsonObject
76
import no.nav.emottak.message.model.SignatureDetails
87
import no.nav.emottak.util.createX509Certificate
98
import no.nav.emottak.util.signatur.SignatureException
109
import no.nav.emottak.utils.environment.getEnvVar
10+
import no.nav.emottak.utils.vault.parseVaultJsonObject
1111
import org.w3c.dom.Document
1212
import java.io.FileReader
1313
import java.security.Key

ebms-payload/src/main/kotlin/no/nav/emottak/payload/ocspstatus/OCSPConfig.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package no.nav.emottak.payload.ocspstatus
22

33
import no.nav.emottak.crypto.FileKeyStoreConfig
4-
import no.nav.emottak.crypto.parseVaultJsonObject
54
import no.nav.emottak.utils.environment.getEnvVar
5+
import no.nav.emottak.utils.vault.parseVaultJsonObject
66
import java.io.FileReader
77

88
internal fun trustStoreConfig() = FileKeyStoreConfig(

ebms-provider/src/main/kotlin/no/nav/emottak/ebms/xml/EbMSSigning.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import jakarta.xml.soap.SOAPConstants
44
import no.nav.emottak.crypto.FileKeyStoreConfig
55
import no.nav.emottak.crypto.KeyStoreManager
66
import no.nav.emottak.crypto.VaultKeyStoreConfig
7-
import no.nav.emottak.crypto.parseVaultJsonObject
87
import no.nav.emottak.ebms.validation.CID_PREFIX
98
import no.nav.emottak.ebms.validation.EbMSAttachmentResolver
109
import no.nav.emottak.message.model.EbMSDocument
@@ -14,6 +13,7 @@ import no.nav.emottak.util.createX509Certificate
1413
import no.nav.emottak.util.getFirstChildElement
1514
import no.nav.emottak.util.signatur.SignatureException
1615
import no.nav.emottak.utils.environment.getEnvVar
16+
import no.nav.emottak.utils.vault.parseVaultJsonObject
1717
import org.apache.xml.security.exceptions.XMLSecurityException
1818
import org.apache.xml.security.signature.XMLSignature
1919
import org.apache.xml.security.transforms.Transforms

felles/build.gradle.kts

-2
Original file line numberDiff line numberDiff line change
@@ -32,15 +32,13 @@ dependencies {
3232
implementation(libs.ebxml.protokoll)
3333
implementation(libs.emottak.payload.xsd)
3434
implementation(libs.guava)
35-
implementation(libs.hikari)
3635
api("dev.reformator.stacktracedecoroutinator:stacktrace-decoroutinator-jvm:2.3.8")
3736
implementation(libs.flyway.core)
3837
implementation(libs.ktor.serialization.kotlinx.json)
3938
implementation(libs.apache.santuario)
4039
implementation(libs.bundles.logging)
4140
implementation(libs.ktor.client.core)
4241
implementation(libs.ktor.client.cio)
43-
implementation("com.bettercloud:vault-java-driver:5.1.0")
4442
api(libs.bundles.bouncycastle)
4543
testImplementation(testLibs.junit.jupiter.api)
4644
testImplementation(testLibs.junit.jupiter.engine)
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
package no.nav.emottak.crypto
22

3-
import kotlinx.serialization.json.Json
4-
import kotlinx.serialization.json.jsonObject
5-
import kotlinx.serialization.json.jsonPrimitive
6-
import no.nav.emottak.vault.VaultUtil
3+
import no.nav.emottak.utils.vault.VaultUtil
4+
import no.nav.emottak.utils.vault.parseVaultJsonObject
75
import java.io.InputStream
86
import kotlin.io.encoding.Base64
97
import kotlin.io.encoding.ExperimentalEncodingApi
@@ -14,15 +12,12 @@ class VaultKeyStoreConfig(
1412
keyStoreFileResource: String,
1513
keyStorePassResource: String
1614
) : KeyStoreConfig {
17-
override val keyStoreFile: InputStream = getDecodedVaultKeyStoreFile(keyStoreVaultPath, keyStoreFileResource)
18-
override val keyStorePass: CharArray = VaultUtil.readVaultPathResource(keyStoreVaultPath, keyStorePassResource).parseVaultJsonObject("password").toCharArray()
19-
override val keyStoreType: String = VaultUtil.readVaultPathResource(keyStoreVaultPath, keyStorePassResource).parseVaultJsonObject("type")
15+
private val keystoreVaultMap: Map<String, String> = VaultUtil.readVaultPathData(keyStoreVaultPath)
16+
override val keyStoreFile: InputStream = keystoreVaultMap.getDecodedVaultKeyStoreFile(keyStoreFileResource)
17+
override val keyStorePass: CharArray = keystoreVaultMap[keyStorePassResource]!!.parseVaultJsonObject("password").toCharArray()
18+
override val keyStoreType: String = keystoreVaultMap[keyStorePassResource]!!.parseVaultJsonObject("type")
2019

2120
@OptIn(ExperimentalEncodingApi::class)
22-
private fun getDecodedVaultKeyStoreFile(keyStoreVaultPath: String, keyStoreFileResource: String): InputStream =
23-
VaultUtil.readVaultPathResource(keyStoreVaultPath, keyStoreFileResource).byteInputStream().decodingWith(Base64.Mime)
21+
private fun Map<String, String>.getDecodedVaultKeyStoreFile(keyStoreFileResource: String): InputStream =
22+
this[keyStoreFileResource]!!.byteInputStream().decodingWith(Base64.Mime)
2423
}
25-
26-
fun String.parseVaultJsonObject(field: String) = Json.parseToJsonElement(
27-
this
28-
).jsonObject[field]!!.jsonPrimitive.content

felles/src/main/kotlin/no/nav/emottak/util/SertifikatUtil.kt

-3
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@ import java.security.cert.CertificateException
66
import java.security.cert.CertificateFactory
77
import java.security.cert.X509CRL
88
import java.security.cert.X509Certificate
9-
import kotlin.io.encoding.Base64
10-
import kotlin.io.encoding.ExperimentalEncodingApi
119

1210
fun isSelfSigned(certificate: X509Certificate) =
1311
certificate.subjectX500Principal == certificate.issuerX500Principal
@@ -27,5 +25,4 @@ fun createCRLFile(byteArray: ByteArray): X509CRL {
2725
return factory.generateCRL(ByteArrayInputStream(byteArray)) as X509CRL
2826
}
2927

30-
@OptIn(ExperimentalEncodingApi::class)
3128
fun decodeBase64(base64String: ByteArray): ByteArray = java.util.Base64.getMimeDecoder().decode(base64String)

felles/src/main/kotlin/no/nav/emottak/vault/VaultUtil.kt

-119
This file was deleted.

settings.gradle.kts

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ dependencyResolutionManagement {
2121
version("hoplite", "2.8.2")
2222
version("logback", "1.5.17")
2323
version("logstash", "8.0")
24-
version("emottak-utils", "0.2.0")
24+
version("emottak-utils", "0.2.1")
2525

2626
library("bcpkix-jdk18on", "org.bouncycastle", "bcpkix-jdk18on").versionRef("bouncycastle")
2727
library("bcprov-jdk18on", "org.bouncycastle", "bcprov-jdk18on").versionRef("bouncycastle")

0 commit comments

Comments
 (0)