Я реализовал действие аутентификации и поместил его в начало каждого метода в моем контроллере def addFile(itemId: Long) = AuthenticatedAction.async(FSBodyParser(itemId)){ request => ...
Затем я реализовал свой собственный парсер тела на основе MultipartFormData.
def FSBodyParser(itemId:Long): BodyParser[MultipartFormData[Future[BaseFileInfo]]] = {
multipartFormData(Multipart.handleFilePart {
case Multipart.FileInfo(partName, filename, contentType) =>
//println(s"FileInfo($partName, $filename, $contentType)")
getIteratee(1, itemId, filename, contentType)
})
}
И я обнаружил, что сначала загружается мой файл, а затем действие проверки подлинности проверяет, действителен ли пользователь. Я хотел бы сначала проверить подлинность пользователя и только после этого сохранить загруженный файл.
Есть ли у вас какие-либо идеи, как реализовать это наилучшим образом? Возможно, вы используете фильтры Play для аутентификации?