commit cc8d7fcfce835312ecd2ec9db6c449dba34840b8 parent 1d08ec597f41c5cba0126eb3c399ace719201703 Author: Antoine A <> Date: Mon, 20 Nov 2023 18:26:24 +0000 Validate contact data with anastatis regex Diffstat:
| M | bank/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