您可能有interceptGlobal类中的所有请求,并检查特定资源是否需要验证。
import play.GlobalSettings;
import play.libs.F;
import play.mvc.Action;
import play.mvc.Http;
import play.mvc.Result;
import java.lang.reflect.Method;
public class Global extends GlobalSettings {
@Override
public Action onRequest(Http.Request request, Method actionMethod) {
if (request.path().startsWith("/recommendation") && isNotAuthenticated()) {
return new Action.Simple() {
@Override
public F.Promise<Result> call(Http.Context context) throws Throwable {
return F.Promise.pure(redirect("/"));
}
};
}
return super.onRequest(request, actionMethod);
}
private boolean isNotAuthenticated() {
// put your authentication check logic here
return true;
}
}
嗨,这段代码不适合我。我认为问题是所有以/推荐开头的路由都会自动重定向到模块(用Scala编写)。我怎么解决这个问题??该模块不能有Global.scala类对象。 – 2014-10-29 15:40:57
全局类应该在你的主模块中定义。确保它放在根应用程序目录中,或在配置文件中设置路径:application.global =“com.your.package.Global” – 2014-10-29 15:56:18
全局文件位于我的主项目中,但所有以“ /建议“绕过我的Global.java类的onRequest方法。在其他情况下,onRequest方法被正确调用。 – 2014-10-29 16:02:39