Как проверить роли пользователя в фильтре? - PullRequest
0 голосов
/ 28 февраля 2020

Я использую play framework 2.8.x, и мне нужно добавить некоторые проверки для некоторых страниц, если пользователь не получил доступ к этой странице, я должен отклонить этот запрос, и я подумал, что могу использовать фильтры, но я не знаю, как отклонить входящий запрос в фильтре. Мой фильтр выглядит следующим образом:

public class PageAccessFilter extends Filter {
    @Inject
    public PageAccessFilter(Materializer mat) {
        super(mat);
    }

    @Override
    public CompletionStage<Result> apply(Function<Http.RequestHeader, CompletionStage<Result>> next, Http.RequestHeader rh) {

        return next.apply(rh); // how can I reject request?
    }
}

Как я могу отклонить запрос на вызов с некоторым кодом состояния?

1 Ответ

1 голос
/ 28 февраля 2020

Легко. Просто возврат запрещен ():

@Override
public CompletionStage<Result> apply(Function<Http.RequestHeader, CompletionStage<Result>> next, Http.RequestHeader rh) {

    if (your auth check failed) {
        return CompletableFuture.completedFuture(Results.forbidden());
    }
    return next.apply(rh); 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...