Me gustaría poder utilizar un BodyParser en una solicitud autenticada y tengo problemas para averiguar cómo hacerlo si mi autenticación está configurada como ZenTasks ejemplo.Play 2.0 Framework, utilizando un BodyParser con una solicitud autenticada
Mi método de autenticación,
def IsAuthenticated(f: => String => Request[AnyContent] => Result) = {
Security.Authenticated(username, onUnauthorized) { user =>
Action(request => f(user)(request))
}
}
def HasRole(role: List[String])
(f: => String => Request[AnyContent] => Result) = IsAuthenticated {
user => request => if (role.contains(getRole(user))) {
f(user)(request) // This function returns the result.
} else {
Results.Forbidden
}
}
Mi método controlador,
def controller = HasRole(List("admin")) { user => _ => {
Action(parse.temporaryFile){ implicit request =>
request.body.moveTo(new File("/tmp/filepath"))
Redirect(routes.home)
}
}
Este es el error que estoy viendo,
[error] found : play.api.mvc.Action[play.api.libs.Files.TemporaryFile]
[error] required: play.api.mvc.Result
[error] Action(parse.temporaryFile){ implicit request =>
[error] ^
Aquí es una pregunta relacionada: parse.json of authenticated play request
Esta persona encontró una solución, y creo que hay una para el ejemplo de archivo temporal también, pero me gustaría saber cómo (o por qué) lo que estoy haciendo no funciona.
Ah, me alegro de que lo resolvió al final :) – opyate