这是我的路线:
GET /login controllers.Auth.login(from: String ?= null)
所以,当我这样做时:
public Result onUnauthorized(Http.Context context) {
return redirect(controllers.routes.Auth.login(context.request().uri()));
}
我明白了:
mydomain.com/login?from=%2Fmy%2Fpage
但我希望网址看起来像这样:
mydomain.com/login?from=/my/page
我可以获得这个很好的网址,任何人都可读,这样做:
public Result onUnauthorized(Http.Context context) {
return redirect(controllers.routes.Auth.login().url() + "?from=" + context.request().uri());
}
路线:
GET /login controllers.Auth.login()
但那是错的。
有人可以告诉我它是否可行吗?任何帮助表示赞赏。
由于
答案 0 :(得分:0)
我不会这样做 - 斜杠甚至在参数中也有用,所以它应该被编码。
出于安全原因,这不是最佳选择。
另一方面,在Play中你有其他可能传递返回URL,我最喜欢的是Flash / Session范围和/或mem Cache API。如果您对细节感兴趣,请告诉我,我会编辑答案。