我正在使用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()的重定向访问此路由。这可能吗???
答案 0 :(得分:0)
您可以尝试在controllers.Signup.onSuccess()
操作中检查您的请求的引用者。虽然我不确定Play是否会在重定向期间设置引用。但是如果Play设置它你可以用这样的东西检查它:
if(!request().getHeader("referer").equals("/signup")) {
return forbidden();
}