У меня есть couchapp, с которым я хочу контролировать доступ к Play! на основе каждого пользователя. Мой план состоит в том, чтобы разместить couchapp на порту xxxx, который доступен только внутренне и хост Play! на порт 80.Play Framework - запрос прокси с аутентификацией сеанса
В Apache я хотел бы сделать это так,
ProxyPass /couchapp http://localhost:xxxx
ProxyPassReverse /couchapp http://localhost:xxxx
Но нет никакой аутентификации с этим подходом. Я вижу Play! имеет некоторые функции прокси-сервера, но я не вижу в этом никакой возможности добавить аутентификацию пользователя, http://www.playframework.com/documentation/2.0/HTTPServer
Любая идея, как добавить аутентификацию пользователя в игру! прокси-сервер? Код будет выглядеть примерно так.
// Routes all request to http://localhost:xxxx/ if authenticated
public static Result useProxy() {
if (!session("authorized").equals("true")) {
String pingURL = "";
return redirect(pingURL); // will call pingCallback after login
}
return ok(); // take the original request to /couchapp/xxxx.asset and proxy it to http://localhost:xxxx/xxxx.asset
}
public static Result pingCallback() {
Form<PingResponse> pingResponseForm = Form.form(PingResponse.class);
PingResponse pingResponse = pingResponseForm.bindFromRequest().get();
if (!pingResponse.isAuthorized()) {
return unauthorized();
} else {
session("authorized", "true");
}
return ok(); // take the original request to /couchapp/xxxx.asset and proxy it to http://localhost:xxxx/xxxx.asset
}
Спасибо!
Я обновил вопрос. Я хочу играть! для проверки сеанса, чтобы узнать, вошел ли пользователь в систему. Затем либо направьте пользователя на couchapp, либо попросите пользователя войти в систему. – sissonb