您可能有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