限制路由只能作为特定操作的重定向访问

时间:2015-08-25 12:37:29

标签: playframework routes

我正在使用Play 2.4.x for Java

我想将特定路由限制为作为来自其他特定操作的重定向路由。对于一个具体的例子,这可能更清楚:

我有一个注册POST路线:

POST        /signup          controllers.Signup.doSignup()

在相应的动作doSignup中,我返回与此路线对应的redirect(controllers.routes.Signup.onSuccess());

GET         /success             controllers.Signup.onSuccess()

但我想通过向该URL发出get请求来阻止用户直接访问此路由。我希望通过doSignup()的重定向访问此路由。这可能吗???

1 个答案:

答案 0 :(得分:0)

您可以尝试在controllers.Signup.onSuccess()操作中检查您的请求的引用者。虽然我不确定Play是否会在重定向期间设置引用。但是如果Play设置它你可以用这样的东西检查它:

if(!request().getHeader("referer").equals("/signup")) {
  return forbidden();
}