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,所以我可以验证它的好与不好。