From 97f9eaa95c2b7de5e88c3cc8d0af0a2327bac668 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20Mili=C4=87?= Date: Wed, 18 Feb 2026 12:19:33 +0100 Subject: [PATCH] feature/Add URL decode of provider at endpoint Get User by USERNAME v5.1.0 --- obp-api/src/main/scala/code/api/v5_1_0/APIMethods510.scala | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/obp-api/src/main/scala/code/api/v5_1_0/APIMethods510.scala b/obp-api/src/main/scala/code/api/v5_1_0/APIMethods510.scala index c3264073a6..fb68b9d03d 100644 --- a/obp-api/src/main/scala/code/api/v5_1_0/APIMethods510.scala +++ b/obp-api/src/main/scala/code/api/v5_1_0/APIMethods510.scala @@ -62,6 +62,8 @@ import net.liftweb.mapper.By import net.liftweb.util.Helpers.tryo import net.liftweb.util.{Helpers, Props, StringHelpers} +import java.net.URLDecoder +import java.nio.charset.StandardCharsets import java.time.{LocalDate, ZoneId} import java.util.Date import scala.collection.immutable.{List, Nil} @@ -2665,7 +2667,7 @@ trait APIMethods510 { case "users" :: "provider" :: provider :: "username" :: username :: Nil JsonGet _ => { cc => implicit val ec = EndpointContext(Some(cc)) for { - user <- Users.users.vend.getUserByProviderAndUsernameFuture(provider, username) map { + user <- Users.users.vend.getUserByProviderAndUsernameFuture(URLDecoder.decode(provider, StandardCharsets.UTF_8), username) map { x => unboxFullOrFail(x, cc.callContext, UserNotFoundByProviderAndUsername, 404) } entitlements <- NewStyle.function.getEntitlementsByUserId(user.userId, cc.callContext)