Ich würde gerne einen BodyParser auf eine authentifizierte Anfrage verwenden und ich habe Probleme herauszufinden, wie das zu tun, wenn meine Authentifizierung wie die ZenTasks eingerichtet ist Beispiel.Play 2.0 Framework, mit einem BodyParser mit einer authentifizierten Anfrage
Meine Authentifizierungsmethode,
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
}
}
Mein Controller-Methode,
def controller = HasRole(List("admin")) { user => _ => {
Action(parse.temporaryFile){ implicit request =>
request.body.moveTo(new File("/tmp/filepath"))
Redirect(routes.home)
}
}
Dies ist der Fehler ich sehen werde,
[error] found : play.api.mvc.Action[play.api.libs.Files.TemporaryFile]
[error] required: play.api.mvc.Result
[error] Action(parse.temporaryFile){ implicit request =>
[error] ^
Hier ist eine weitere Frage: parse.json of authenticated play request
Diese Person hat einen Workaround gefunden, und ich glaube, dass es auch einen für das Beispiel mit temporären Dateien gibt, aber ich würde gerne wissen, wie (oder warum) das, was ich mache, nicht funktioniert.
Ah, froh, dass du es am Ende gelöst hast :) – opyate