Skip to content

Commit 910ca00

Browse files
committed
configurations
1 parent b03824b commit 910ca00

File tree

1 file changed

+19
-15
lines changed
  • src/main/kotlin/com/vauthenticator/server/config

1 file changed

+19
-15
lines changed
Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
package com.vauthenticator.server.config
22

33
import com.vauthenticator.server.keys.adapter.dynamo.DynamoDbKeyStorage
4+
import com.vauthenticator.server.keys.adapter.jdbc.JdbcKeyStorage
45
import com.vauthenticator.server.keys.adapter.kms.KmsKeyDecrypter
56
import com.vauthenticator.server.keys.adapter.kms.KmsKeyGenerator
6-
import com.vauthenticator.server.keys.domain.KeyDecrypter
7-
import com.vauthenticator.server.keys.domain.KeyGenerator
8-
import com.vauthenticator.server.keys.domain.KeyRepository
9-
import com.vauthenticator.server.keys.domain.SignatureKeyRotation
7+
import com.vauthenticator.server.keys.domain.*
108
import org.springframework.beans.factory.annotation.Value
119
import org.springframework.context.annotation.Bean
1210
import org.springframework.context.annotation.Configuration
11+
import org.springframework.context.annotation.Profile
12+
import org.springframework.jdbc.core.JdbcTemplate
1313
import software.amazon.awssdk.services.dynamodb.DynamoDbClient
1414
import software.amazon.awssdk.services.kms.KmsClient
1515
import java.time.Clock
@@ -24,27 +24,31 @@ class KeyConfig {
2424
@Bean
2525
fun keyDecrypter(kmsClient: KmsClient): KeyDecrypter = KmsKeyDecrypter(kmsClient)
2626

27-
@Bean
28-
fun keyRepository(
27+
@Bean("keyStorage")
28+
@Profile("!experimental_database_persistence")
29+
fun dynamoDbKeyStorage(
2930
clock: Clock,
30-
keyGenerator: KeyGenerator,
31-
keyDecrypter: KeyDecrypter,
3231
dynamoDbClient: DynamoDbClient,
3332
@Value("\${vauthenticator.dynamo-db.keys.signature.table-name}") signatureTableName: String,
3433
@Value("\${vauthenticator.dynamo-db.keys.mfa.table-name}") mfaTableName: String
34+
) = DynamoDbKeyStorage(clock, dynamoDbClient, signatureTableName, mfaTableName)
35+
36+
@Bean("keyStorage")
37+
@Profile("experimental_database_persistence")
38+
fun jdbcKeyStorage(jdbcTemplate: JdbcTemplate, clock: Clock) = JdbcKeyStorage(jdbcTemplate, clock)
39+
40+
@Bean("keyRepository")
41+
fun keyRepository(
42+
keyGenerator: KeyGenerator,
43+
keyDecrypter: KeyDecrypter,
44+
keyStorage: KeyStorage
3545
): KeyRepository =
3646
KeyRepository(
3747
{ UUID.randomUUID().toString() },
38-
DynamoDbKeyStorage(
39-
clock,
40-
dynamoDbClient,
41-
signatureTableName,
42-
mfaTableName,
43-
),
48+
keyStorage,
4449
keyGenerator,
4550
)
4651

47-
4852
@Bean
4953
fun signatureKeyRotation(keyRepository: KeyRepository) = SignatureKeyRotation(keyRepository)
5054
}

0 commit comments

Comments
 (0)