in app/aws/PasskeyDB.scala [93:118]
def loadCredential(
user: UserIdentity,
credentialId: Array[Byte]
)(implicit dynamoDB: DynamoDbClient): Try[GetItemResponse] = {
Try {
val key = Map(
"username" -> AttributeValue.fromS(user.username),
"credentialId" -> AttributeValue.fromS(
Base64UrlUtil.encodeToString(credentialId)
)
)
val request =
GetItemRequest.builder().tableName(tableName).key(key.asJava).build()
dynamoDB.getItem(request)
}.recoverWith(err =>
Failure(
JanusException(
userMessage = "Failed to find registered passkey",
engineerMessage =
s"Failed to load credential for user ${user.username}: ${err.getMessage}",
httpCode = INTERNAL_SERVER_ERROR,
causedBy = Some(err)
)
)
)
}