libeufin

Integration and sandbox testing for FinTech APIs and data formats
Log | Files | Refs | Submodules | README | LICENSE

commit cc8d7fcfce835312ecd2ec9db6c449dba34840b8
parent 1d08ec597f41c5cba0126eb3c399ace719201703
Author: Antoine A <>
Date:   Mon, 20 Nov 2023 18:26:24 +0000

Validate contact data with anastatis regex

Diffstat:
Mbank/src/main/kotlin/tech/libeufin/bank/TalerMessage.kt | 14+++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/bank/src/main/kotlin/tech/libeufin/bank/TalerMessage.kt b/bank/src/main/kotlin/tech/libeufin/bank/TalerMessage.kt @@ -84,7 +84,19 @@ data class TokenSuccessResponse( data class ChallengeContactData( val email: String? = null, val phone: String? = null -) +) { + init { + if (email != null && !EMAIL_PATTERN.matches(email)) + throw badRequest("email contact data '$email' is malformed") + + if (phone != null && !PHONE_PATTERN.matches(phone)) + throw badRequest("phone contact data '$phone' is malformed") + } + companion object { + private val EMAIL_PATTERN = Regex("[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}") + private val PHONE_PATTERN = Regex("^\\+?[0-9]+$") + } +} // Type expected at POST /accounts @Serializable