0
我正在開發一個應用程序,我想限制對資產的訪問。我創建了附加文件夾Play框架 - 資產認證
secret/
它保存數據。然後,我創建了路線
/media/secret/*file controllers.Media.file(file)
和控制器媒體
public class Media extends Controller
{
@Authenticate
public Result file(String file)
{
String path = /home/foo/secretpath/
File f = new File(path, file);
if(!f.exists())
{
return notFound();
}
return ok(f, true);
}
這有點兒工作,唯一的問題是不存在的Etag或高速緩存控制。檢查Assets.scala實現(https://github.com/playframework/playframework/blob/master/framework/src/play/src/main/scala/play/api/controllers/Assets.scala)的一切都已在此處開發。我的問題是
- 我應該編寫額外的代碼來實現Etag和Cache-Control嗎?如果是,如何?我無法閱讀斯卡拉
- 如果有一種方法可以使用Assets類,如何使它工作?返回Action不會觸發@Authenticate,所以我可以驗證它的好與不好。