Ответ 1
Маршрут = разрешение параметров внутри URL = отправка параметров с помощью GET.
Это означает, что вы пытаетесь отправить запрос POST с помощью... GET params... где смысл?
Джеймс Ропер объясняет, что:
Во время маршрутизации Play еще не потребляет тело запроса и поэтому не разобрал представленную форму. - и вы тоже этого не хотите, потому что это ваше действие, которое решает, как/если тело запроса будет разобрано, потоковое, отправлено в другое место, если Play сделал это во время маршрутизации, это ограничило бы то, что вы могли бы сделать в действии.
С точки зрения безопасности это определенно плохая идея оставить учетные данные в журналах каждой машины на пути клиента.
Вместо этого вы должны сделать это с обычным способом обработки формы, как описано в документации базовой формы:
Маршрут:
POST /v1/accounts/login controllers.v1.Accounts.login
Действие:
val userForm = Form(
tuple(
"username" -> text,
"password" -> text
)
)
def login = Action { implicit request =>
val (username, password) = userForm.bindFromRequest.get
Ok("Hello " + username + ", you're trying to login with: " + password)
}