Play 2 Плагин аутентификации Java - ответ с кодом состояния HTTP вместо перенаправления

Мы используем плагин аутентификации Play 2 для REST API, и я хотел бы просто вернуть 200 или 403 за попытки входа.

Код плагина выглядит так:

public static Result loginAndRedirect(final Context context,
        final AuthUser loginUser) {
    storeUser(context.session(), loginUser);
    return Controller.redirect(getJumpUrl(context));
}

Есть ли способ избежать перенаправления без разветвления проекта плагина?


person Petteri H    schedule 22.11.2012    source источник
comment
Вы смотрели на Resolver ? github.com/ joscha/play-authenticate/blob/master/samples/java/   -  person ndeverge    schedule 22.11.2012


Ответы (2)


В итоге я обработал это на контроллере:

public static Result login() {   
    Result r = MyUsernamePasswordAuthProvider.handleLogin(ctx());
    if (r instanceof Redirect && PlayAuthenticate.getUser(session()) != null) {
        return ok();
    }
    return forbidden();
}

Хотя могут быть лучшие способы сделать это.

person Petteri H    schedule 22.11.2012

Я только что наткнулся на тот же сценарий, и, как указал nico_ekito, этого можно добиться, расширив PlayAuthenticate.Resolver и переопределив:

@Override
    public Call afterAuth() {
        return routes.Application.restAfterAuth();
    }

Таким образом, вы можете вернуть любой маршрут вашего приложения.

person andraus    schedule 19.07.2013