Skip to content

Commit

Permalink
repackaging
Browse files Browse the repository at this point in the history
  • Loading branch information
mrFlick72 committed Jul 17, 2024
1 parent 84ea1b2 commit 0e81f40
Show file tree
Hide file tree
Showing 22 changed files with 89 additions and 55 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ package com.vauthenticator.server.account.emailverification

import com.vauthenticator.server.account.AccountNotFoundException
import com.vauthenticator.server.account.repository.AccountRepository
import com.vauthenticator.server.account.ticket.VerificationTicket
import com.vauthenticator.server.account.ticket.VerificationTicketFactory
import com.vauthenticator.server.email.EMailSenderService
import com.vauthenticator.server.mfa.domain.VerificationTicket
import com.vauthenticator.server.mfa.domain.VerificationTicketFactory
import com.vauthenticator.server.oauth2.clientapp.ClientAppId
import org.slf4j.LoggerFactory

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,8 @@ package com.vauthenticator.server.account.emailverification

import com.vauthenticator.server.account.Account
import com.vauthenticator.server.account.repository.AccountRepository
import com.vauthenticator.server.account.ticket.InvalidTicketException
import com.vauthenticator.server.account.ticket.Ticket
import com.vauthenticator.server.account.ticket.TicketRepository
import com.vauthenticator.server.account.ticket.VerificationTicket
import com.vauthenticator.server.mfa.domain.MfaMethod
import com.vauthenticator.server.mfa.domain.MfaMethodsEnrolmentAssociation
import com.vauthenticator.server.mfa.domain.*
import com.vauthenticator.server.mfa.repository.TicketRepository

class VerifyEMailChallenge(
private val accountRepository: AccountRepository,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@ import com.vauthenticator.server.account.emailverification.SendVerifyEMailChalle
import com.vauthenticator.server.account.emailverification.SendVerifyEMailChallengeUponSignUpEventConsumer
import com.vauthenticator.server.account.emailverification.VerifyEMailChallenge
import com.vauthenticator.server.account.repository.AccountRepository
import com.vauthenticator.server.account.ticket.TicketRepository
import com.vauthenticator.server.account.ticket.VerificationTicketFactory
import com.vauthenticator.server.email.*
import com.vauthenticator.server.mfa.domain.MfaMethodsEnrolmentAssociation
import com.vauthenticator.server.mfa.domain.VerificationTicketFactory
import com.vauthenticator.server.mfa.repository.TicketRepository
import com.vauthenticator.server.oauth2.clientapp.ClientApplicationRepository
import org.springframework.beans.factory.annotation.Value
import org.springframework.context.annotation.Bean
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@ package com.vauthenticator.server.config
import com.hubspot.jinjava.Jinjava
import com.vauthenticator.document.repository.DocumentRepository
import com.vauthenticator.server.account.repository.AccountRepository
import com.vauthenticator.server.account.ticket.TicketRepository
import com.vauthenticator.server.account.ticket.VerificationTicketFactory
import com.vauthenticator.server.email.*
import com.vauthenticator.server.events.VAuthenticatorEventsDispatcher
import com.vauthenticator.server.mfa.domain.VerificationTicketFactory
import com.vauthenticator.server.mfa.repository.TicketRepository
import com.vauthenticator.server.oauth2.clientapp.ClientApplicationRepository
import com.vauthenticator.server.password.PasswordPolicy
import com.vauthenticator.server.password.VAuthenticatorPasswordEncoder
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package com.vauthenticator.server.config

import com.vauthenticator.server.account.ticket.DynamoDbTicketRepository
import com.vauthenticator.server.account.ticket.TicketRepository
import com.vauthenticator.server.account.ticket.VerificationTicketFactory
import com.vauthenticator.server.account.ticket.VerificationTicketFeatures
import com.vauthenticator.server.mfa.domain.VerificationTicketFactory
import com.vauthenticator.server.mfa.domain.VerificationTicketFeatures
import com.vauthenticator.server.mfa.repository.DynamoDbTicketRepository
import com.vauthenticator.server.mfa.repository.TicketRepository
import org.springframework.beans.factory.annotation.Value
import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Configuration
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,7 @@ import com.vauthenticator.server.mfa.domain.MfaMethod
import com.vauthenticator.server.mfa.repository.MfaAccountMethodsRepository
import org.springframework.http.ResponseEntity.ok
import org.springframework.security.core.Authentication
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.RestController
import org.springframework.web.bind.annotation.*

@RestController
class MfaEnrolmentAssociationEndPoint(
Expand All @@ -21,16 +20,44 @@ class MfaEnrolmentAssociationEndPoint(
mfaAccountMethodsRepository.findAll(authentication.name)
.map {
when (it.method) {
MfaMethod.EMAIL_MFA_METHOD -> EmailMfaEnrolledDeviceResponse(sensitiveEmailMasker.mask(it.email), it.method.name)
MfaMethod.EMAIL_MFA_METHOD -> EmailMfaEnrolledDevice(
sensitiveEmailMasker.mask(it.email),
it.method.name
)

MfaMethod.SMS_MFA_METHOD -> TODO()
MfaMethod.OTP_MFA_METHOD -> TODO()
}

}
)


/*
* /api/mfa/enrollment -> enrollmentId
*
* */
@PutMapping("/api/mfa/enrollment")
fun enrollMfa(authentication: Authentication, enrolling: MfaEnrolledDevice) {
TODO("will return enrollment_id")
}

@PostMapping("/api/mfa/associate")
fun associateMfaEnrollment(authentication: Authentication) {

}

@DeleteMapping("/api/mfa/enrollment/{enrollmentId}/associate")
fun deleteMfaAssociation(
@PathVariable("enrollmentId") enrollmentId: String,
authentication: Authentication
) {

}
}

sealed class MfaEnrolledDeviceResponse(val mfaMethod: String)
class EmailMfaEnrolledDeviceResponse(val email: String, mfaMethod: String) : MfaEnrolledDeviceResponse(mfaMethod)
data class MfaEnrollmentDeviceResponse(val enrollmentId: String)

sealed class MfaEnrolledDevice(val mfaMethod: String)
class EmailMfaEnrolledDevice(val email: String, mfaMethod: String) : MfaEnrolledDevice(mfaMethod)

Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.vauthenticator.server.account.ticket
package com.vauthenticator.server.mfa.domain

import java.time.Duration

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
package com.vauthenticator.server.account.ticket
package com.vauthenticator.server.mfa.domain

import com.vauthenticator.server.account.Account
import com.vauthenticator.server.extentions.expirationTimeStampInSecondFromNow
import com.vauthenticator.server.mfa.repository.TicketRepository
import com.vauthenticator.server.oauth2.clientapp.ClientAppId
import java.time.Clock

Expand Down
Original file line number Diff line number Diff line change
@@ -1,21 +1,17 @@
package com.vauthenticator.server.account.ticket
package com.vauthenticator.server.mfa.repository

import com.vauthenticator.server.extentions.asDynamoAttribute
import com.vauthenticator.server.extentions.filterEmptyMetadata
import com.vauthenticator.server.extentions.valueAsLongFor
import com.vauthenticator.server.extentions.valueAsStringFor
import com.vauthenticator.server.mfa.domain.Ticket
import com.vauthenticator.server.mfa.domain.VerificationTicket
import software.amazon.awssdk.services.dynamodb.DynamoDbClient
import software.amazon.awssdk.services.dynamodb.model.DeleteItemRequest
import software.amazon.awssdk.services.dynamodb.model.GetItemRequest
import software.amazon.awssdk.services.dynamodb.model.PutItemRequest
import java.util.*

interface TicketRepository {
fun store(ticket: Ticket)
fun loadFor(verificationTicket: VerificationTicket): Optional<Ticket>
fun delete(verificationTicket: VerificationTicket)
}

class DynamoDbTicketRepository(
private val dynamoDbClient: DynamoDbClient,
private val tableName: String
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package com.vauthenticator.server.mfa.repository

import com.vauthenticator.server.mfa.domain.Ticket
import com.vauthenticator.server.mfa.domain.VerificationTicket
import java.util.*

interface TicketRepository {
fun store(ticket: Ticket)
fun loadFor(verificationTicket: VerificationTicket): Optional<Ticket>
fun delete(verificationTicket: VerificationTicket)
}

Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@ package com.vauthenticator.server.password.resetpassword

import com.vauthenticator.server.account.Email
import com.vauthenticator.server.account.repository.AccountRepository
import com.vauthenticator.server.account.ticket.InvalidTicketException
import com.vauthenticator.server.account.ticket.Ticket
import com.vauthenticator.server.account.ticket.TicketRepository
import com.vauthenticator.server.account.ticket.VerificationTicket
import com.vauthenticator.server.events.ResetPasswordEvent
import com.vauthenticator.server.events.VAuthenticatorEventsDispatcher
import com.vauthenticator.server.mfa.domain.InvalidTicketException
import com.vauthenticator.server.mfa.domain.Ticket
import com.vauthenticator.server.mfa.domain.VerificationTicket
import com.vauthenticator.server.mfa.repository.TicketRepository
import com.vauthenticator.server.oauth2.clientapp.ClientAppId
import com.vauthenticator.server.password.Password
import com.vauthenticator.server.password.PasswordPolicy
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package com.vauthenticator.server.password.resetpassword

import com.fasterxml.jackson.databind.ObjectMapper
import com.vauthenticator.server.account.ticket.VerificationTicket
import com.vauthenticator.server.i18n.I18nMessageInjector
import com.vauthenticator.server.i18n.I18nScope
import com.vauthenticator.server.mfa.domain.VerificationTicket
import com.vauthenticator.server.oauth2.clientapp.Scope
import com.vauthenticator.server.oauth2.clientapp.Scopes
import com.vauthenticator.server.role.PermissionValidator
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package com.vauthenticator.server.password.resetpassword

import com.vauthenticator.server.account.repository.AccountRepository
import com.vauthenticator.server.account.ticket.VerificationTicketFactory
import com.vauthenticator.server.email.EMailSenderService
import com.vauthenticator.server.mfa.domain.VerificationTicketFactory
import com.vauthenticator.server.oauth2.clientapp.ClientAppId

class SendResetPasswordMailChallenge(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@ package com.vauthenticator.server.account.emailverification

import com.vauthenticator.server.account.AccountNotFoundException
import com.vauthenticator.server.account.repository.AccountRepository
import com.vauthenticator.server.account.ticket.VerificationTicket
import com.vauthenticator.server.account.ticket.VerificationTicketFactory
import com.vauthenticator.server.clientapp.A_CLIENT_APP_ID
import com.vauthenticator.server.clientapp.ClientAppFixture.aClientApp
import com.vauthenticator.server.email.EMailSenderService
import com.vauthenticator.server.mfa.domain.VerificationTicket
import com.vauthenticator.server.mfa.domain.VerificationTicketFactory
import com.vauthenticator.server.oauth2.clientapp.ClientAppId
import com.vauthenticator.server.oauth2.clientapp.ClientApplicationRepository
import com.vauthenticator.server.oauth2.clientapp.Scope
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package com.vauthenticator.server.account.emailverification

import com.vauthenticator.server.account.ticket.TicketRepository
import com.vauthenticator.server.account.ticket.VerificationTicket
import com.vauthenticator.server.account.ticket.VerificationTicketFactory
import com.vauthenticator.server.account.ticket.VerificationTicketFeatures
import com.vauthenticator.server.clientapp.A_CLIENT_APP_ID
import com.vauthenticator.server.mfa.domain.VerificationTicket
import com.vauthenticator.server.mfa.domain.VerificationTicketFactory
import com.vauthenticator.server.mfa.domain.VerificationTicketFeatures
import com.vauthenticator.server.mfa.repository.TicketRepository
import com.vauthenticator.server.oauth2.clientapp.ClientAppId
import com.vauthenticator.server.support.AccountTestFixture.anAccount
import com.vauthenticator.server.support.EMAIL
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package com.vauthenticator.server.account.emailverification

import com.vauthenticator.server.account.repository.AccountRepository
import com.vauthenticator.server.account.ticket.InvalidTicketException
import com.vauthenticator.server.account.ticket.TicketRepository
import com.vauthenticator.server.account.ticket.VerificationTicket
import com.vauthenticator.server.mfa.domain.InvalidTicketException
import com.vauthenticator.server.mfa.domain.MfaMethod
import com.vauthenticator.server.mfa.domain.MfaMethodsEnrolmentAssociation
import com.vauthenticator.server.mfa.domain.VerificationTicket
import com.vauthenticator.server.mfa.repository.TicketRepository
import com.vauthenticator.server.oauth2.clientapp.ClientAppId
import com.vauthenticator.server.support.AccountTestFixture
import com.vauthenticator.server.support.TicketFixture
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ class MfaEnrolmentAssociationEndPointTest {
content().json(
objectMapper.writeValueAsString(
listOf(
EmailMfaEnrolledDeviceResponse(email, EMAIL_MFA_METHOD.name)
EmailMfaEnrolledDevice(email, EMAIL_MFA_METHOD.name)
)
)
)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
package com.vauthenticator.server.account.ticket
package com.vauthenticator.server.mfa.repository

import com.vauthenticator.server.clientapp.A_CLIENT_APP_ID
import com.vauthenticator.server.extentions.asDynamoAttribute
import com.vauthenticator.server.mfa.domain.Ticket
import com.vauthenticator.server.mfa.domain.VerificationTicket
import com.vauthenticator.server.support.DynamoDbUtils
import com.vauthenticator.server.support.DynamoDbUtils.dynamoTicketTableName
import com.vauthenticator.server.support.DynamoDbUtils.resetDynamoDb
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package com.vauthenticator.server.password.resetpassword

import com.vauthenticator.server.account.repository.AccountRepository
import com.vauthenticator.server.account.ticket.InvalidTicketException
import com.vauthenticator.server.account.ticket.TicketRepository
import com.vauthenticator.server.account.ticket.VerificationTicket
import com.vauthenticator.server.events.ResetPasswordEvent
import com.vauthenticator.server.events.VAuthenticatorEventsDispatcher
import com.vauthenticator.server.mfa.domain.InvalidTicketException
import com.vauthenticator.server.mfa.domain.VerificationTicket
import com.vauthenticator.server.mfa.repository.TicketRepository
import com.vauthenticator.server.password.PasswordPolicy
import com.vauthenticator.server.password.VAuthenticatorPasswordEncoder
import com.vauthenticator.server.support.AccountTestFixture.anAccount
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package com.vauthenticator.server.password.resetpassword

import com.fasterxml.jackson.databind.ObjectMapper
import com.vauthenticator.server.account.ticket.VerificationTicket
import com.vauthenticator.server.clientapp.A_CLIENT_APP_ID
import com.vauthenticator.server.clientapp.ClientAppFixture.aClientApp
import com.vauthenticator.server.mfa.domain.VerificationTicket
import com.vauthenticator.server.oauth2.clientapp.ClientAppId
import com.vauthenticator.server.oauth2.clientapp.ClientApplicationRepository
import com.vauthenticator.server.oauth2.clientapp.Scope
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package com.vauthenticator.server.password.resetpassword

import com.vauthenticator.server.account.repository.AccountRepository
import com.vauthenticator.server.account.ticket.VerificationTicket
import com.vauthenticator.server.account.ticket.VerificationTicketFactory
import com.vauthenticator.server.email.EMailSenderService
import com.vauthenticator.server.mfa.domain.VerificationTicket
import com.vauthenticator.server.mfa.domain.VerificationTicketFactory
import com.vauthenticator.server.oauth2.clientapp.ClientAppId
import com.vauthenticator.server.support.AccountTestFixture.anAccount
import io.mockk.every
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.vauthenticator.server.support

import com.vauthenticator.server.account.ticket.Ticket
import com.vauthenticator.server.account.ticket.VerificationTicket
import com.vauthenticator.server.mfa.domain.Ticket
import com.vauthenticator.server.mfa.domain.VerificationTicket

object TicketFixture {
fun ticketFor(verificationTicketValue: String, mail: String, clientAppId: String) =
Expand Down

0 comments on commit 0e81f40

Please sign in to comment.