Skip to content

Commit b03824b

Browse files
committed
repackaging
key repository jdbc test
1 parent 4e90dd3 commit b03824b

File tree

15 files changed

+115
-78
lines changed

15 files changed

+115
-78
lines changed

src/main/kotlin/com/vauthenticator/server/communication/adapter/email/JavaEMailSenderService.kt renamed to src/main/kotlin/com/vauthenticator/server/communication/adapter/javamail/JavaEMailSenderService.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.vauthenticator.server.communication.adapter.email
1+
package com.vauthenticator.server.communication.adapter.javamail
22

33
import com.vauthenticator.document.repository.DocumentRepository
44
import com.vauthenticator.document.repository.DocumentType

src/main/kotlin/com/vauthenticator/server/communication/adapter/sms/SnsSmsSenderService.kt renamed to src/main/kotlin/com/vauthenticator/server/communication/adapter/sns/SnsSmsSenderService.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.vauthenticator.server.communication.adapter.sms
1+
package com.vauthenticator.server.communication.adapter.sns
22

33
import com.vauthenticator.server.account.Account
44
import com.vauthenticator.server.communication.domain.MessageContext

src/main/kotlin/com/vauthenticator/server/config/EMailVerificationConfig.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import com.vauthenticator.server.account.emailverification.VerifyEMailChallenge
88
import com.vauthenticator.server.account.repository.AccountRepository
99
import com.vauthenticator.server.communication.NoReplyEMailConfiguration
1010
import com.vauthenticator.server.communication.adapter.JinJavaTemplateResolver
11-
import com.vauthenticator.server.communication.adapter.email.JavaEMailSenderService
11+
import com.vauthenticator.server.communication.adapter.javamail.JavaEMailSenderService
1212
import com.vauthenticator.server.communication.domain.EMailSenderService
1313
import com.vauthenticator.server.communication.domain.EMailType
1414
import com.vauthenticator.server.communication.domain.SimpleEMailMessageFactory

src/main/kotlin/com/vauthenticator/server/config/ResetPasswordConfig.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import com.vauthenticator.document.repository.DocumentRepository
55
import com.vauthenticator.server.account.repository.AccountRepository
66
import com.vauthenticator.server.communication.NoReplyEMailConfiguration
77
import com.vauthenticator.server.communication.adapter.JinJavaTemplateResolver
8-
import com.vauthenticator.server.communication.adapter.email.JavaEMailSenderService
8+
import com.vauthenticator.server.communication.adapter.javamail.JavaEMailSenderService
99
import com.vauthenticator.server.communication.domain.EMailSenderService
1010
import com.vauthenticator.server.communication.domain.EMailType
1111
import com.vauthenticator.server.communication.domain.SimpleEMailMessageFactory

src/main/kotlin/com/vauthenticator/server/config/WelcomeConfig.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import com.vauthenticator.server.account.welcome.SayWelcome
77
import com.vauthenticator.server.account.welcome.SendWelcomeMailUponSignUpEventConsumer
88
import com.vauthenticator.server.communication.NoReplyEMailConfiguration
99
import com.vauthenticator.server.communication.adapter.JinJavaTemplateResolver
10-
import com.vauthenticator.server.communication.adapter.email.JavaEMailSenderService
10+
import com.vauthenticator.server.communication.adapter.javamail.JavaEMailSenderService
1111
import com.vauthenticator.server.communication.domain.EMailSenderService
1212
import com.vauthenticator.server.communication.domain.EMailType
1313
import com.vauthenticator.server.communication.domain.SimpleEMailMessageFactory
Lines changed: 40 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,17 @@
11
package com.vauthenticator.server.keys.adapter.jdbc
22

3+
import com.vauthenticator.server.extentions.expirationTimeStampInSecondFromNow
34
import com.vauthenticator.server.keys.domain.*
45
import org.slf4j.LoggerFactory
56
import org.springframework.jdbc.core.JdbcTemplate
7+
import java.sql.ResultSet
8+
import java.time.Clock
69
import java.time.Duration
710

8-
class JdbcKeyStorage(private val jdbcTemplate: JdbcTemplate) : KeyStorage {
11+
class JdbcKeyStorage(
12+
private val jdbcTemplate: JdbcTemplate,
13+
private val clock: Clock,
14+
) : KeyStorage {
915

1016
private val logger = LoggerFactory.getLogger(JdbcKeyStorage::class.java)
1117

@@ -18,59 +24,66 @@ class JdbcKeyStorage(private val jdbcTemplate: JdbcTemplate) : KeyStorage {
1824
) {
1925
jdbcTemplate.update(
2026
"""
21-
INSERT INTO KEY (
22-
key_id
27+
INSERT INTO KEYS(
28+
key_id,
2329
master_key_id,
2430
key_purpose,
2531
key_type,
2632
encrypted_private_key,
2733
public_key,
2834
enabled,
2935
key_expiration_date_timestamp
30-
) VALUES (?,?,?,?,?,?,?,?)
36+
) VALUES (?,?,?,?,?,?,?,?)
3137
""".trimIndent(),
3238
kid.content(),
3339
masterKid.content(),
40+
keyPurpose.name,
41+
keyType.name,
3442
dataKey.encryptedPrivateKeyAsString(),
3543
dataKey.publicKeyAsString(),
36-
keyPurpose.name,
3744
true,
3845
Duration.ofSeconds(0).toSeconds()
3946
)
4047
}
4148

42-
override fun signatureKeys(): Keys {
43-
TODO()
44-
}
49+
override fun signatureKeys(): Keys = Keys(
50+
jdbcTemplate.query(
51+
"SELECT * FROM KEYS WHERE key_purpose = ?;", { rs, _ -> keyFrom(rs) },
52+
KeyPurpose.SIGNATURE.name
53+
)
54+
)
55+
4556

4657
override fun findOne(kid: Kid, keyPurpose: KeyPurpose): Key {
47-
return jdbcTemplate.query(
48-
"""
49-
SELECT * FROM KEY WHERE key_id = ? AND key_purpose = ?;
50-
""".trimIndent(), { rs, _ ->
51-
Key(
52-
kid = Kid(rs.getString("key_id")),
53-
masterKid = MasterKid(rs.getString("master_key_id")),
54-
keyPurpose = KeyPurpose.valueOf(rs.getString("key_purpose")),
55-
enabled = rs.getBoolean("enabled"),
56-
type = KeyType.valueOf(rs.getString("key_type")),
57-
expirationDateTimestamp = rs.getLong("key_expiration_date_timestamp"),
58-
dataKey = DataKey.from(
59-
rs.getString("encrypted_private_key"),
60-
rs.getString("public_key"),
61-
)
62-
)
63-
},
58+
return jdbcTemplate.query(
59+
"SELECT * FROM KEYS WHERE key_id = ? AND key_purpose = ?;", { rs, _ -> keyFrom(rs) },
6460
kid.content(), keyPurpose.name
6561
).first()
6662
}
6763

64+
private fun keyFrom(rs: ResultSet) = Key(
65+
kid = Kid(rs.getString("key_id")),
66+
masterKid = MasterKid(rs.getString("master_key_id")),
67+
keyPurpose = KeyPurpose.valueOf(rs.getString("key_purpose")),
68+
enabled = rs.getBoolean("enabled"),
69+
type = KeyType.valueOf(rs.getString("key_type")),
70+
expirationDateTimestamp = rs.getLong("key_expiration_date_timestamp"),
71+
dataKey = DataKey.from(
72+
rs.getString("encrypted_private_key"),
73+
rs.getString("public_key"),
74+
)
75+
)
76+
6877
override fun justDeleteKey(kid: Kid, keyPurpose: KeyPurpose) {
69-
TODO()
78+
jdbcTemplate.update(
79+
"DELETE FROM KEYS WHERE key_id = ? AND key_purpose = ?;", kid.content(), keyPurpose.name
80+
)
7081
}
7182

7283
override fun keyDeleteJodPlannedFor(kid: Kid, ttl: Duration, keyPurpose: KeyPurpose) {
73-
TODO()
84+
jdbcTemplate.update("UPDATE KEYS SET key_expiration_date_timestamp=?, enabled=? WHERE key_id =? AND key_expiration_date_timestamp=0 AND key_purpose=?",
85+
ttl.expirationTimeStampInSecondFromNow(clock), false, kid.content(), keyPurpose.name
86+
)
7487
}
7588

7689
}

src/main/kotlin/com/vauthenticator/server/mfa/MfaConfig.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ import com.vauthenticator.document.repository.DocumentRepository
55
import com.vauthenticator.server.account.repository.AccountRepository
66
import com.vauthenticator.server.communication.NoReplyEMailConfiguration
77
import com.vauthenticator.server.communication.adapter.JinJavaTemplateResolver
8-
import com.vauthenticator.server.communication.adapter.email.JavaEMailSenderService
9-
import com.vauthenticator.server.communication.adapter.sms.SnsSmsSenderService
8+
import com.vauthenticator.server.communication.adapter.javamail.JavaEMailSenderService
9+
import com.vauthenticator.server.communication.adapter.sns.SnsSmsSenderService
1010
import com.vauthenticator.server.communication.domain.*
1111
import com.vauthenticator.server.keys.domain.KeyDecrypter
1212
import com.vauthenticator.server.keys.domain.KeyRepository

src/main/resources/data/schema.sql

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,20 +37,19 @@ CREATE TABLE ACCOUNT_ROLE
3737
FOREIGN KEY (role_name) REFERENCES ROLE (name) on delete cascade
3838
);
3939

40-
CREATE TABLE KEY
40+
CREATE TABLE KEYS
4141
(
4242
key_id varchar(255) not null primary key,
4343
master_key_id varchar(255) not null,
4444
key_purpose varchar(255) not null,
4545
key_type varchar(255) not null,
4646
encrypted_private_key text,
4747
public_key text,
48-
enabled not null default false,
49-
key_expiration_date_timestamp bigint_field not null default 0,
50-
48+
enabled boolean not null default false,
49+
key_expiration_date_timestamp bigint not null default 0
5150
);
5251

53-
CREATE INDEX keys_key_purpose ON KEY (key_purpose);
52+
CREATE INDEX keys_key_purpose ON KEYS (key_purpose);
5453

5554
CREATE TABLE CLIENT_APPLICATION
5655
(

src/test/kotlin/com/vauthenticator/server/communication/email/JavaEMailSenderServiceTest.kt renamed to src/test/kotlin/com/vauthenticator/server/communication/adapter/javamail/JavaEMailSenderServiceTest.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
1-
package com.vauthenticator.server.communication.email
1+
package com.vauthenticator.server.communication.adapter.javamail
22

33
import com.hubspot.jinjava.Jinjava
44
import com.icegreen.greenmail.configuration.GreenMailConfiguration
55
import com.icegreen.greenmail.junit5.GreenMailExtension
66
import com.icegreen.greenmail.util.ServerSetupTest
77
import com.vauthenticator.document.repository.DocumentRepository
88
import com.vauthenticator.server.communication.adapter.JinJavaTemplateResolver
9-
import com.vauthenticator.server.communication.adapter.email.JavaEMailSenderService
109
import com.vauthenticator.server.communication.domain.EMailSenderService
1110
import com.vauthenticator.server.communication.domain.EMailType
1211
import com.vauthenticator.server.communication.domain.MessageTemplateResolver

src/test/kotlin/com/vauthenticator/server/communication/sms/SnsSmsSenderServiceTest.kt renamed to src/test/kotlin/com/vauthenticator/server/communication/adapter/sns/SnsSmsSenderServiceTest.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
1-
package com.vauthenticator.server.communication.sms
1+
package com.vauthenticator.server.communication.adapter.sns
22

33
import com.vauthenticator.server.account.Phone.Companion.phoneFor
4-
import com.vauthenticator.server.communication.adapter.sms.SnsSmsSenderService
54
import com.vauthenticator.server.communication.domain.SmsMessage
65
import com.vauthenticator.server.communication.domain.SmsMessageFactory
76
import com.vauthenticator.server.support.AccountTestFixture.anAccount

0 commit comments

Comments
 (0)