Playframework 具有身份验证的外部资产

Playframework 具有身份验证的外部资产,playframework,playframework-2.0,Playframework,Playframework 2.0,在我的例子中,我想检查是否在会话中设置了user,以及是否会加载ExternalAssets。若并没有设置用户,它应该重定向到登录页面。所以我的问题是,如何将对象动作转换为结果?我的实际代码如下所示 public class CustomAssetsController extends AuthenticationController { public static Action<AnyContent> index() { if(account == nu

在我的例子中,我想检查是否在会话中设置了user,以及是否会加载ExternalAssets。若并没有设置用户,它应该重定向到登录页面。所以我的问题是,如何将对象动作转换为结果?我的实际代码如下所示

public class CustomAssetsController extends AuthenticationController {

    public static Action<AnyContent> index() {

        if(account == null)
            return redirect("/");

        return ExternalAssets.at("/Users/abuder/projects/remoteservice/central","index.html");
    }
}
公共类CustomAssetController扩展AuthenticationController{
公共静态作用指数(){
如果(帐户==null)
返回重定向(“/”);
返回ExternalAssets.at(“/Users/abuder/projects/remoteservice/central”,“index.html”);
}
}

您可以使用动作合成。 请参阅


使用它,您甚至可以以最佳方式实现身份验证和授权模块。

这是Java当前的一个限制

以下资料来自:

这是目前在Java中拦截请求的一个限制 方法仅用于修饰Java操作,但不用于修饰资产 控制器是一个Scala动作,因此不能用Java修饰 操作,因为Java API位于Scala API之上,而不是 反过来说

我们是否能做到这一点,我不确定。如果你想 拦截对资产控制器的请求,然后您必须 实现Scala筛选器:

然后您可以在Java全局对象中使用它,方法是从 过滤器方法