我在Play 2.5应用程序中的大多数REST端点都使用了ActionBuilder:
def IfAuthorized(auths: Authorizations*): ActionBuilder[AuthRequestWithAuthorization] = {
new MyAuthActionBuilder(auths.toList)
}
我可以用作:
def status = IfAuthorized(Editor).async { implicit authReq =>
//eventually return Result
}
现在我想在同一ActionBuilder
中包装静态文件请求。目前我使用这个oneliner,这使我能够提供html,js,css等,所有返回/缓存都没有受到干扰:
GET /ui/*file controllers.Assets.versioned(path="/public", file: Asset)
我不确定如何推动ActionBuilder。返回初始html页面的不良尝试包括:
def index()= IfAuthorized(Editor) { authReq =>
val contentStream = this.getClass.getResourceAsStream("/public/index.html")
Ok.chunked(Enumerator.fromStream(contentStream)).as(HTML)
}
此Action
只能返回特定的html文件,而我希望从1路由返回的所有静态资源受我的自定义ActionBuilder
保护
答案 0 :(得分:1)
您需要实施自己的资产控制器:路线
QtMeta
将指向以下端点:
GET /auth/*file controllers.AuthAssets.at(path="/public", file: String)